Hello François, we have explicit code in archives to handle (exclude mainly) module-info and versionned classes. This code was mainly done in file archive - https://github.com/apache/geronimo-xbean/blob/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/FileArchive.java#L152 - and jar archive - https://github.com/apache/geronimo-xbean/blob/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/JarArchive.java#L148, guess osgi archives were forgotten (to be honest I thought it was no more in xbean codebase since https://github.com/apache/geronimo-xbean/blob/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/BundleArchive.java impl is kind of broken).
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://rmannibucau.metawerx.net/> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book <https://www.packtpub.com/application-development/java-ee-8-high-performance> Le lun. 11 mars 2019 à 17:40, Francois Papon <[email protected]> a écrit : > Hi guys, > > When deploying a WAR included log4j-api-2.11.1.jar in Apache Karaf 4.2.3 > with PaxWeb, I have a NPE. > > I tried to debug XBeanFinder and I can see that the NPE is throw when a > module-info.class is check. > > The version of XBean used is 4.12.0 and I tried on oracle-jdk1.8 and > oracle-jdk-11. > > I don't know if this is a XBean issue and I want to ask if someone else > already have this error. > > Thanks! > > 20:30:44.827 ERROR [paxweb-extender-2-thread-1] Exception starting > HttpContext registration > java.lang.NullPointerException: null > at > > org.apache.xbean.finder.BundleAssignableClassFinder.toASMStylePackageName(BundleAssignableClassFinder.java:257) > ~[?:?] > at > > org.apache.xbean.finder.BundleAssignableClassFinder.isClassAcceptable(BundleAssignableClassFinder.java:111) > ~[?:?] > at > > org.apache.xbean.osgi.bundle.util.BundleClassFinder.scanZip(BundleClassFinder.java:280) > ~[?:?] > at > > org.apache.xbean.osgi.bundle.util.BundleClassFinder.scanBundleClassPath(BundleClassFinder.java:237) > ~[?:?] > at > > org.apache.xbean.osgi.bundle.util.BundleClassFinder.find(BundleClassFinder.java:112) > ~[?:?] > at > > org.ops4j.pax.web.utils.ServletContainerInitializerScanner.scanBundles(ServletContainerInitializerScanner.java:118) > ~[?:?] > at > > org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper.addContext(JettyServerWrapper.java:292) > ~[?:?] > at > > org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper.getOrCreateContext(JettyServerWrapper.java:217) > ~[?:?] > at > > org.ops4j.pax.web.service.jetty.internal.JettyServerImpl.getContext(JettyServerImpl.java:312) > ~[?:?] > at > > org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl$Started.getContext(ServerControllerImpl.java:373) > ~[?:?] > at > > org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.getContext(ServerControllerImpl.java:186) > ~[?:?] > at > > org.ops4j.pax.web.service.internal.HttpServiceStarted.begin(HttpServiceStarted.java:1246) > ~[?:?] > at > > org.ops4j.pax.web.service.internal.HttpServiceProxy.begin(HttpServiceProxy.java:451) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.visit(RegisterWebAppVisitorWC.java:183) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.java:621) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.register(WebAppPublisher.java:228) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.addingService(WebAppPublisher.java:173) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.addingService(WebAppPublisher.java:129) > ~[?:?] > at > > org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) > ~[?:?] > at > > org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) > ~[?:?] > at > org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) > ~[?:?] > at > > org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) > ~[?:?] > at > org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) ~[?:?] > at > org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAppPublisher.java:98) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.WebObserver.deploy(WebObserver.java:217) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.WebObserver$1.doStart(WebObserver.java:172) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.extender.SimpleExtension.start(SimpleExtension.java:59) > ~[?:?] > at > > org.ops4j.pax.web.extender.war.internal.extender.AbstractExtender.lambda$createExtension$0(AbstractExtender.java:277) > ~[?:?] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [?:?] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?] > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > [?:?] > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > [?:?] > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > [?:?] > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > [?:?] > at java.lang.Thread.run(Thread.java:748) [?:?] > > regards, > > -- > François Papon > [email protected] > > >
