ich diesen Test-Code haben:Groovy, java.lang.LinkageError Problem mit Testamentsvollstrecker und HttPBuilder
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.1')
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import groovyx.net.http.HTTPBuilder
ExecutorService executor = Executors.newCachedThreadPool()
(1..10).each {
executor.execute(new Runnable(){
void run() {
def http = new HTTPBuilder('http://www.google.com')
}
})
}
executor.shutdown()
die meisten der Zeit, aber nicht immer bekomme ich eine LinkageError
Exception in thread "pool-1-thread-8" java.lang.LinkageError: loader (instance of org/codehaus/groovy/tools/RootLoader): attempted duplicate class definition for name: "org/apache/commons/logging/impl/LogFactoryImpl"
In diesem Beispiel Ich benutze Grape, aber ich habe versucht, indem Sie die Gläser von HttbBuilder direkt zu Classpath zu und ich bekomme das gleiche Problem.
Es ist möglich, in irgendeiner Weise zu lösen? Wie ich sagte, die seltsame Tatsache ist, dass es oft passiert, aber nicht immer.
Danke für die Hilfe
Es scheint eine Art von ClassLoader-Problem zu sein. Hast du es mit dem Code als Klasse anstatt als Skript versucht? Welche Version von Groovy benutzt du? Es ist immer möglich, dass Sie einen Fehler gefunden haben, aber es wäre schwer zu bestätigen, ohne die genaue Version zu kennen. –
@MattPassel Ich habe die gleiche Frage auf groovy Mailing-Liste gestellt und scheint ein Bug. Ich habe es gemeldet [jira link] (http://jira.codehaus.org/browse/GROOVY-4623) – res1