Bug#880746: libmetadata-extractor-java: Manifest references xmpcore-debian.jar, but libxmpcore-java does not provide this file.
Bas Couwenberg
sebastic at xs4all.nl
Sat Nov 4 17:52:53 UTC 2017
Source: libmetadata-extractor-java
Version: 2.10.1-2
Severity: important
Control: affects -1 src:gpsprune
Dear Maintainer,
As reported in the upstream GpsPrune issue [0], loading JPG files using
libmetadata-extractor-java causes NoClassDefFoundError exceptions:
Link: com/adobe/xmp/XMPException
java.lang.NoClassDefFoundError: com/adobe/xmp/XMPException
at com.drew.imaging.jpeg.JpegMetadataReader.(JpegMetadataReader.java:57)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:111)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:161)
at tim.prune.jpeg.ExternalExifLibrary.getJpegData(ExternalExifLibrary.java:36)
at tim.prune.jpeg.ExifGateway.getJpegData(ExifGateway.java:46)
at tim.prune.load.JpegLoader.createPhoto(JpegLoader.java:227)
at tim.prune.load.JpegLoader.processFile(JpegLoader.java:204)
at tim.prune.load.JpegLoader.processFileList(JpegLoader.java:172)
at tim.prune.load.JpegLoader.run(JpegLoader.java:127)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.adobe.xmp.XMPException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
The GpsPrune upstream developer traced this issue down to an incorrect
jar being referenced in the manifest of libmetdata-extractor-java:
"
I had a look at the jars, and the manifest of GpsPrune's jar correctly
references the metadata-extractor.jar. However, the manifest of the
metadata-extractor.jar refers to a file called "xmpcore-debian.jar"
instead of "xmpcore.jar" as I would expect.
"
The xmpcore-debian.jar file is not provided by the libxmpcore-java
package, only xmpcore.jar & xmpcore-5.1.2.jar.
The attached patch uses jh_classpath from javahelper to fix the
Class-Path in metadata-extractor.jar.
Please consider applying this patch, or fix this issue in a different
way.
[0] https://github.com/activityworkshop/GpsPrune/issues/15
Kind Regards,
Bas
-------------- next part --------------
>From 70f18e987b094e2f562b68bb459aa7aca94f9b0c Mon Sep 17 00:00:00 2001
From: Bas Couwenberg <sebastic at xs4all.nl>
Date: Sat, 4 Nov 2017 17:48:37 +0100
Subject: Use javahelper to fix the Class-Path for xmpcore.jar.
---
debian/changelog | 7 +++++++
debian/control | 1 +
debian/libmetadata-extractor-java.classpath | 1 +
debian/rules | 4 ++++
4 files changed, 13 insertions(+)
create mode 100644 debian/libmetadata-extractor-java.classpath
diff --git a/debian/changelog b/debian/changelog
index 4cd2d38..a87850d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libmetadata-extractor-java (2.10.1-2.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Use javahelper to fix the Class-Path for xmpcore.jar.
+
+ -- Bas Couwenberg <sebastic at debian.org> Sat, 04 Nov 2017 17:48:01 +0100
+
libmetadata-extractor-java (2.10.1-2) unstable; urgency=medium
* Team upload.
diff --git a/debian/control b/debian/control
index 06c4607..7dad3d2 100644
--- a/debian/control
+++ b/debian/control
@@ -6,6 +6,7 @@ Uploaders: Emmanuel Bourg <ebourg at apache.org>
Build-Depends: debhelper (>= 10),
default-jdk,
default-jdk-doc,
+ javahelper,
junit4,
libxmpcore-java,
libmaven-javadoc-plugin-java,
diff --git a/debian/libmetadata-extractor-java.classpath b/debian/libmetadata-extractor-java.classpath
new file mode 100644
index 0000000..10ba889
--- /dev/null
+++ b/debian/libmetadata-extractor-java.classpath
@@ -0,0 +1 @@
+usr/share/java/metadata-extractor.jar /usr/share/java/xmpcore.jar
diff --git a/debian/rules b/debian/rules
index fa23c8f..194f12c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -3,5 +3,9 @@
%:
dh $@ --buildsystem=maven
+override_dh_install:
+ dh_install
+ jh_classpath -v
+
get-orig-source::
uscan --force-download --download-current-version
--
2.11.0
More information about the pkg-java-maintainers
mailing list