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.