I am writing a processing resource (aka plugin) for a Java framework (
http://gate.ac.uk) that I use frequently. The plugin is written in Java but makes use of a module written in Groovy that is deployed to our local Nexus repository. I use the Groovy module in several other Java projects with no problems. However, when I try to use my Java plugin in GATE I am getting the following exception:
Exception in thread "ApplicationViewer1" java.lang.IllegalAccessError: tried to access field org.codehaus.groovy.reflection.CachedClass.EMPTY from class org.codehaus.groovy.reflection.ClassInfo
at org.codehaus.groovy.reflection.ClassInfo.<init>(ClassInfo.java:49)
at org.codehaus.groovy.reflection.ClassInfo$LocalMap.<clinit>(ClassInfo.java:357)
at org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler.initialValue(ClassInfo.java:405)
at org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler.initialValue(ClassInfo.java:401)
at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:160)
at java.lang.ThreadLocal.get(ThreadLocal.java:150)
at org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler.get(ClassInfo.java:419)
at org.codehaus.groovy.reflection.ClassInfo.getClassInfo(ClassInfo.java:99)
at org.anc.lapps.serialization.Container.$getStaticMetaClass(Container.groovy)
at org.anc.lapps.serialization.Container.<init>(Container.groovy)
at org.anc.lapps.gate.GateSerializer.convertToContainer(GateSerializer.java:39)
at org.anc.lapps.gate.LappsProcessingResource.execute(LappsProcessingResource.java:114)
at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
at gate.creole.SerialController.runComponent(SerialController.java:221)
at gate.creole.SerialController.executeImpl(SerialController.java:153)
at gate.creole.AbstractController.execute(AbstractController.java:75)
at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1619)
at java.lang.Thread.run(Thread.java:724)
The org.anc.lapps.serialization classes use Jackson to serialize object to/from JSON.
Maybe I am doing something wrong, but this looks like a bug in Groovy… Do any Groovy gurus know what is going wrong here as I don’t even know where to begin to fix this (other than rewriting everything in pure Java).
I will attempt to develop a "simple" program that exhibits the problem, but that might no be easy to do given the number of separate programs/modules that are interacting.
Sincerely,
Keith Suderman
------------------------------
Research Associate
Department of Computer Science
Vassar College
Poughkeepsie, NY
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email