Universal Plugin Manager does not update itself via HTTP proxy
Symptoms
Universal Plugin Manager is not able to update itself. Other plugins can update without any problems.
The following appears in the atlassian-confluence.log
:
2012-06-18 10:51:04,512 WARN [scheduler_Worker-1] [com.atlassian.upm.PluginUpgradeCheckScheduler] execute Automatic plugin upgrade check failed
java.lang.RuntimeException: java.net.ConnectException: Connection refused: connect
at com.atlassian.upm.pac.PacClientImpl.getUpgradeCount(PacClientImpl.java:272)
at com.atlassian.upm.PluginUpgradeCheckScheduler$PluginUpgradeCheckJob.execute(PluginUpgradeCheckScheduler.java:62)
at com.atlassian.sal.confluence.scheduling.ConfluencePluginScheduler$ConfluencePluginJob.execute(ConfluencePluginScheduler.java:99)
at org.quartz.core.JobRunShell.run(JobRunShell.java:199)
at com.atlassian.confluence.schedule.quartz.ConfluenceQuartzThreadPool$1.run(ConfluenceQuartzThreadPool.java:20)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:559)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
at com.atlassian.upm.pac.PacClientImpl.getUpgradeCount(PacClientImpl.java:245)
... 5 more
Diagnosis
This exact symptom will happen when the following are true:
- Confluence is connecting to the internet via a HTTP proxy
- The server Confluence runs on has no access to the internet other than via the HTTP proxy
- The plugin manager is a version affected by this bug. This issue showed up on version 1.6.3 of UPM but probably affects others.
Cause
Universal Plugin Manager's self-upgrade will ignore the HTTP proxy setting, trying to connect directly to the internet. When this fails, the above exception is thrown.
This does not occur in the latest versions of Universal Plugin Manager.
Resolution
Resolution 1
- Remove the Universal Plugin Manager as per the instructions at How to manually remove malfunctioning add-ons, this will revert to the originally installed version before the malfunctioning version. You can't remove it using the interface because it doesn't want to remove itself, so you need to delete directly from the database.
Download the latest version of Universal Plugin Manager from the Atlassian Marketplace as a jar file, and install manually to Confluence.
Resolution 2
- Upgrade Confluence to the latest version, which will update the Universal Plugin Manager automatically.