Hi,

We've added the felix property felix.bootdelegation.implicit=false as
recommended by Karl and that enabled us to get past that initial problem.

However, there is a further issue:

After Felix is started, our code creates a URL, opens the connection and
reads in the response from the input stream.  Pretty basic stuff, but this
code is failing in the most fundamental way:

11-22 10:20:42.057: E/SkiftaService(3342): java.net.MalformedURLException:
java.lang.IllegalStateException: Unknown protocol: http
11-22 10:20:42.057: E/SkiftaService(3342):      at
java.net.URL.<init>(URL.java:192)
11-22 10:20:42.057: E/SkiftaService(3342):      at
java.net.URL.<init>(URL.java:127)
11-22 10:20:42.057: E/SkiftaService(3342):      at
com.skifta.android.client.SkiftaService.init(SkiftaService.java:782)
11-22 10:20:42.057: E/SkiftaService(3342):      at
com.skifta.android.client.SkiftaService$1.run(SkiftaService.java:384)
11-22 10:20:42.057: E/SkiftaService(3342):      at
java.lang.Thread.run(Thread.java:856)

The java.net.URL class in this case is the version in the libcore of the
Android O/S.  Most importantly: if felix is NOT started (literally the
call to felix.start() is commented out) the code works fine.  So,
something must happen after Felix starts to cause this.

This is only a problem with Android 4.0, not earlier versions of Android.

Any ideas?

Regards,

Mark



On 10/11/2011 17:25, "Karl Pauls" <[email protected]> wrote:

