Bug#894689: davmail does not work with java-9-openjdk
> It's working again with libmail-java/1.6.1-2. OK great, no overlinking required in java. Thanks a lot Emmanuel and thanks Midix for your detailed report and quick follow-up. Cheers, Alex
Bug#894689: davmail does not work with java-9-openjdk
It's working again with libmail-java/1.6.1-2. Thanks On Tue, 3 Apr 2018 21:01:30 +0200 Emmanuel Bourgwrote: > Le 03/04/2018 à 12:03, Alexandre Rossi a écrit : > > > This seems to be a CLASSPATH issue due to the new dependency on > > javax.activation of javax.mail. > > > > I do not know enough about java library jar good practices to know if > > the classpath should be set in mail.jar or explicitly in davmail.jar > > though (as it is not davmail that depends on activation.jar but > > mail.jar). > > I've just uploaded libmail-java/1.6.1-2 with the Class-Path attribute > pointing to activation.jar. Is it any better ? > > Emmanuel Bourg > > --
Bug#894689: davmail does not work with java-9-openjdk
Le 03/04/2018 à 12:03, Alexandre Rossi a écrit : > This seems to be a CLASSPATH issue due to the new dependency on > javax.activation of javax.mail. > > I do not know enough about java library jar good practices to know if > the classpath should be set in mail.jar or explicitly in davmail.jar > though (as it is not davmail that depends on activation.jar but > mail.jar). I've just uploaded libmail-java/1.6.1-2 with the Class-Path attribute pointing to activation.jar. Is it any better ? Emmanuel Bourg
Bug#894689: davmail does not work with java-9-openjdk
Hi, > davmail fails to work correctly with latest java-9-openjdk in Debian > unstable. > > Fetching and sending messages fails with an exception trace: > > Exception in thread "ImapConnection-51322" java.lang.NoClassDefFoundError: > javax/activation/DataHandler > at > davmail.exchange.ExchangeSession$Message.loadMimeMessage(ExchangeSession.java:2018) > at > davmail.exchange.MessageLoadThread.loadMimeMessage(MessageLoadThread.java:52) > at > davmail.imap.ImapConnection$MessageWrapper.loadMessage(ImapConnection.java:800) > at > davmail.imap.ImapConnection$MessageWrapper.getMimeMessageSize(ImapConnection.java:786) > at davmail.imap.ImapConnection.handleFetch(ImapConnection.java:847) > at davmail.imap.ImapConnection.run(ImapConnection.java:399) > Caused by: java.lang.ClassNotFoundException: javax.activation.DataHandler > at > java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) > at > java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) > ... 6 more This seems to be a CLASSPATH issue due to the new dependency on javax.activation of javax.mail. I do not know enough about java library jar good practices to know if the classpath should be set in mail.jar or explicitly in davmail.jar though (as it is not davmail that depends on activation.jar but mail.jar). The following patch (or built package at https://sml.zincube.net/~niol/tmp/davmail_4.8.3.2554-2+test894689+1_amd64.changes ) may fix the problem by adding activation.jar in davmail.jar's classpath: --- a/debian/patches/0004-Set-classpath-add-target-davmail-lib.patch +++ b/debian/patches/0004-Set-classpath-add-target-davmail-lib.patch @@ -8,9 +8,9 @@ Subject: Set classpath, add target davmail-lib Index: davmail.git/build.xml === davmail.git.orig/build.xml -+++ davmail.git/build.xml -@@ -3,13 +3,20 @@ +--- davmail.git.orig/build.xml 2018-04-03 11:30:05.032340443 +0200 davmail.git/build.xml 2018-04-03 11:30:31.336772113 +0200 +@@ -3,13 +3,21 @@ @@ -27,6 +27,7 @@ Index: davmail.git/build.xml + + + ++^M + + + @@ -38,7 +39,7 @@ Index: davmail.git/build.xml -@@ -286,28 +293,7 @@ +@@ -286,28 +294,7 @@ Thanks for reporting, Alex
Bug#894689: davmail does not work with java-9-openjdk
Package: davmail Version: 4.8.3.2554-2 Severity: normal Dear Maintainer, davmail fails to work correctly with latest java-9-openjdk in Debian unstable. Fetching and sending messages fails with an exception trace: Exception in thread "ImapConnection-51322" java.lang.NoClassDefFoundError: javax/activation/DataHandler at davmail.exchange.ExchangeSession$Message.loadMimeMessage(ExchangeSession.java:2018) at davmail.exchange.MessageLoadThread.loadMimeMessage(MessageLoadThread.java:52) at davmail.imap.ImapConnection$MessageWrapper.loadMessage(ImapConnection.java:800) at davmail.imap.ImapConnection$MessageWrapper.getMimeMessageSize(ImapConnection.java:786) at davmail.imap.ImapConnection.handleFetch(ImapConnection.java:847) at davmail.imap.ImapConnection.run(ImapConnection.java:399) Caused by: java.lang.ClassNotFoundException: javax.activation.DataHandler at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) ... 6 more Since downgrading davmail did not help, I checked if I have multiple java JRE versions installed and it turned out I do: # dpkg -l |grep openjdk ii openjdk-8-jre:amd64 8u162-b12-1 amd64OpenJDK Java runtime, using Hotspot JIT ii openjdk-8-jre-headless:amd64 8u162-b12-1 amd64OpenJDK Java runtime, using Hotspot JIT (headless) ii openjdk-9-jre:amd64 9.0.4+12-4 amd64OpenJDK Java runtime, using Hotspot JIT ii openjdk-9-jre-headless:amd64 9.0.4+12-4 amd64OpenJDK Java runtime, using Hotspot JIT (headless) Then I used 'update-alternatives --all' command and switched all java related tools from openjdk-9 to openjdk-8. After restarting davmail, I can now again send and receive messages with it. Maybe davmail could depend on openjdk-8-jre-headless until the root causes are fixed. Thanks, -Mikko -- System Information: Debian Release: buster/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable') Architecture: amd64 (x86_64) Kernel: Linux 4.14.12+ (SMP w/4 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages davmail depends on: ii adduser 3.117 ii default-jre-headless [java9-runtime-headless]2:1.9-62 ii jarwrapper 0.63 ii libcommons-codec-java1.11-1 ii libcommons-httpclient-java 3.1-14 ii libcommons-logging-java 1.2-2 ii libhtmlcleaner-java 2.21-2 ii libjackrabbit-java 2.14.4-1 ii libjcifs-java1.3.19-2 ii liblog4j1.2-java 1.2.17-8 ii libmail-java 1.6.1-1 ii libservlet3.1-java 8.5.29-1 ii libslf4j-java1.7.25-3 ii libstax2-api-java3.1.1-1 ii libwoodstox-java 1:4.1.3-1 ii logrotate3.11.0-0.1 ii lsb-base 9.20170808 ii openjdk-8-jre-headless [java8-runtime-headless] 8u162-b12-1 ii openjdk-9-jre-headless [java9-runtime-headless] 9.0.4+12-4 davmail recommends no packages. Versions of packages davmail suggests: pn libswt-cairo-gtk-4-jni pn libswt-gtk-4-java -- no debconf information