You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Karl Pauls (JIRA)" <ji...@apache.org> on 2007/09/07 10:07:30 UTC

[jira] Commented: (FELIX-358) Sun JDK specific constants prevents Felix running on Harmony

    [ https://issues.apache.org/jira/browse/FELIX-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12525635 ] 

Karl Pauls commented on FELIX-358:
----------------------------------

Changing the handlers to adapt to a specific VM is something we can't easily prevent. Our FAQ has an entry about how to do that via properties:

http://felix.apache.org/site/faq.html

Could you try whether that makes it work for you and if so close this issue?

> Sun JDK specific constants prevents Felix running on Harmony
> ------------------------------------------------------------
>
>                 Key: FELIX-358
>                 URL: https://issues.apache.org/jira/browse/FELIX-358
>             Project: Felix
>          Issue Type: Bug
>         Environment: Ubuntu,  Felix trunk, Harmony trunk
>            Reporter: Paulex Yang
>
> There are two constants defined in framework/src/main/java/org/apache/felix/framework/URLHandlers.java, which are Sun JDK specific value, and prevent Felix running on Harmony, as below:
>     private static final String DEFAULT_STREAM_HANDLER_PACKAGE = "sun.net.www.protocol";
>     private static final String DEFAULT_CONTENT_HANDLER_PACKAGE = "sun.net.www.content";
> Change it to 
>     private static final String DEFAULT_STREAM_HANDLER_PACKAGE = "org.apache.harmony.luni.internal.net.www.protocol";
>     private static final String DEFAULT_CONTENT_HANDLER_PACKAGE = "org.apache.harmony.luni.internal.net.www.content";
> Make Felix running smoothly on Harmony, but I really don't think use one implementation specific value to replace another one is a good idea, so I still haven't find a solution yet.
> Procedure to reproduce:
> 1. Download a Harmony JDK or JRE build from http://harmony.apache.org/downloads.html
> 2. Check out Felix trunk and build via mvn
> 3. Start up felix via Harmony's java launcher: <Harmony root>/jre/bin/java -jar felix.jar
> 4. input a profile name like "test" when felix challenges one
> 5. return and you'll get an endless stacktrace like below:
> ......
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:885)
>         at com.ibm.oti.vm.URLSystemClassLoader.findClass(URLSystemClassLoader.java:27)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:637)
>         at com.ibm.oti.vm.URLSystemClassLoader.loadClass(URLSystemClassLoader.java:60)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:594)
>         at java.lang.Class.forNameImpl(Native Method)
>         at java.lang.Class.forName(Class.java:129)
>         at org.apache.felix.framework.util.SecureAction.forName(SecureAction.java:16)
>         at org.apache.felix.framework.URLHandlers.createURLStreamHandler(URLHandlers.java:165)
>         at java.net.URL.setupStreamHandler(URL.java:587)
>         at java.net.URL.<init>(URL.java:443)
>         at java.net.URLClassLoader$URLHandler.targetURL(URLClassLoader.java:293)
>         at java.net.URLClassLoader$URLHandler.findClass(URLClassLoader.java:220)
>         at java.net.URLClassLoader.findClassImpl(URLClassLoader.java:1193)
>         at java.net.URLClassLoader$4.run(URLClassLoader.java:888)
>         at java.net.URLClassLoader$4.run(URLClassLoader.java:1)
>         at java.security.AccessController.doPrivileged(AccessController.java:21)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:885)
>         at com.ibm.oti.vm.URLSystemClassLoader.findClass(URLSystemClassLoader.java:27)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:637)
>         at com.ibm.oti.vm.URLSystemClassLoader.loadClass(URLSystemClassLoader.java:60)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:594)
>         at java.lang.Class.forNameImpl(Native Method)
>         at java.lang.Class.forName(Class.java:129)
>         at org.apache.felix.framework.util.SecureAction.forName(SecureAction.java:16)
>         at org.apache.felix.framework.URLHandlers.createURLStreamHandler(URLHandlers.java:165)
>         at java.net.URL.setupStreamHandler(URL.java:587)
>         at java.net.URL.<init>(URL.java:321)
>         at java.net.URL.<init>(URL.java:155)
>         at org.apache.felix.framework.cache.JarRevision.initialize(JarRevision.java:294)
>         at org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:90)
>         at org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:68)
>         at org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:179)
>         at org.apache.felix.framework.cache.BundleArchive.revise(BundleArchive.java:79)
>         at org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:146)
>         at org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:147)
>         at org.apache.felix.framework.Felix.installBundle(Felix.java:2180)
>         at org.apache.felix.framework.Felix.installBundle(Felix.java:2138)
>         at org.apache.felix.framework.Felix.processAutoProperties(Felix.java:3664)
>         at org.apache.felix.framework.Felix.start(Felix.java:83)
>         at org.apache.felix.main.Main.main(Main.java:195)
>         at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:258)
>         at com.ibm.oti.vm.JarRunner.main(JarRunner.java:42)

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