[
https://issues.apache.org/jira/browse/FELIX-2780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13004072#comment-13004072
]
Sylvain RIBEYRON commented on FELIX-2780:
-----------------------------------------
Hi all.
I've had the same issue running Felix on Web Start.
I've resolved the issue by patching the ExtensionManager.java.
At line 510, replace the line:
throw new IOException("Resource not provided by any extension!");
By the following code:
// JDK6u24 issue
return new URLConnection(url) {
@Override
public void connect() throws IOException {
throw new IOException("Resource not provided by any
extension!");
}
};
// End JDK6u24 issue
The issue occurs when looking up classes, because IOException is thrown on
URL.openConnection when classes (or resources) are not found. The IOException
should not be thrown on the openConnection method, but later on the connect
method on URLConnection (this streamHandler should work as any other http
handler: when a file does not exist, the http server sends a 404 response. This
response can only occur when URLconnection is established, not when
URLConnection is initialized).
This patch work fine for me.
> Extension bundle implementation relies on urlhandlers service to start
> extension bundles
> -----------------------------------------------------------------------------------------
>
> Key: FELIX-2780
> URL: https://issues.apache.org/jira/browse/FELIX-2780
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: framework-3.0.7
> Environment: Host: Ubuntu Linux
> JVM: JAMVM-1.5.4 (patched - see attached patches in Bug 2775)
> Library: GNU Classpath 0.98 (patched - see attached patches in Bug 2775)
> felix framework - 3.0.7 or 3.1.0-SNAPSHOT
> framework.security - 1.4.1 or 1.5.0-SNAPSHOT
> Other bundles that are being auto-deployed deployed:
> -rw-r--r-- 1 root root 150520 2010-12-26 13:33
> org.apache.felix.bundlerepository-1.6.2.jar
> -rw-r--r-- 1 root root 90013 2011-01-10 20:06
> org.apache.felix.framework.security-1.5.0-SNAPSHOT.jar
> -rw-r--r-- 1 samba samba 62727 2011-01-13 12:34
> org.apache.felix.shell-1.4.2.jar
> -rw-r--r-- 1 samba samba 12748 2011-01-13 12:34
> org.apache.felix.shell.tui-1.4.1.jar
> Reporter: Samba
> Assignee: Karl Pauls
> Priority: Minor
>
> I am trying to start the felix security framework extension bundle with the
> urlhandler service disabled in the Felix framework.
> COMMAND:
> ======
> /usr/local/jamvm/bin/jamvm -Xmx256M -Dfelix.service.urlhandlers=false
> -Dorg.osgi.framework.security="osgi"
> -Dpolicy.provider=gnu.java.security.PolicyFile
> -Djava.security.policy=file:///home/samba/wurk/downloads/osgi/felix-framework-3.0.7/conf/java.policy
> -jar bin/felix.jar
> Policy file:
> ========
> grant {
> permission java.security.AllPermission;
> }
> grant codeBase "http://felix.extensions:9/" {
> permission java.security.AllPermission;
> };
> I get the following error and the security framework does not start
> WARNING: Unable to start Felix Extension Activator
> (java.nio.channels.UnresolvedAddressException)
> Stack trace where the exception occurs
> at java.lang.Thread.dumpStack(Thread.java:522)
> at
> java.nio.channels.UnresolvedAddressException.<init>(UnresolvedAddressException.java:55)
> at gnu.java.nio.SocketChannelImpl.connect(SocketChannelImpl.java:160)
> at gnu.java.net.PlainSocketImpl.connect(PlainSocketImpl.java:281)
> at java.net.Socket.connect(Socket.java:454)
> at java.net.Socket.connect(Socket.java:414)
> at
> gnu.java.net.protocol.http.HTTPConnection.getSocket(HTTPConnection.java:721)
> at
> gnu.java.net.protocol.http.HTTPConnection.getOutputStream(HTTPConnection.java:802)
> at gnu.java.net.protocol.http.Request.dispatch(Request.java:292)
> at
> gnu.java.net.protocol.http.HTTPURLConnection.connect(HTTPURLConnection.java:219)
> at
> gnu.java.net.protocol.http.HTTPURLConnection.getHeaderField(HTTPURLConnection.java:582)
> at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:426)
> at java.net.URLConnection.getContentLength(URLConnection.java:302)
> at gnu.java.net.loader.RemoteURLLoader.getResource(RemoteURLLoader.java:79)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:528)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:341)
> at java.lang.ClassLoader$1.loadClass(ClassLoader.java:1112)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:293)
> at
> org.apache.felix.framework.ExtensionManager.startExtensionBundle(ExtensionManager.java:381)
> at org.apache.felix.framework.Felix.installBundle(Felix.java:2610)
> at org.apache.felix.framework.Felix.installBundle(Felix.java:2429)
> at
> org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:121)
> at
> org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:107)
> at
> org.apache.felix.main.AutoProcessor.processAutoDeploy(AutoProcessor.java:173)
> at org.apache.felix.main.AutoProcessor.process(AutoProcessor.java:78)
> at org.apache.felix.main.Main.main(Main.java:291)
> at java.lang.reflect.VMMethod.invoke(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:327)
> at jamvm.java.lang.JarLauncher.main(JarLauncher.java:50)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira