felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain RIBEYRON (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-2780) Extension bundle implementation relies on urlhandlers service to start extension bundles
Date Tue, 08 Mar 2011 17:22:59 GMT

    [ 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

Mime
View raw message