Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#804072: Cannot upload changesets

8 views
Skip to first unread message

Yuri D'Elia

unread,
Nov 4, 2015, 12:00:03 PM11/4/15
to
Package: josm
Version: 0.0.svn8969+dfsg-2
Severity: important

The following exception is generated when I try to upload a changeset:

INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create...
ERROR: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64. Cause: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
at oauth.signpost.signature.OAuthMessageSigner.<init>(OAuthMessageSigner.java:37)
at oauth.signpost.signature.HmacSha1MessageSigner.<init>(HmacSha1MessageSigner.java:30)
at oauth.signpost.AbstractOAuthConsumer.<init>(AbstractOAuthConsumer.java:65)
at oauth.signpost.basic.DefaultOAuthConsumer.<init>(DefaultOAuthConsumer.java:33)
at org.openstreetmap.josm.data.oauth.OAuthParameters.buildConsumer(OAuthParameters.java:222)
at org.openstreetmap.josm.io.OsmConnection.addOAuthAuthorizationHeader(OsmConnection.java:119)
at org.openstreetmap.josm.io.OsmConnection.addAuth(OsmConnection.java:136)
at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:635)
at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:595)
at org.openstreetmap.josm.io.OsmApi.openChangeset(OsmApi.java:425)
at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:205)
at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:250)
at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:93)
at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:161)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 17 more

liboauth-signpost-java is at 1.2.1.2-1.2
libcommons-codec-java 1.10-1

