duplicate script classpath entries are not filtered out, can cause
ClassCastException
-------------------------------------------------------------------------------------
Key: MINVOKER-112
URL: http://jira.codehaus.org/browse/MINVOKER-112
Project: Maven 2.x Invoker Plugin
Issue Type: Bug
Reporter: luke w patterson
Attachments: script-classpath-duplicates-it.patch
(it test case attached)
when addTestClassPath
http://maven.apache.org/plugins/maven-invoker-plugin/run-mojo.html#addTestClassPath
is set to "true" but the consuming project also depends on groovy or beanshell,
scripts fail with ClassCastException,
because the jars end up on the classpath twice
error example:
{noformat}
groovy.lang.GroovyRuntimeException: Failed to create Script instance for class:
class Script1. Reason: java.lang.ClassCastException: Script1 cannot be cast to
groovy.lang.GroovyObject
at
org.codehaus.groovy.runtime.InvokerHelper.createScript(InvokerHelper.java:432)
at groovy.lang.GroovyShell.parse(GroovyShell.java:584)
at groovy.lang.GroovyShell.parse(GroovyShell.java:564)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:542)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:518)
at
org.apache.maven.plugin.invoker.GroovyScriptInterpreter.evaluateScript(GroovyScriptInterpreter.java:83)
{noformat}
I created a fix locally, but it's rough right now. Will polish it up and
submit later. Basically, it adds
{code}
/**
* @parameter expression="${plugin.artifacts}"
* @required
* @readonly
*/
private List pluginArtifacts;
{code}
to AbstractInvokerMojo, and then spins through the Artifacts, retrieving their
file paths, and removes those from the list sent to "scriptRunner.setClassPath"
Granted, the proposed fix could be smarter, cause it only filters out exact
matches, but it's better than the current behavior.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira