You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Stuart McCulloch (JIRA)" <ji...@apache.org> on 2015/01/06 16:24:34 UTC

[jira] [Created] (FELIX-4754) OBR parse exception when installing org.jacoco.report bundle

Stuart McCulloch created FELIX-4754:
---------------------------------------

             Summary: OBR parse exception when installing org.jacoco.report bundle
                 Key: FELIX-4754
                 URL: https://issues.apache.org/jira/browse/FELIX-4754
             Project: Felix
          Issue Type: Bug
          Components: Bundle Repository (OBR)
    Affects Versions: bundlerepository-2.0.2
            Reporter: Stuart McCulloch


The org.jacoco.report bundle has "bundle-version" attributes on its Import-Package clauses which declare version ranges. These are not properly handled by DataModelHelperImpl, causing an OBR parse exception after installing the org.jacoco.report bundle into the Felix distribution:
{code}
unzip org.apache.felix.main.distribution-4.4.1.zip
cd felix-framework-4.4.1
java -jar bin/felix.jar 
____________________________
Welcome to Apache Felix Gogo

g! install file:/tmp/org.jacoco.report-0.6.2.201302030002.jar
ERROR: Bundle org.apache.felix.bundlerepository [1] EventDispatcher: Error during dispatch. (java.lang.IllegalArgumentException)
java.lang.IllegalArgumentException
	at org.apache.felix.bundlerepository.impl.RequirementImpl.setFilter(RequirementImpl.java:101)
	at org.apache.felix.bundlerepository.impl.DataModelHelperImpl.createImportFilter(DataModelHelperImpl.java:775)
	at org.apache.felix.bundlerepository.impl.DataModelHelperImpl.doImports(DataModelHelperImpl.java:738)
	at org.apache.felix.bundlerepository.impl.DataModelHelperImpl.populate(DataModelHelperImpl.java:556)
	at org.apache.felix.bundlerepository.impl.LocalResourceImpl.initialize(LocalResourceImpl.java:57)
	at org.apache.felix.bundlerepository.impl.LocalResourceImpl.<init>(LocalResourceImpl.java:40)
	at org.apache.felix.bundlerepository.impl.LocalRepositoryImpl.addBundle(LocalRepositoryImpl.java:98)
	at org.apache.felix.bundlerepository.impl.LocalRepositoryImpl.bundleChanged(LocalRepositoryImpl.java:54)
	at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:869)
	at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:790)
	at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:515)
	at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4434)
	at org.apache.felix.framework.Felix.installBundle(Felix.java:3056)
	at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:165)
	at org.apache.felix.gogo.command.Basic.install(Basic.java:428)
	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:606)
	at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137)
	at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
	at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
	at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
	at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
	at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92)
	at org.apache.felix.gogo.shell.Console.run(Console.java:62)
	at org.apache.felix.gogo.shell.Shell.console(Shell.java:203)
	at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128)
	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:606)
	at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137)
	at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
	at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
	at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
	at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
	at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92)
	at org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.osgi.framework.InvalidSyntaxException: Extraneous trailing characters: (mandatory:<*bundle-version)): (&(package=org.jacoco.core)(version>=0.6.2)(!(version>=0.6.3))(bundle-version=[0.6.2,0.6.3))(mandatory:<*bundle-version))
	at org.apache.felix.utils.filter.FilterImpl$Parser.parse(FilterImpl.java:1180)
	at org.apache.felix.utils.filter.FilterImpl.newInstance(FilterImpl.java:87)
	at org.apache.felix.bundlerepository.impl.RequirementImpl.setFilter(RequirementImpl.java:97)
	... 43 more
Bundle ID: 5
g! 
{code}
Either the DataModelHelperImpl should ignore bundle-version attributes (since it doesn't generate associated bundle-version properties on the capabilities of exported packages) or it should handle them as a special case and generate the correct filter syntax. For the latter case it would also need to generate the relevant bundle-version properties on the capabilities of exported packages, otherwise these requirements would never be satisfied.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)