ArrayIndexOutOfBoundsException in aQute.lib.osgi.Clazz.parseClassFile
---------------------------------------------------------------------

                 Key: FELIX-723
                 URL: https://issues.apache.org/jira/browse/FELIX-723
             Project: Felix
          Issue Type: Bug
          Components: Maven Bundle Plugin
         Environment: MacOSX
            Reporter: Brad Cox


> I integrated the recommended changes (pom enclosed below) but that
> com.ibm.icu error turned up again. Bad chinese locale class out there
> somewhere? com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class.

Seems to be triggered by  
<Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>. 
At least removing that eliminates the symptom.

I'll work towards a small test case once I understand this a bit better. 
This bug is ephemeral so I want to capture what I have first.

I tried erasing it in .m2 but that didn't help. POM and stacktrace below

<?xml version="1.0" encoding="UTF-8"?>
> <project
>        xmlns="http://maven.apache.org/POM/4.0.0";
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd";
> > >
>  <modelVersion>4.0.0</modelVersion>
>  <groupId>soakit</groupId>
>  <artifactId>soakit.core</artifactId>
>  <version>1.0-SNAPSHOT</version>
>  <name>soakit.core</name>
>  <description>SoaKit Core Abstraction Layer. Defines interfaces and
> abstract classes for the components defined in sub-modules. Provides a
> service (factory class) for defining soakit composites with an XML
> configuration file.</description>
>
>  <packaging>bundle</packaging>
>
>  <parent>
>    <groupId>soakit</groupId>
>    <artifactId>soakit</artifactId>
>    <version>1.0-SNAPSHOT</version>
>  </parent>
>
>  <dependencies>
>    <dependency>
>      <groupId>commons-collections</groupId>
>      <artifactId>commons-collections</artifactId>
>      <version>3.2</version>
>    </dependency>
>                <dependency>
>                        <groupId>jdom</groupId>
>                        <artifactId>jdom</artifactId>
>                        <version>1.0</version>
>                </dependency>
>                <!--
>                <dependency>
>                        <groupId>javax.xml.parsers</groupId>
>                        <artifactId>jaxp-api</artifactId>
>                        <version>1.4</version>
>                </dependency>
>                <dependency>
>                        <groupId>javax.xml.ws</groupId>
>                        <artifactId>jaxws-api</artifactId>
>                        <version>2.1-1</version>
>                </dependency>
>                <dependency>
>                        <groupId>xerces</groupId>
>                        <artifactId>xercesImpl</artifactId>
>                        <version>2.8.1</version>
>                </dependency>
>     <dependency>
>                        <groupId>org.eclipse</groupId>
>                        <artifactId>osgi</artifactId>
>                        <version>3.4.0.v20080605-1900</version>
>    </dependency>
>    <dependency>
>                        <groupId>jaxen</groupId>
>                <artifactId>jaxen</artifactId>
>                  <version>1.1-beta-9</version>
>    </dependency>
>                -->
>  </dependencies>
>
>  <build>
>    <resources>
>      <resource>
>        <directory>src/main/resources</directory>
>      </resource>
>      <resource>
>        <directory>.</directory>
>        <includes>
>          <include>plugin.xml</include>
>        </includes>
>      </resource>
>    </resources>
>
>    <plugins>
>                        <plugin>
>        <artifactId>maven-eclipse-plugin</artifactId>
>        <configuration>
>          <pde>true</pde>
>        </configuration>
>      </plugin>
>      <plugin>
>        <groupId>org.apache.felix</groupId>
>        <artifactId>maven-bundle-plugin</artifactId>
>        <version>1.4.3</version>
>        <extensions>true</extensions>
>        <configuration>
>                                        <unpackBundle>true</unpackBundle>
>          <manifestLocation>META-INF</manifestLocation>
>          <instructions>
>            <Bundle-Version>${pom.version}</Bundle-Version>
>            <Bundle-Name>${artifactId}</Bundle-Name>
>            <Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
>                                                <Bundle-Description>Soakit
> Core Bundle</Bundle-Description>
>
> <Bundle-Activator>com.gestalt.soakit.core.CoreActivator</Bundle-Activator>
>
> <Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>
>
>  <Embed-Transitive>true</Embed-Transitive>
>            <Embed-Directory>target/dependency</Embed-Directory>
>
> <Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment>
>            <Import-Package>
>                                                        *,
>                                                        <!--
>
>  org.apache.commons.collections.*;version="3.2"
>
>  org.apache.commons.collections.iterators.*;version="3.2",
>
>  org.jdom;version="1.0",
>
>  org.jdom.*;version="1.0",
>
>  org.jdom.input.*;version="1.0",
>
>  org.jdom.output.*;version="1.0",
>
>  org.apache.xerces.parsers,
>                                                        javax.*,
>                                                        javax.jws.*,
>                                                        javax.xml.bind.*,
>                                                        javax.annotation.*,
>                                                        javax.xml.soap.*,
>                                                        javax.xml.stream.*,
>                                                        javax.activation.*,
>                                                        -->
>                                                </Import-Package>
>            <Export-Package>
>                                                        .,
>
>  com.gestalt.soakit.core.*,
>
>  org.jdom;version="1.0",
>
>  org.jdom.*;version="1.0",
>
>  org.jdom.input.*;version="1.0",
>
>  org.jdom.output.*;version="1.0",
>                                                        <!--
>
>  org.apache.commons.collections.*;version="3.2",
>
>  org.apache.commons.collections.iterators.*;version="3.2",
>
>  org.apache.xerces.parsers.*,
>                                                        javax.*,
>                                                        javax.jws.*,
>                                                        javax.xml.bind,
>                                                        javax.annotation,
>                                                        javax.xml.soap,
>                                                        javax.xml.stream,
>                                                        javax.activation,
>
>                                                        -->
>                                                </Export-Package>
>          </instructions>
>        </configuration>
>      </plugin>
>                        <!--
>            <plugin>
>                                <groupId>org.apache.maven.plugins</groupId>
>
>  <artifactId>maven-eclipse-plugin</artifactId>
>                                <configuration>
>
>  <projectNameTemplate>[artifactId]-[version]</projectNameTemplate>
>                                        <wtpmanifest>true</wtpmanifest>
>
>  <wtpapplicationxml>true</wtpapplicationxml>
>                                        <wtpversion>2.0</wtpversion>
>
>  <manifest>${basedir}/src/main/resources/META-INF/MANIFEST.MF</manifest>
>                                </configuration>
>      </plugin>
>                        -->
>    </plugins>
>    <extensions>
>    </extensions>
>  </build>
> </project>