-- System Information:
Debian Release: stretch/sid
APT prefers unstable
APT policy: (900, 'unstable'), (800, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.2.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages josm depends on:
ii default-jre [java7-runtime] 2:1.7-52.1
ii fonts-droid 1:4.4.4r2-7
ii jmapviewer 1.12+dfsg-1
ii libcommons-compress-java 1.10-1
ii libcommons-logging-java 1.2-1
ii libgettext-commons-java 0.9.6-2
ii liboauth-signpost-java 1.2.1.2-1.2
ii libsvgsalamander-java 0~svn95-1
ii openjdk-7-jre [java7-runtime] 7u91-2.6.2-1
ii openstreetmap-map-icons-classic 1:0.0.svn31722-1

Versions of packages josm recommends:
pn josm-l10n <none>
ii josm-plugins 0.0.svn31722+ds-1
ii webkit-image-qt 0.0.svn25399-3

josm suggests no packages.

Sebastiaan Couwenberg

unread,
Nov 4, 2015, 12:20:04 PM11/4/15
to
Control: tags -1 unreproducible

Hi Yuri,

On 04-11-15 17:47, Yuri D'Elia wrote:
> INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create...
> ERROR: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64. Cause: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64

Unfortunately I cannot reproduce your issue, I just successfully
uploaded a changeset with josm (0.0.svn8969+dfsg-2).

libcommons-codec-java isn't used by JOSM since r8149, as mentioned on
the josm-dev list:

https://lists.openstreetmap.org/pipermail/josm-dev/2015-October/007530.html

How can I reproduce your issue?

Kind Regards,

Bas

--
GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146 50D1 6750 F10A E88D 4AF1

Yuri D'Elia

unread,
Nov 4, 2015, 12:40:03 PM11/4/15
to
On 04/11/15 18:11, Sebastiaan Couwenberg wrote:
> On 04-11-15 17:47, Yuri D'Elia wrote:
>> INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create...
>> ERROR: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64. Cause: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
>
> Unfortunately I cannot reproduce your issue, I just successfully
> uploaded a changeset with josm (0.0.svn8969+dfsg-2).
>
> libcommons-codec-java isn't used by JOSM since r8149, as mentioned on
> the josm-dev list:

Yes, I've seen libandroid-json-org-java being removed automatically as
no longer used.
Somehow this is generated on a lower level by liboauth-signpost-java
(which *does* depend on libcommons-codec-java - which is also installed
correctly).

I have no idea why honestly. I'm not familiar with the jre to understand
what's going on. It worked fine since the last update.

Some hints on what could trigger this?

Could that be generated indirectly by some plugin I have installed?
I have the following in my ~/.josm/plugins:

ElevationProfile.jar
download_along.jar
measurement.jar
scripting.jar
waydownloader.jar
continuosDownload.jar
log4j.jar
routing.jar
splinex.jar

and all are up-to-date.

Yuri D'Elia

unread,
Nov 4, 2015, 1:10:03 PM11/4/15
to
On 04/11/15 18:32, Yuri D'Elia wrote:
>> How can I reproduce your issue?
>
> Somehow this is generated on a lower level by liboauth-signpost-java
> (which *does* depend on libcommons-codec-java - which is also installed
> correctly).

And as an obvious point, I'm using oauth authentication.

Sebastiaan Couwenberg

unread,
Nov 4, 2015, 1:20:03 PM11/4/15
to
On 04-11-15 18:32, Yuri D'Elia wrote:
> On 04/11/15 18:11, Sebastiaan Couwenberg wrote:
>> On 04-11-15 17:47, Yuri D'Elia wrote:
>>> INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create...
>>> ERROR: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64. Cause: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
>>
>> Unfortunately I cannot reproduce your issue, I just successfully
>> uploaded a changeset with josm (0.0.svn8969+dfsg-2).
>>
>> [...]
>>
>> How can I reproduce your issue?
>
> Somehow this is generated on a lower level by liboauth-signpost-java
> (which *does* depend on libcommons-codec-java - which is also installed
> correctly).

I have the same dependencies installed, that's unlikely to be the issue.

oauth.signpost.signature.OAuthMessageSigner is provided by
/usr/share/java/signpost-core-1.2.1.2.jar, its MANIFEST.MF doesn't
contain a Class-Path with or without commons-codec. But that doesn't
explain why it does work on my system.

> I have no idea why honestly. I'm not familiar with the jre to understand
> what's going on. It worked fine since the last update.
>
> Some hints on what could trigger this?

You may get some hints from the JOSM debug output, start josm with
--debug and redirect the output to a log file:

josm --debug > /tmp/josm.log 2>&1

Do you use the save password feature in JOSM perhaps?

> Could that be generated indirectly by some plugin I have installed?

Possibly, you test that with a clean profile by starting josm with a
custom path:

java -Djosm.home="$HOME/josm-test" -jar /usr/share/josm/josm.jar

Or by moving your ~/.josm directory out of the way, e.g. by renaming it
to ~/.josm.bak, and starting with an empty profile.

Yuri D'Elia

unread,
Nov 4, 2015, 1:30:03 PM11/4/15
to
On 04/11/15 19:12, Sebastiaan Couwenberg wrote:
>> Some hints on what could trigger this?
>
> You may get some hints from the JOSM debug output, start josm with
> --debug and redirect the output to a log file:
>
> josm --debug > /tmp/josm.log 2>&1

I do not see anything more related to the backtrace.

> Do you use the save password feature in JOSM perhaps?

I use OAuth. Both access key and secret are set and stored in the
preferences.

I always did (it's not something I changed recently).

> Or by moving your ~/.josm directory out of the way, e.g. by renaming it
> to ~/.josm.bak, and starting with an empty profile.

I just tried now with regular username/password (stored in the prefs,
anyway), and it works. I could successfully upload a new changeset.

Sebastiaan Couwenberg

unread,
Nov 4, 2015, 1:40:04 PM11/4/15
to
On 04-11-15 19:25, Yuri D'Elia wrote:
> On 04/11/15 19:12, Sebastiaan Couwenberg wrote:
>>> Some hints on what could trigger this?
>>
>> You may get some hints from the JOSM debug output, start josm with
>> --debug and redirect the output to a log file:
>>
>> josm --debug > /tmp/josm.log 2>&1
>
> I do not see anything more related to the backtrace.
>
>> Do you use the save password feature in JOSM perhaps?
>
> I use OAuth. Both access key and secret are set and stored in the
> preferences.
>
> I always did (it's not something I changed recently).

And it's not something I've used ever. That explains the difference
between our JOSM uploads.

>> Or by moving your ~/.josm directory out of the way, e.g. by renaming it
>> to ~/.josm.bak, and starting with an empty profile.
>
> I just tried now with regular username/password (stored in the prefs,
> anyway), and it works. I could successfully upload a new changeset.

I'll re-instate commons-codec in the classpath for the JOSM builds, and
upload it to experimental for you to test.

Sebastiaan Couwenberg

unread,
Nov 4, 2015, 2:20:02 PM11/4/15
to
On 04-11-15 19:34, Sebastiaan Couwenberg wrote:
> On 04-11-15 19:25, Yuri D'Elia wrote:
>> On 04/11/15 19:12, Sebastiaan Couwenberg wrote:
>>>> Some hints on what could trigger this?
>>>
>>> You may get some hints from the JOSM debug output, start josm with
>>> --debug and redirect the output to a log file:
>>>
>>> josm --debug > /tmp/josm.log 2>&1
>>
>> I do not see anything more related to the backtrace.
>>
>>> Do you use the save password feature in JOSM perhaps?
>>
>> I use OAuth. Both access key and secret are set and stored in the
>> preferences.
>>
>> I always did (it's not something I changed recently).
>
> And it's not something I've used ever. That explains the difference
> between our JOSM uploads.
>
>>> Or by moving your ~/.josm directory out of the way, e.g. by renaming it
>>> to ~/.josm.bak, and starting with an empty profile.
>>
>> I just tried now with regular username/password (stored in the prefs,
>> anyway), and it works. I could successfully upload a new changeset.
>
> I'll re-instate commons-codec in the classpath for the JOSM builds, and
> upload it to experimental for you to test.

josm (0.0.svn8969+dfsg-3~exp1) was just accepted into experimental,
please test this revision if it fixes your OAuth issue after its hits
the mirrors.

Yuri D'Elia

unread,
Nov 5, 2015, 5:40:03 AM11/5/15
to
On 04/11/15 20:10, Sebastiaan Couwenberg wrote:
> josm (0.0.svn8969+dfsg-3~exp1) was just accepted into experimental,
> please test this revision if it fixes your OAuth issue after its hits
> the mirrors.

It works correctly with OAuth now.

Thanks.
0 new messages