[ http://webtest-community.canoo.com/jira/browse/WT-503?page=all ] Marc Guillemot closed WT-503: -----------------------------
Fix Version: Future versions Resolution: Fixed Assign To: Marc Guillemot In build 1744, webtest.xml now contains <pathelement path="${java.class.path}"/> in the definition of wt.defineTasks.classpath.id In your case, I think that it makes more sense to customize the path using for instance wt.defineTasks.classpath.customPrepend as it allows you to keep this settings specific to a project. > Class instantiation failure within groovy block of webtest > ---------------------------------------------------------- > > Key: WT-503 > URL: http://webtest-community.canoo.com/jira/browse/WT-503 > Project: WebTest > Type: Bug > Versions: 2.6 > Environment: OS: Various windows-based (ie. XP, 2000, etc) > Reporter: Chris Carman > Assignee: Marc Guillemot > Fix For: Future versions > Attachments: javahack.xml, t5.java > > There appears to be a class instantiation bug of some kind when groovy code > is executed within a webtest. > > In the attached webtest (javahack.xml) tests 1 - 4 work fine, but test 5 > fails. > This is test 4: > > <groovy description="groovy test 4"> > import org.apache.log4j.Logger; > l = Logger.getLogger(Logger.class); > println("Groovy test 4 completed!"); > </groovy> > > And this is test 5 (which fails even though the "t5" class it instantiates > calls the same "getLogger" method as test 4): > > <groovy description="groovy test 5"> > test = new t5(); > println("Groovy test 5 completed!"); > </groovy> > > t5.java contains only the following: > import org.apache.log4j.Logger; > > public class t5 > { > public Logger LOGGER; > > public t5() { > LOGGER = Logger.getLogger(Logger.class); > } > } > Additionally, both test4 and test5 work fine when run through Groovy alone, > so this appears to be a problem with Webtest. > The following stack trace is generated: > Caused by: ...\javaHack.xml:38: java.lang.NoClassDefFoundError: > Lorg/apache/log4j/Logger; > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:115) > at org.apache.tools.ant.Task.perform(Task.java:348) > at > com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:43) > at > com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:31) > at com.canoo.webtest.steps.Step.execute(Step.java:101) > ... 35 more > Caused by: java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger; > at java.lang.Class.getDeclaredFields0(Native Method) > at java.lang.Class.privateGetDeclaredFields(Unknown Source) > at java.lang.Class.getDeclaredFields(Unknown Source) > at > org.codehaus.groovy.reflection.CachedClass$2.run(CachedClass.java:217) > at java.security.AccessController.doPrivileged(Native > Method) > at > org.codehaus.groovy.reflection.CachedClass.getFields(CachedClass.java:214) > at > groovy.lang.MetaClassImpl.addFields(MetaClassImpl.java:1719) > at > groovy.lang.MetaClassImpl.inheritFields(MetaClassImpl.java:1714) > at > groovy.lang.MetaClassImpl.setupProperties(MetaClassImpl.java:1603) > at > groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:2508) > at > groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:2479) > at > org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getGlobalMetaClass(MetaClassRegistryImpl.java:253) > at > org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.access$100(MetaClassRegistryImpl.java:45) > at > org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$LocallyKnownClasses.getFromGlobal(MetaClassRegistryImpl.java:112) > at > org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$LocallyKnownClasses.getMetaClass(MetaClassRegistryImpl.java:88) > at > org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$MyThreadLocal.getMetaClass(MetaClassRegistryImpl.java:361) > at > org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:265) > at > org.codehaus.groovy.runtime.InvokerHelper.invokeConstructorOf(InvokerHelper.java:808) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeNewN(ScriptBytecodeAdapter.java:230) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeNew0(ScriptBytecodeAdapter.java:237) > at Script1.run(Script1.groovy:2) > at groovy.lang.GroovyShell.evaluate(GroovyShell.java:543) > at groovy.lang.GroovyShell.evaluate(GroovyShell.java:518) > at > com.canoo.webtest.extension.groovy.GroovyInvoker.doExecute(GroovyInvoker.java:40) > at > com.canoo.webtest.extension.groovy.GroovyStep.doExecute(GroovyStep.java:37) > at com.canoo.webtest.steps.Step.execute(Step.java:101) > at > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) > at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown > Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105) > ... 39 more > -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://webtest-community.canoo.com/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira _______________________________________________ WebTest mailing list WebTest@lists.canoo.com http://lists.canoo.com/mailman/listinfo/webtest