[rules-users] Weird classloader problem

Alexander Herwix alex at herwix.com
Mon Nov 18 10:17:50 EST 2013


I actually got it to compile and work by prefixing the new var with $. Maybe it's a bug where the parser/compiler messes up, when a variable has no prefix and the same name as a class but in lowercase?! Is this even possible?

Anyway if someone has a similar problem, maybe this helps :)

Cheers, Alex


Am 18.11.2013 um 14:13 schrieb Martin Minka <martin.minka at gmail.com>:

> I had similar problem and it was solved in 6.0.0.CR5.
> 
> 
> 2013/11/18 Alexander Herwix <alex at herwix.com>
> Hey guys,
> 
> using Drools 6 RC4. I have a simple rule which should cast an object into a specialized object (if it is indeed a specialization) and insert that into the session.
> 
> rule "Obj is SpecialObject"
>     salience 201
> when
> 
>     $mainObj : MainObj(obj.class == SpecialObject.class, $obj : obj)
> then
>     System.out.println("Obj is SpecialObj");
> 
>     SpecialObj specialObj = (SpecialObj) $obj;
>     insert(specialObj);
> end
> 
> This rule doesn't even compile and I get a nasty error: NoClassDefFoundError: com/iterranux/droolsjbpmHumanTask/domain/team__I (wrong name: com/iterranux/droolsjbpmHumanTask/domain/Team__I).
> 
> I mean it looks like the Class is present, but somehow it's lowercased somewhere. It's weird I can use some other obj but this doesn't work. Anyone seen something like this before? Maybe some other way to do what I want to do? I tried to declare a trait and don that obj with that but same result.
> 
> Another question would be if it is really necessary to insert the object as a new fact, or could I access the nested property directly in a rule and typecast it there somehow?
> 
> Cheers, Alex
> 
> Error java.lang.RuntimeException: Reloading agent exited via exception, please raise a jira
> | Error         at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:104)
> | Error         at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
> | Error         at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
> | Error         at java.lang.ClassLoader.defineClass1(Native Method)
> | Error         at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
> | Error         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> | Error         at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
> | Error         at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
> | Error         at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
> | Error         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> | Error         at java.security.AccessController.doPrivileged(Native Method)
> | Error         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> | Error         at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
> | Error         at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:648)
> | Error         at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:758)
> | Error         at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:746)
> | Error         at java.lang.Class.forName0(Native Method)
> | Error         at java.lang.Class.forName(Class.java:266)
> | Error         at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:80)
> | Error         at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> | Error         at java.lang.Class.forName0(Native Method)
> | Error         at java.lang.Class.forName(Class.java:266)
> | Error         at org.mvel2.ParserConfiguration.checkForDynamicImport(ParserConfiguration.java:163)
> | Error         at org.mvel2.ParserConfiguration.hasImport(ParserConfiguration.java:191)
> | Error         at org.mvel2.ParserContext.hasImport(ParserContext.java:360)
> | Error         at org.mvel2.compiler.AbstractParser.createPropertyToken(AbstractParser.java:1341)
> | Error         at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:846)
> | Error         at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:128)
> | Error         at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
> | Error         at org.mvel2.MVEL.analyze(MVEL.java:680)
> | Error         at org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:536)
> | Error         at org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120)
> | Error         at org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:381)
> | Error         at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273)
> | Error         at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
> | Error         at org.mvel2.MVEL.analyze(MVEL.java:680)
> | Error         at org.mvel2.MVEL.analyze(MVEL.java:685)
> | Error         at org.drools.compiler.rule.builder.dialect.mvel.MVELExprAnalyzer.analyzeExpression(MVELExprAnalyzer.java:114)
> | Error         at org.drools.compiler.rule.builder.dialect.mvel.MVELDialect.analyzeBlock(MVELDialect.java:539)
> | Error         at org.drools.compiler.rule.builder.dialect.mvel.MVELConsequenceBuilder.build(MVELConsequenceBuilder.java:130)
> | Error         at org.drools.compiler.rule.builder.RuleBuilder.build(RuleBuilder.java:103)
> | Error         at org.drools.compiler.compiler.PackageBuilder.addRule(PackageBuilder.java:3160)
> | Error         at org.drools.compiler.compiler.PackageBuilder.compileRules(PackageBuilder.java:1047)
> | Error         at org.drools.compiler.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:952)
> | Error         at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildRules(CompositeKnowledgeBuilderImpl.java:231)
> | Error         at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:86)
> | Error         at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:75)
> | Error         at org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages(AbstractKieModule.java:201)
> | Error         at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:39)
> | Error         at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:305)
> | Error         at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:187)
> | Error         at com.iterranux.droolsjbpmCore.runtime.build.impl.KieModuleBuilder.buildKmoduleForGrailsModule(KieModuleBuilder.java:127)
> | Error         at com.iterranux.droolsjbpmCore.runtime.build.impl.KieModuleBuilder.buildKmoduleForGrailsModule(KieModuleBuilder.java:148)
> | Error         at com.iterranux.droolsjbpmCore.runtime.build.impl.KieModuleBuilder$buildKmoduleForGrailsModule.call(Unknown Source)
> | Error         at DroolsjbpmCoreGrailsPlugin$_closure7.doCall(DroolsjbpmCoreGrailsPlugin.groovy:386)
> | Error         at sun.reflect.GeneratedMethodAccessor992.invoke(Unknown Source)
> | Error         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> | Error         at java.lang.reflect.Method.invoke(Method.java:601)
> | Error         at org.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47)
> | Error         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1283)
> | Error         at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
> | Error         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
> | Error         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1085)
> | Error         at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
> | Error         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
> | Error         at groovy.lang.Closure.call(Closure.java:411)
> | Error         at DroolsjbpmCoreGrailsPlugin$_closure7.call(DroolsjbpmCoreGrailsPlugin.groovy)
> | Error         at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767)
> | Error         at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716)
> | Error         at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:731)
> | Error         at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:406)
> | Error         at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:367)
> | Error         at org.codehaus.groovy.grails.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:243)
> | Error         at org.codehaus.groovy.grails.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:46)
> | Error         at org.codehaus.groovy.grails.compiler.GrailsProjectWatcher$1.onChange(GrailsProjectWatcher.java:154)
> | Error         at org.codehaus.groovy.grails.compiler.DirectoryWatcher.fireOnChange(DirectoryWatcher.java:174)
> | Error         at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:156)
> | Error         at org.codehaus.groovy.grails.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:178)
> | Error         at java_lang_Runnable$run.call(Unknown Source)
> | Error         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
> | Error         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
> | Error         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
> | Error         at org.codehaus.groovy.grails.cli.fork.ForkedGrailsProcess.startProjectWatcher(ForkedGrailsProcess.groovy:702)
> | Error         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> | Error         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> | Error         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> | Error         at java.lang.reflect.Method.invoke(Method.java:601)
> | Error         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
> | Error         at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
> | Error         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
> | Error         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1085)
> | Error         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
> | Error         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030)
> | Error         at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
> | Error         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
> | Error         at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
> | Error         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
> | Error         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
> | Error         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145)
> | Error         at org.codehaus.groovy.grails.cli.fork.ForkedGrailsProcess$_setupReloading_closure16.doCall(ForkedGrailsProcess.groovy:691)
> | Error         at org.codehaus.groovy.grails.cli.fork.ForkedGrailsProcess$_setupReloading_closure16.doCall(ForkedGrailsProcess.groovy)
> | Error         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> | Error         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> | Error         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> | Error         at java.lang.reflect.Method.invoke(Method.java:601)
> | Error         at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
> | Error         at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
> | Error         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
> | Error         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1085)
> | Error         at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
> | Error         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
> | Error         at groovy.lang.Closure.call(Closure.java:411)
> | Error         at groovy.lang.Closure.call(Closure.java:405)
> | Error         at groovy.lang.Closure.run(Closure.java:492)
> | Error         at java.lang.Thread.run(Thread.java:722)
> | Error Caused by: org.springsource.loaded.ReloadException: Problem defining class com.iterranux.droolsjbpmHumanTask.domain.team__I
> | Error         at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1076)
> | Error         at org.springsource.loaded.ReloadableType.rewriteCallSitesAndDefine(ReloadableType.java:807)
> | Error         at org.springsource.loaded.ReloadableType.<init>(ReloadableType.java:151)
> | Error         at org.springsource.loaded.TypeRegistry.addType(TypeRegistry.java:889)
> | Error         at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:246)
> | Error         at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
> | Error         ... 114 more
> | Error Caused by: java.lang.reflect.InvocationTargetException
> | Error         at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
> | Error         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> | Error         at java.lang.reflect.Method.invoke(Method.java:601)
> | Error         at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1071)
> | Error         ... 119 more
> | Error Caused by: java.lang.NoClassDefFoundError: com/iterranux/droolsjbpmHumanTask/domain/team__I (wrong name: com/iterranux/droolsjbpmHumanTask/domain/Team__I)
> | Error         at java.lang.ClassLoader.defineClass1(Native Method)
> | Error         at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
> | Error         at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
> | Error         ... 123 more
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20131118/ebb7f4a1/attachment-0001.html 


More information about the rules-users mailing list