Pages With Outgoing Links Display DataIntegrityViolationException Error

Summary

When accessing any page that contains the outgoing-links macro, the page will display the following error:

Cause
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not insert: com.atlassian.confluence.links.OutgoingLink#260702233; SQL []; Data truncation; nested exception is java.sql.DataTruncation: Data truncation
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:100)
caused by: java.sql.DataTruncation: Data truncation
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:382)
Stack Trace:[hide]
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not insert: com.atlassian.confluence.links.OutgoingLink#260702233; SQL []; Data truncation; nested exception is java.sql.DataTruncation: Data truncation
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:100)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.orm.hibernate.HibernateTransactionManager.convertJdbcAccessException(HibernateTransactionManager.java:619)
at org.springframework.orm.hibernate.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:605)
at org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:518)

Environment

  • All supported Confluence and Linking add-on versions

Cause

There is a user macro named outgoing-links and it is conflicting with the outgoing-links from the Linking app.

Resolution

By default, users cannot create a user macro with the same name of an existing macro. However, older versions of Confluence do allow you to create a user macro and then install an add-on that contains the same name of the created user macro.

For example, a user macro named outgoing-links was created. Then, the Linking app was installed, which also has a macro named outgoing-links. Thus now there are two macros with the same name. 

This is fixed by renaming the user macro with a unique name.