UPM Won't Load
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
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)