>Can you try to set the following property:
>
>felix.bootdelegation.implicit=false
>
>that hopefully fixes it.
>
>regards,
>
>Karl
>
>On Thu, Nov 10, 2011 at 5:32 PM, Caunter, Mark <[email protected]>
>wrote:
>> This is the stack trace for the latest version of felix:
>>
>> E/SkiftaService(10175): unable to load and start bundle from
>> org.apache.felix.http.jetty-2.2.0.jar
>> E/SkiftaService(10175): org.osgi.framework.BundleException: Activator
>> start error in bundle org.apache.felix.http.jetty [3].
>> E/SkiftaService(10175):         at
>> org.apache.felix.framework.Felix.activateBundle(Felix.java:2027)
>> E/SkiftaService(10175):         at
>> org.apache.felix.framework.Felix.startBundle(Felix.java:1895)
>> E/SkiftaService(10175):         at
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:944)
>> E/SkiftaService(10175):         at
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:931)
>> E/SkiftaService(10175):         at
>> 
>>com.skifta.android.client.SkiftaService.startOSGi(SkiftaService.java:1208
>>)
>> E/SkiftaService(10175):         at
>> com.skifta.android.client.SkiftaService.init(SkiftaService.java:675)
>> E/SkiftaService(10175):         at
>> com.skifta.android.client.SkiftaService$1.run(SkiftaService.java:384)
>> E/SkiftaService(10175):         at java.lang.Thread.run(Thread.java:856)
>> E/SkiftaService(10175): Caused by: java.lang.ExceptionInInitializerError
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.http.base.internal.AbstractHttpActivator.doStart(Abstrac
>>tH
>> ttpActivator.java:45)
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.http.jetty.internal.JettyActivator.doStart(JettyActivato
>>r.
>> java:29)
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.http.base.internal.AbstractActivator.start(AbstractActiv
>>at
>> or.java:41)
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.
>>ja
>> va:641)
>> E/SkiftaService(10175):         at
>> org.apache.felix.framework.Felix.activateBundle(Felix.java:1977)
>> E/SkiftaService(10175):         ... 7 more
>> E/SkiftaService(10175): Caused by: java.lang.NullPointerException
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.framework.BundleWiringImpl.doImplicitBootDelegation(Bund
>>le
>> WiringImpl.java:1626)
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.framework.BundleWiringImpl.searchDynamicImports(BundleWi
>>ri
>> ngImpl.java:1603)
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegati
>>on
>> (BundleWiringImpl.java:1439)
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.framework.BundleWiringImpl.getResourceByDelegation(Bundl
>>eW
>> iringImpl.java:1360)
>> E/SkiftaService(10175):         at
>> 
>>org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.getResource
>>(B
>> undleWiringImpl.java:2256)
>> E/SkiftaService(10175):         at
>> java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:434)
>> E/SkiftaService(10175):         at
>> java.util.ResourceBundle.handleGetBundle(ResourceBundle.java:514)
>> E/SkiftaService(10175):         at
>> java.util.ResourceBundle.getBundle(ResourceBundle.java:227)
>> E/SkiftaService(10175):         at
>> java.util.ResourceBundle.getBundle(ResourceBundle.java:140)
>> E/SkiftaService(10175):         at
>> javax.servlet.GenericServlet.<clinit>(GenericServlet.java:64)
>> E/SkiftaService(10175):         ... 12 more
>>
>>
>>
>> On 10/11/2011 10:35, "Caunter, Mark" <[email protected]> wrote:
>>
>>>We've been trying out Skifta, our mobile app, which uses felix (v3.2.2)
>>>on
>>>the latest version of Android (v4.0 - Ice Cream Sandwich) and have found
>>>an issue when trying to start the jetty bundle (v2.2.0).  We need some
>>>help to solve this problem given that Android v4.0 will be officially
>>>released soon.
>>>
>>>Below is the stack trace:
>>>
>>>11-09 12:03:36.507: E/SkiftaService(2979): unable to load and start
>>>bundle
>>>from org.apache.felix.http.jetty-2.2.0.jar
>>>11-09 12:03:36.507: E/SkiftaService(2979):
>>>org.osgi.framework.BundleException: Activator start error in bundle
>>>org.apache.felix.http.jetty [3].
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.Felix.activateBundle(Felix.java:1951)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.Felix.startBundle(Felix.java:1822)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.BundleImpl.start(BundleImpl.java:927)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.BundleImpl.start(BundleImpl.java:914)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>com.skifta.android.client.SkiftaService.startOSGi(SkiftaService.java:120
>>>8)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>com.skifta.android.client.SkiftaService.init(SkiftaService.java:675)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>com.skifta.android.client.SkiftaService$1.run(SkiftaService.java:384)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>java.lang.Thread.run(Thread.java:856)
>>>11-09 12:03:36.507: E/SkiftaService(2979): Caused by:
>>>java.lang.ExceptionInInitializerError
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.http.base.internal.AbstractHttpActivator.doStart(Abstra
>>>ct
>>>H
>>>ttpActivator.java:45)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.http.jetty.internal.JettyActivator.doStart(JettyActivat
>>>or
>>>.
>>>java:29)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.http.base.internal.AbstractActivator.start(AbstractActi
>>>va
>>>t
>>>or.java:41)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.util.SecureAction.startActivator(SecureAction
>>>.j
>>>a
>>>va:629)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.Felix.activateBundle(Felix.java:1904)
>>>11-09 12:03:36.507: E/SkiftaService(2979): ... 7 more
>>>11-09 12:03:36.507: E/SkiftaService(2979): Caused by:
>>>java.lang.NullPointerException
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.ModuleImpl.doImplicitBootDelegation(ModuleImp
>>>l.
>>>j
>>>ava:1531)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.ModuleImpl.searchDynamicImports(ModuleImpl.ja
>>>va
>>>:
>>>1508)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(Mo
>>>du
>>>l
>>>eImpl.java:759)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.ModuleImpl.getResourceByDelegation(ModuleImpl
>>>.j
>>>a
>>>va:677)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>org.apache.felix.framework.ModuleImpl$ModuleClassLoader.getResource(Modu
>>>le
>>>I
>>>mpl.java:2061)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:434)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>java.util.ResourceBundle.handleGetBundle(ResourceBundle.java:514)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>java.util.ResourceBundle.getBundle(ResourceBundle.java:227)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>java.util.ResourceBundle.getBundle(ResourceBundle.java:140)
>>>11-09 12:03:36.507: E/SkiftaService(2979): at
>>>javax.servlet.GenericServlet.<clinit>(GenericServlet.java:64)
>>>11-09 12:03:36.507: E/SkiftaService(2979): ... 12 more
>>>
>>>We've been able to identify that the root cause of the problem is that
>>>SecurityManagerEx.getClassContext() is returning null.  Looking at the
>>>framework code it doesn't look like it would ever expect to get back
>>>null,
>>>so we're not sure if this is a bug in felix or Android v4.0 is doing
>>>something unexpected.
>>>
>>>Points to note:
>>>
>>>- This only occurs on Android v4.0 and doesn't happen on previous
>>>versions
>>>of Android which work fine.
>>>- We've only seen this happen with the jetty bundle: it doesn't seem to
>>>be
>>>a problem for every bundle or at least the bundles we use.
>>>- We've tried different versions of the framework including the latest
>>>with the same result, so it isn't related to the framework version we're
>>>using.
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
>
>-- 
>Karl Pauls
>[email protected]
>http://twitter.com/karlpauls
>http://www.linkedin.com/in/karlpauls
>https://profiles.google.com/karlpauls
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [email protected]
>For additional commands, e-mail: [email protected]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to