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

[jira] Closed: (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:all-tabpanel ]

Paulex Yang closed FELIX-358.
-----------------------------

    Resolution: Invalid

Thanks for your help, Karl and Felix (on dev-list). The java.protocol.handler.pkgs settings work for me. Although I still have concerns in this(see my comments in dev list), but at least it works for now. 

> 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.