Thanks for the reply! There are unfortunately a ton of things the plugin uses which are bundled with the Graylog server, including Kafka, which I thought might be causing the trouble. So, I went through package by package and removed everything from the plugin jar that was already present in the Graylog server jar which only leaves classes for jline, HdrHistogram and my own classes. I've verified none of those packages exist in the Graylog server jar so there should be no conflicts, yet the same exception pops up.
Unfortunately the plugin cannot be shared, it's an internal corporate project. Seems like Graylog could benefit from using a separate classloading context per plugin, similar to the webapp classloaders in J2EE containers. Hard to say if that would help with my case, though, since the stack trace is not particularly enlightening. Cheers, Craig On Monday, February 24, 2014 9:23:35 AM UTC-5, Kay Röpke wrote: > > Hi! > > Which maven dependencies does your plugin have? > I've seen this happening when something pulls in a different version of > asm, one of the interfaces has changed into a abstract class, leading to > this error. > we had to exclude it at some point. > > Is your plugin open source? If so I could take a look. > > cheers, > -k > > On Monday, February 24, 2014 3:17:42 PM UTC+1, Craig Blake wrote: >> >> Forgot to mention that I'm running the 0.20.0 release of the server. >> >> On Monday, February 24, 2014 9:17:16 AM UTC-5, Craig Blake wrote: >>> >>> Hi, I've put together a test plugin using the 020 branch of >>> graylog2-plugin-interfaces but I'm getting an error at startup time in the >>> server: >>> >>> Exception in thread "main" java.lang.IncompatibleClassChangeError: >>> Implementing class >>> at java.lang.ClassLoader.defineClass1(Native Method) >>> at java.lang.ClassLoader.defineClass(ClassLoader.java:791) >>> at >>> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) >>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) >>> at java.net.URLClassLoader.access$100(URLClassLoader.java:71) >>> at java.net.URLClassLoader$1.run(URLClassLoader.java:361) >>> at java.net.URLClassLoader$1.run(URLClassLoader.java:355) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at java.net.URLClassLoader.findClass(URLClassLoader.java:354) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:423) >>> at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:356) >>> at java.lang.Class.forName0(Native Method) >>> at java.lang.Class.forName(Class.java:266) >>> at org.graylog2.plugins.PluginLoader.getPlugins(PluginLoader.java:61) >>> at org.graylog2.Core.registerPlugins(Core.java:434) >>> at org.graylog2.Core.run(Core.java:292) >>> at org.graylog2.Main.main(Main.java:266) >>> >>> Normally I would expect that message to indicate the offending class, >>> but for some reason it's empty here. Has anyone come across this before, >>> and if so found a solution? >>> >>> Thanks, >>> Craig >>> >> -- You received this message because you are subscribed to the Google Groups "graylog2" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