> >
> > To reproduce, with the enclosed pom.
> > mvn clean
> > mvn pde:clean -Dverbose # to be "safe"
> > mvn eclipse:clean -Dverbose # to be "safe"
> > mvn -e install
> >
> > + Error stacktraces are turned on.
> > [INFO] Scanning for projects...
> > [INFO] Reactor build order:
> > [INFO]   soakit root pom
> > [INFO]   soakit.core
> > [INFO]   soakit.main
> > [INFO]   soakit.port
> > [INFO]   soakit.port.file
> > [INFO]   soakit.port.http
> > [INFO]   soakit.transform
> > [INFO]   soakit.transform.identity
> > [INFO]   soakit.transform.log
> > [INFO]   soakit.transform.pep
> > [INFO]   soakit.transform.xsl
> > [INFO]   soakit.component
> > [INFO]   soakit.test
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Building soakit root pom
> > [INFO]    task-segment: [install]
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] [site:attach-descriptor]
> > [INFO] [install:install]
> > [INFO] Installing /SoftwareDevelopment/soakit/pom.xml to
> > /Users/bradcox/.m2/repository/soakit/soakit/1.0-SNAPSHOT/soakit-1.0-SNAPSHOT.pom
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Building soakit.core
> > [INFO]    task-segment: [install]
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] [resources:resources]
> > [INFO] Using default encoding to copy filtered resources.
> > [INFO] [compiler:compile]
> > [INFO] Nothing to compile - all classes are up to date
> > [INFO] [resources:testResources]
> > [INFO] Using default encoding to copy filtered resources.
> > [INFO] [compiler:testCompile]
> > [INFO] No sources to compile
> > [INFO] [surefire:test]
> > [INFO] No tests to run.
> > [INFO] [bundle:bundle]
> > java.lang.ArrayIndexOutOfBoundsException: 60
> >        at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:130)
> >        at aQute.lib.osgi.Clazz.<init>(Clazz.java:65)
> >        at aQute.lib.osgi.Processor.analyzeJar(Processor.java:159)
> >        at
> > aQute.lib.osgi.Processor.analyzeBundleClasspath(Processor.java:77)
> >        at aQute.lib.osgi.Analyzer.analyze(Analyzer.java:194)
> >        at aQute.lib.osgi.Builder.analyze(Builder.java:95)
> >        at aQute.lib.osgi.Analyzer.calcManifest(Analyzer.java:293)
> >        at aQute.lib.osgi.Builder.build(Builder.java:45)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.buildOSGiBundle(BundlePlugin.java:391)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:273)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:227)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:218)
> >        at
> > org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
> >        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
> >        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
> >        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
> >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >        at
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >        at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >        at java.lang.reflect.Method.invoke(Method.java:585)
> >        at
> > org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
> >        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> >        at
> > org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
> >        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> > java.lang.ArrayIndexOutOfBoundsException: 60
> >        at aQute.lib.osgi.Clazz.parseClassFile(Clazz.java:130)
> >        at aQute.lib.osgi.Clazz.<init>(Clazz.java:65)
> >        at aQute.lib.osgi.Processor.analyzeJar(Processor.java:159)
> >        at
> > aQute.lib.osgi.Processor.analyzeBundleClasspath(Processor.java:77)
> >        at aQute.lib.osgi.Verifier.verify(Verifier.java:354)
> >        at aQute.lib.osgi.Builder.doVerify(Builder.java:216)
> >        at aQute.lib.osgi.Builder.build(Builder.java:52)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.buildOSGiBundle(BundlePlugin.java:391)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:273)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:227)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:218)
> >        at
> > org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
> >        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
> >        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
> >        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
> >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >        at
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >        at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >        at java.lang.reflect.Method.invoke(Method.java:585)
> >        at
> > org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
> >        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> >        at
> > org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
> >        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> > [WARNING] Warning building bundle soakit:soakit.core:bundle:1.0-SNAPSHOT :
> > Instructions for Export-Package that are never used:
> > org\.jdom\.input\..*|org\.jdom\.input,
> > org\.jdom\.output\..*|org\.jdom\.output, \.
> > [WARNING] Warning building bundle soakit:soakit.core:bundle:1.0-SNAPSHOT :
> > Superfluous export-package instructions: [., org.jdom.input.*,
> > org.jdom.output.*]
> > [ERROR] Error building bundle soakit:soakit.core:bundle:1.0-SNAPSHOT :
> > Invalid class file: com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class 60
> > [ERROR] Error building bundle soakit:soakit.core:bundle:1.0-SNAPSHOT :
> > Invalid class file: com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class 60
> > [ERROR] Error building bundle soakit:soakit.core:bundle:1.0-SNAPSHOT :
> > Unresolved references to [.] by class(es) on the Bundle-Classpath[Jar:dot]:
> > [JDOMAbout$Info.class, JDOMAbout.class, JDOMAbout$Author.class]
> > [ERROR] Error(s) found in bundle configuration
> > [INFO]
> > ------------------------------------------------------------------------
> > [ERROR] BUILD ERROR
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Error(s) found in bundle configuration
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Trace
> > org.apache.maven.lifecycle.LifecycleExecutionException: Error(s) found in
> > bundle configuration
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
> >        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
> >        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
> >        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
> >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >        at
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >        at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >        at java.lang.reflect.Method.invoke(Method.java:585)
> >        at
> > org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
> >        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> >        at
> > org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
> >        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> > Caused by: org.apache.maven.plugin.MojoExecutionException: Error(s) found
> > in bundle configuration
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:344)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:227)
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:218)
> >        at
> > org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
> >        at
> > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
> >        ... 16 more
> > Caused by: org.apache.maven.plugin.MojoFailureException: Error(s) found in
> > bundle configuration
> >        at
> > org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:296)
> >        ... 20 more
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Total time: 7 seconds
> > [INFO] Finished at: Thu Sep 11 17:15:15 EDT 2008
> > [INFO] Final Memory: 17M/254M
> > [INFO]
> > ------------------------------------------------------------------------




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to