-
-
Notifications
You must be signed in to change notification settings - Fork 820
Closed
Labels
3.0Issue planned for initial 3.0 releaseIssue planned for initial 3.0 release
Milestone
Description
We have a project that has FastDoubleParser (ch.randelshofer:fastdoubleparser:2.0.1) as a dependency.
After an upgrade of another dependency transitively brought in Jackson 3.0.1, we saw the following error in our application:
java.lang.NoClassDefFoundError: ch/randelshofer/fastdoubleparser/FastIntegerMath (wrong name: tools/jackson/core/internal/shaded/fdp/FastIntegerMath)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at ch.randelshofer.fastdoubleparser.FastDoubleMath.tryDecToDoubleWithFastAlgorithm(FastDoubleMath.java:891)
at ch.randelshofer.fastdoubleparser.FastDoubleMath.tryDecFloatToDoubleTruncated(FastDoubleMath.java:795)
at ch.randelshofer.fastdoubleparser.JavaDoubleBitsFromCharSequence.valueOfFloatLiteral(JavaDoubleBitsFromCharSequence.java:38)
at ch.randelshofer.fastdoubleparser.AbstractJavaFloatingPointBitsFromCharSequence.parseDecFloatLiteral(AbstractJavaFloatingPointBitsFromCharSequence.java:184)
at ch.randelshofer.fastdoubleparser.AbstractJavaFloatingPointBitsFromCharSequence.parseFloatingPointLiteral(AbstractJavaFloatingPointBitsFromCharSequence.java:238)
at ch.randelshofer.fastdoubleparser.JavaDoubleParser.parseDouble(JavaDoubleParser.java:190)
at ch.randelshofer.fastdoubleparser.JavaDoubleParser.parseDouble(JavaDoubleParser.java:174)
at (our code)
I investigated the error and found out that ch/randelshofer/fastdoubleparser/FastIntegerMath.class appears on our classpath twice:
- the correct version inside
fastdoubleparser-2.0.1.jar, - and another version inside
jackson-core-3.0.1.jar, which apparently was intended to be shaded, but still appears in the JAR under the original qualified name.
Because of this, if the Jackson JAR appears on the classpath before the FastDoubleParser JAR, FastDoubleParser fails.
vladimir-nikolaev
Metadata
Metadata
Assignees
Labels
3.0Issue planned for initial 3.0 releaseIssue planned for initial 3.0 release