Nick Williams created FELIX-4005:
------------------------------------
Summary: Maven Bundle Plugin fails with
ArrayIndexOutOfBoundsException, "Invalid Class File" errors with Java 8 features
Key: FELIX-4005
URL: https://issues.apache.org/jira/browse/FELIX-4005
Project: Felix
Issue Type: Bug
Components: Maven Bundle Plugin
Affects Versions: maven-bundle-plugin-2.3.7
Reporter: Nick Williams
Priority: Blocker
I have the POM file attached. Its parent is "com.fasterxml:oss-parent" version
8 (which can be found in central repository). The module I'm creating is a
Mapping Jackson plugin that supports the Java 8 Date & Time API. It uses lambda
expressions and method references as well. The Maven Bundle Plugin, it would
seem, does not like this. I cannot build (which is kind of a big deal). The
classes compile fine as you can see, so there isn't a problem with my Java
code. Just the plugin.
Here is the output from the build process:
{code}
[WARNING] Command line option -npr is deprecated and will be removed in future
Maven versions.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Jackson-Datatype-JSR310 2.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:1.1.1:enforce (enforce-java) @
jackson-datatype-jsr310 ---
[INFO]
[INFO] --- replacer:1.5.2:replace (process-packageVersion) @
jackson-datatype-jsr310 ---
[INFO] Replacement run on 1 file.
[INFO]
[INFO] --- build-helper-maven-plugin:1.7:add-source (add-generated-sources) @
jackson-datatype-jsr310 ---
[INFO] Source directory:
C:\Users\Nicholas\Desktop\jackson-datatype-jsr310\target\generated-sources
added.
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @
jackson-datatype-jsr310 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory
C:\Users\Nicholas\Desktop\jackson-datatype-jsr310\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @
jackson-datatype-jsr310 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 21 source files to
C:\Users\Nicholas\Desktop\jackson-datatype-jsr310\target\classes
[INFO]
[INFO] --- maven-bundle-plugin:2.3.7:manifest (bundle-manifest) @
jackson-datatype-jsr310 ---
java.lang.ArrayIndexOutOfBoundsException: 18
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:448)
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:369)
at aQute.lib.osgi.Clazz.parseClassFileWithCollector(Clazz.java:359)
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:349)
at aQute.lib.osgi.Analyzer.analyzeJar(Analyzer.java:1725)
at aQute.lib.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:1595)
at aQute.lib.osgi.Analyzer.analyze(Analyzer.java:124)
at aQute.lib.osgi.Builder.analyze(Builder.java:306)
at aQute.lib.osgi.Analyzer.calcManifest(Analyzer.java:301)
at
org.apache.felix.bundleplugin.ManifestPlugin.getAnalyzer(ManifestPlugin.java:206)
at
org.apache.felix.bundleplugin.ManifestPlugin.getManifest(ManifestPlugin.java:114)
at
org.apache.felix.bundleplugin.ManifestPlugin.execute(ManifestPlugin.java:69)
at
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:264)
at
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:255)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:487)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:487)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
java.lang.ArrayIndexOutOfBoundsException: 18
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:448)
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:369)
at aQute.lib.osgi.Clazz.parseClassFileWithCollector(Clazz.java:359)
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:349)
at aQute.lib.osgi.Analyzer.analyzeJar(Analyzer.java:1725)
at aQute.lib.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:1595)
at aQute.lib.osgi.Analyzer.analyze(Analyzer.java:124)
at aQute.lib.osgi.Builder.analyze(Builder.java:306)
at aQute.lib.osgi.Analyzer.calcManifest(Analyzer.java:301)
at
org.apache.felix.bundleplugin.ManifestPlugin.getAnalyzer(ManifestPlugin.java:206)
at
org.apache.felix.bundleplugin.ManifestPlugin.getManifest(ManifestPlugin.java:114)
at
org.apache.felix.bundleplugin.ManifestPlugin.execute(ManifestPlugin.java:69)
at
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:264)
at
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:255)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:487)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:487)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
java.lang.ArrayIndexOutOfBoundsException: 18
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:448)
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:369)
at aQute.lib.osgi.Clazz.parseClassFileWithCollector(Clazz.java:359)
at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:349)
at aQute.lib.osgi.Analyzer.analyzeJar(Analyzer.java:1725)
at aQute.lib.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:1595)
at aQute.lib.osgi.Analyzer.analyze(Analyzer.java:124)
at aQute.lib.osgi.Builder.analyze(Builder.java:306)
at aQute.lib.osgi.Analyzer.calcManifest(Analyzer.java:301)
at
org.apache.felix.bundleplugin.ManifestPlugin.getAnalyzer(ManifestPlugin.java:206)
at
org.apache.felix.bundleplugin.ManifestPlugin.getManifest(ManifestPlugin.java:114)
at
org.apache.felix.bundleplugin.ManifestPlugin.execute(ManifestPlugin.java:69)
at
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:264)
at
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:255)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:487)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:487)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
[ERROR] Manifest
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.2.0-SNAPSHOT :
Exception: 18
[ERROR] Manifest
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.2.0-SNAPSHOT :
Invalid class file:
com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer.class
[ERROR] Manifest
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.2.0-SNAPSHOT :
Exception: 18
[ERROR] Manifest
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.2.0-SNAPSHOT :
Invalid class file:
com/fasterxml/jackson/datatype/jsr310/deser/JSR310StringParsableDeserializer.class
[ERROR] Manifest
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.2.0-SNAPSHOT :
Exception: 18
[ERROR] Manifest
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.2.0-SNAPSHOT :
Invalid class file:
com/fasterxml/jackson/datatype/jsr310/ser/InstantSerializer.class
[ERROR] Error(s) found in manifest configuration
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.790s
[INFO] Finished at: Sat Mar 30 08:57:34 CDT 2013
[INFO] Final Memory: 21M/179M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.felix:maven-bundle-plugin:2.3.7:manifest (bundle-manifest) on
project jackson-datatype-jsr310: Error(s) found in manifest configuration ->
[Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please
read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira