[ 
https://issues.apache.org/jira/browse/KARAF-5242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tommy Svensson updated KARAF-5242:
----------------------------------
    Description: 
I get the following stack trace in the log:

{{
Caused by: java.lang.ClassNotFoundException: Unable to load class 
'se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1$_closure5' 
because the bundle wiring for aps-admin-web-a2 is no longer valid.
        at 
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1515)
 ~[?:?]
        at 
org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:79)
 ~[?:?]
        at 
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1958)
 ~[?:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
        ... 44 more
}}

Note that '_closure1' is an inner class and that '_closure5' is in inner class 
of '_closure_1'.  

Bytecode wise they both reside in WebContentServer.class, and there is no such 
thing as "se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1.class" 
nor 
"se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1$_closure5.class"! 

>From decompiled WebContentServer.class:

{{

public class WebContentServer extends VertxConsumer implements Consumer<Vertx>, 
Constants {
...
    public class _closure1 extends Closure implements GeneratedClosure {
        public _closure1(Object _thisObject) {
            super(WebContentServer.this, _thisObject);
        }

        public Object doCall(Consumed<Router> router) {
            
WebContentServer.pfaccess$01((WebContentServer)this.getThisObject(), router);
            class _closure5 extends Closure implements GeneratedClosure {
                public _closure5(Object _thisObject) {
                    super(_closure1.this, _thisObject);
                }
...

}}

This is compiled from Groovy code which is still compatible with java5 byte 
code standard. I have not read anywhere that java8 is not capable of running 
java5 byte code, and when the code is run in unit tests with java8 there is no 
problem. So I conclude that this problem resides in Karaf or more probably 
Felix which is at the bottom as I understand it. It is with Karaf I have the 
problem so it is here I report this. 


  was:
I get the following stack trace in the log:

{{
Caused by: java.lang.ClassNotFoundException: Unable to load class 
'se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1$_closure5' 
because the bundle wiring for aps-admin-web-a2 is no longer valid.
        at 
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1515)
 ~[?:?]
        at 
org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:79)
 ~[?:?]
        at 
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1958)
 ~[?:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
        ... 44 more
}}

Note that '_closure1' is an inner class and that '_closure5' is in inner class 
of '_closure_1'.  

Bytecode wise they both reside in WebContentServer.class, and there is no such 
thing as "se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1.class" 
nor 
"se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1$_closure5.class"! 

>From decompiled WebContentServer.class:

{{

public class WebContentServer extends VertxConsumer implements Consumer<Vertx>, 
Constants {
...
    public class _closure1 extends Closure implements GeneratedClosure {
        public _closure1(Object _thisObject) {
            super(WebContentServer.this, _thisObject);
        }

        public Object doCall(Consumed<Router> router) {
            
WebContentServer.pfaccess$01((WebContentServer)this.getThisObject(), router);
            class _closure5 extends Closure implements GeneratedClosure {
                public _closure5(Object _thisObject) {
                    super(_closure1.this, _thisObject);
                }
...

}}

This is compiled from Groovy code with is still compatible with java5 byte code 
standard. I have not read anywhere that java8 is not capable of running java5 
byte code, and when the code is run in unit tests with java8 there is no 
problem. So I conclude that this problem resides in Karaf or more probably 
Felix which is at the bottom as I understand it. It is with Karaf I have the 
problem so it is here I report this. 



> Classloading not compliant with java .class structure/content
> -------------------------------------------------------------
>
>                 Key: KARAF-5242
>                 URL: https://issues.apache.org/jira/browse/KARAF-5242
>             Project: Karaf
>          Issue Type: Bug
>    Affects Versions: 4.1.1
>         Environment: Linux run in Vagrant.
> /usr/lib/jvm/java-8-openjdk-amd64/bin/java
>            Reporter: Tommy Svensson
>
> I get the following stack trace in the log:
> {{
> Caused by: java.lang.ClassNotFoundException: Unable to load class 
> 'se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1$_closure5' 
> because the bundle wiring for aps-admin-web-a2 is no longer valid.
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1515)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:79)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1958)
>  ~[?:?]
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
>         ... 44 more
> }}
> Note that '_closure1' is an inner class and that '_closure5' is in inner 
> class of '_closure_1'.  
> Bytecode wise they both reside in WebContentServer.class, and there is no 
> such thing as 
> "se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1.class" nor 
> "se.natusoft.osgi.aps.web.adminweb.WebContentServer$_closure1$_closure5.class"!
>  
> From decompiled WebContentServer.class:
> {{
> public class WebContentServer extends VertxConsumer implements 
> Consumer<Vertx>, Constants {
> ...
>     public class _closure1 extends Closure implements GeneratedClosure {
>         public _closure1(Object _thisObject) {
>             super(WebContentServer.this, _thisObject);
>         }
>         public Object doCall(Consumed<Router> router) {
>             
> WebContentServer.pfaccess$01((WebContentServer)this.getThisObject(), router);
>             class _closure5 extends Closure implements GeneratedClosure {
>                 public _closure5(Object _thisObject) {
>                     super(_closure1.this, _thisObject);
>                 }
> ...
> }}
> This is compiled from Groovy code which is still compatible with java5 byte 
> code standard. I have not read anywhere that java8 is not capable of running 
> java5 byte code, and when the code is run in unit tests with java8 there is 
> no problem. So I conclude that this problem resides in Karaf or more probably 
> Felix which is at the bottom as I understand it. It is with Karaf I have the 
> problem so it is here I report this. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to