[
https://issues.apache.org/jira/browse/FELIX-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12914097#action_12914097
]
Derek Baum commented on FELIX-2618:
-----------------------------------
OK, we've worked out what's going on.
https://issues.apache.org/jira/browse/FELIX-2445 was not fixed until _after_
the gogo-0.6 release, thus gogo-0.6 tries to loadclass java.lang.System from
bundle 1 (due to https://issues.apache.org/jira/browse/FELIX-2335).
This happens to work in the default framework distribution, because bundle 1 is
the felix bundle repository,
but when you add your test bundle to the bundles directory, it becomes bundle 1
and thus we get the error.
gogo-0.6.1 and a framework-3.0.3 are just about to be released, which will fix
this.
You can work-around it now, by extracting and fixing gosh_profile, as follows:
$ cd felix-framework-3.0.2
$ jar xvf bundle/org.apache.felix.gogo.shell-0.6.0.jar gosh_profile
$ mkdir etc
$ mv gosh_profile etc
Then edit etc/gosh_profile, and change the following line:
addcommand system ((bundle 1) loadclass java.lang.System)
to
addcommand system ((bundle 0) loadclass java.lang.System)
> Bundle resolution causes CNFE for java.lang.System
> --------------------------------------------------
>
> Key: FELIX-2618
> URL: https://issues.apache.org/jira/browse/FELIX-2618
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: gogo-0.6.0
> Environment: Fedora 11 Linux x86_64 Java 1.6.0_13-b03 Felix Framework
> 3.0.2
> Reporter: John Dunlap
> Priority: Minor
> Fix For: gogo-0.8.0
>
> Attachments: dictionary-service.zip
>
>
> If I attempt to import the package org.apache.felix.shell in my bundle
> manifest I get the following error,
> ERROR: Error starting
> file:/home/jddunlap/apache-felix/felix-framework-3.0.2/bundle/dictionary-service-1.0-SNAPSHOT.jar
> (org.osgi.framework.BundleException: Unresolved constraint in bundle [1]:
> Unable to resolve 1.0: missing requirement [1.0] package;
> (package=org.osgi.framework.shell))
> org.osgi.framework.BundleException: Unresolved constraint in bundle [1]:
> Unable to resolve 1.0: missing requirement [1.0] package;
> (package=org.osgi.framework.shell)
> at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3409)
> at org.apache.felix.framework.Felix.startBundle(Felix.java:1709)
> at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1143)
> at
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)
> at java.lang.Thread.run(Thread.java:619)
> bundle://5.0:1/gosh_profile:15.20: ClassNotFoundException: java.lang.System
> java.lang.ClassNotFoundException: java.lang.System
> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1591)
> at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:887)
> 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:597)
> at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:465)
> at
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:335)
> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:184)
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:121)
> at org.apache.felix.gogo.runtime.Closure.eval(Closure.java:265)
> at
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:307)
> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:184)
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:121)
> at
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:78)
> at org.apache.felix.gogo.shell.Shell.source(Shell.java:186)
> at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:106)
> 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:597)
> at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
> at
> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:421)
> at
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:335)
> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:184)
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:121)
> at
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:78)
> at org.apache.felix.gogo.shell.Activator.run(Activator.java:72)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: org.osgi.framework.BundleException: Unresolved constraint in
> bundle [1]: Unable to resolve 1.0: missing requirement [1.0] package;
> (package=org.osgi.framework.shell)
> at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3409)
> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1584)
> ... 33 more
> The problem appears to be in the manifest. If I remove
> "org.apache.felix.shell" from the Import-Package manifest entry, the
> error goes away. If I put it back the error returns. For example,
> changing this,
> "Import-Package: org.osgi.framework,org.apache.felix.shell"
> to this,
> "Import-Package: org.osgi.framework"
> makes the error go away. It does not seem to matter if I implement
> service interfaces from that package. The import itself appears to
> trigger the error.
> Issue created as requested by Richard S. Hall
> Cheers!
> -John
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.