New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Loading extensions crashes kotlin application #492
Comments
I think that it's not a problem related Kotlin, it's a missing dependency. Please try to create a Java (preferably vanilla Java) quickstart that replicates your problem. |
I found that this issue is definitely not related to Kotlin. I reproduce this issue with vanilla Java code as well. However I think this still may be an issue inside AbstractExtensionFinder code. As I see fix in #297 commit You added extra catch for NoClassDefFoundError for List find(String pluginId) method but in my code I exception thrown from List<ExtensionWrapper> find(Class type, String pluginId) method |
@makiam can you share the unit test or the quickstart project that you created to reproduce the issue using vanilla Java code? |
So, in your case is not necessary to create an instance of |
I try to create Kotlin application with pf4j support and found this issue... (This is very similar to issue #297)
Using pf4j 3.6.0
I try to enable support for system extensions and declare extension to DefaultPluginManager
than once I start application and try to find my extension
I see this output with exception:
23:24:12.307 [main] INFO org.pf4j.DefaultPluginStatusProvider - Enabled plugins: []
23:24:12.307 [main] INFO org.pf4j.DefaultPluginStatusProvider - Disabled plugins: []
23:24:12.307 [main] INFO org.pf4j.DefaultPluginManager - PF4J version 3.6.0 in 'deployment' mode
23:24:12.408 [main] DEBUG org.pf4j.AbstractPluginManager - Lookup plugins in '[plugins]'
23:24:12.408 [main] WARN org.pf4j.AbstractPluginManager - No 'plugins' root
23:24:12.408 [main] INFO org.pf4j.AbstractPluginManager - No plugins
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - Finding extensions of extension point 'api.Tool'
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.LegacyExtensionFinder - Reading extensions storages from classpath
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.LegacyExtensionFinder - Cannot find 'META-INF/extensions.idx'
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - No extensions found
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.LegacyExtensionFinder - Reading extensions storages from plugins
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - Finding extensions of extension point 'api.Tool' for plugin 'null'
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - No extensions found for extension point 'api.Tool'
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - Finding extensions of extension point 'api.Tool'
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.ServiceProviderExtensionFinder - Reading extensions storages from classpath
23:24:12.947 [AWT-EventQueue-0] DEBUG org.pf4j.ServiceProviderExtensionFinder - Read 'file:/C:/Users/MaksK/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.11/4741689214e9d1e8408b206506cbe76d1c6a7d60/logback-classic-1.2.11.jar!/META-INF/services'
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.ServiceProviderExtensionFinder - Read 'META-INF/services/javax.servlet.ServletContainerInitializer'
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.ServiceProviderExtensionFinder - Read 'file:/C:/Users/MaksK/.gradle/caches/modules-2/files-2.1/org.pf4j/pf4j/3.6.0/9025adf3f680069bb1b52863c9ec70d341e09b0/pf4j-3.6.0.jar!/META-INF/services/'
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.ServiceProviderExtensionFinder - Read 'META-INF/services/javax.annotation.processing.Processor'
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - Found possible 2 extensions:
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - ch.qos.logback.classic.servlet.LogbackServletContainerInitializer
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - org.pf4j.processor.ExtensionAnnotationProcessor
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.ServiceProviderExtensionFinder - Reading extensions storages from plugins
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - Finding extensions of extension point 'api.Tool' for plugin 'null'
23:24:12.978 [AWT-EventQueue-0] DEBUG org.pf4j.AbstractExtensionFinder - Loading class 'ch.qos.logback.classic.servlet.LogbackServletContainerInitializer' using class loader 'jdk.internal.loader.ClassLoaders$AppClassLoader@5a07e868'
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/servlet/ServletContainerInitializer
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.pf4j.AbstractExtensionFinder.find(AbstractExtensionFinder.java:141)
at org.pf4j.AbstractExtensionFinder.find(AbstractExtensionFinder.java:62)
at org.pf4j.DefaultExtensionFinder.find(DefaultExtensionFinder.java:45)
at org.pf4j.AbstractPluginManager.getExtensions(AbstractPluginManager.java:580)
at artofillusion.ToolsMenu.(ToolsMenu.kt:9)
at artofillusion.LayoutWindow.frameInit(LayoutWindow.kt:26)
at java.desktop/javax.swing.JFrame.(JFrame.java:181)
at artofillusion.LayoutWindow.(LayoutWindow.kt:7)
at artofillusion.ArtOfIllusion.init$lambda-0(ArtOfIllusion.kt:14)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContainerInitializer
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 31 more
Process finished with exit code 0
The text was updated successfully, but these errors were encountered: