felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Holger Hoffstätte (JIRA) <j...@apache.org>
Subject [jira] Created: (FELIX-1580) Regression with native library handling
Date Fri, 11 Sep 2009 12:04:57 GMT
Regression with native library handling

                 Key: FELIX-1580
                 URL: https://issues.apache.org/jira/browse/FELIX-1580
             Project: Felix
          Issue Type: Bug
          Components: Framework
    Affects Versions: felix-2.0.0
         Environment: generic, JDK6, tested on Windows & Linux
            Reporter: Holger Hoffstätte
            Priority: Critical

I tried to update to felix-2.0.0 but my bundles with native code would not install anymore,
even though they work fine under felix-1.8.1 and equinox. The following error showed up for
no good reason:

org.osgi.framework.BundleException: Activator start error in bundle org.example.pkg [23].
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:1750)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1621)
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:890)
        at org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:114)
        at org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:281)
        at org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at org.apache.felix.framework.util.manifestparser.R4Library.match(R4Library.java:113)
        at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.findLibrary(ModuleImpl.java:1929)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1680)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1028)
        at org.example.pkg.internal.ExampleActivator.start(ExampleActivator.java:12)
        at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:667)
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:1699)
        ... 6 more
java.lang.ArrayIndexOutOfBoundsException: 0

Through trial-and-error I have found the rather confusing conditions under which this error
shows up:

- a library is not found in the bundle (code passes a nonexisting name to System.loadLibrary())

- multiple libraries are _correctly_ specified in the Bundle-NativeCode header!

There might be other confusing combinations. ;)

I traced this back to the changes to R4Library in r790963 (Add support for configurable native
library extensions. (FELIX-1298)) where the match() method was modified. It seems that the
"exts" array is empty and therefore leads to the AIOOB later.

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

View raw message