UPM Won't Load
Symptoms
- When navigating to the UPM, the page hangs
- Upgrading the UPM seems to work, and the page shows the new version. However, the UPM is disabled by default and won't enable.
The following appears in the atlassian-confluence.log
:
2014-11-26 23:59:11,967 ERROR [http-bio-8090-exec-5] [ContainerBase.[Standalone].[localhost].[/]] log Unhandled exception occurred whilst decorating page
-- referer: http://localhost:8090/confluence/authenticate.action?destination=%2Fplugins%2Fservlet%2Fupm | url: /plugins/servlet/upm | userName: administrator
com.atlassian.templaterenderer.RenderingException: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'buildUpmViewPluginRequestsUri' in class com.atlassian.upm.rest.UpmUriBuilder threw exception java.lang.NullPointerException at upm-resources.vm[line 60, column 122]
...
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'buildUpmViewPluginRequestsUri' in class com.atlassian.upm.rest.UpmUriBuilder threw exception java.lang.NullPointerException at upm-resources.vm[line 60, column 122]
...
Caused by: java.lang.NullPointerException
at java.net.URI$Parser.parse(URI.java:3023)
at java.net.URI.<init>(URI.java:595)
at java.net.URI.create(URI.java:857)
at com.atlassian.upm.core.rest.BaseUriBuilder.newApplicationBaseUriBuilder(BaseUriBuilder.java:65)
at com.atlassian.upm.rest.UpmUriBuilder.buildUpmViewPluginRequestsUri(UpmUriBuilder.java:683)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
at com.atlassian.velocity.htmlsafe.introspection.UnboxingMethod.invoke(UnboxingMethod.java:30)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
And the server base url may show as NULL under "Build Information" in the atlassian-confluence.log
:
--------------------------
Build Information
--------------------------
home = /var/atlassian/application-data/confluence
buildNumber = 5636
installationDate = 2011-11-04 11:44:29.0
version = 5.6.3
baseUrl = null
Diagnosis
Execute the following query to see the Confluence settings that are stored in the database. You should see something like <baseURL>http://localhost:8090/confluence</baseUrl> in the output.
select BANDANAVALUE from BANDANA where BANDANAKEY = 'atlassian.confluence.settings';
Cause
The base URL is not being stored properly in the database. In fact, it will be missing altogether from the bandana
table.
Resolution
- Backup your database, as a precaution.
- Modify the Confluence settings that are stored in the database by adding back the missing baseUrl property. You'll add the missing property to the current value, and save that new value to the database. The command will look something like this:
update BANDANA
set BANDANAVALUE =
'<settings>
<doNotSave>false</doNotSave>
<allowCamelCase>false</allowCamelCase>
<allowTrackbacks>false</allowTrackbacks>
<allowThreadedComments>true</allowThreadedComments>
<externalUserManagement>false</externalUserManagement>
<denyPublicSignup>true</denyPublicSignup>
...
<rssTimeout>60</rssTimeout>
<pageTimeout>120</pageTimeout>
<baseUrl>http://localhost:8090/confluence</baseUrl>
</settings>'
where BANDANAKEY = 'atlassian.confluence.settings';
- Flush the Confluence caches (at Confluence Admin > Cache Management > Flush All) to force Confluence to pull fresh data from the database. Restarting Confluence will accomplish the same thing.
- Navigate to the UPM (Confluence Admin > Manage Add-ons)