VerifyError : Bad access to protected data when using clone() method in rules

210 views
Skip to first unread message

Michael Petritsch

unread,
Mar 27, 2013, 2:07:41 PM3/27/13
to openeng...@googlegroups.com
Hi,

I've added a clone method to our OpenEngSBModels for convenience,
however when I want to use this method in a drools rule I am getting
the following error:

2013-03-27 18:33:55,262 | ERROR | 6.0-SNAPSHOT/etc | fileinstall
| 15 - org.apache.felix.fileinstall - 3.2.6 | In main
loop, we have serious trouble
java.lang.VerifyError: (class:
org/openengsb/UpdateDeleteTransformPlcToElp, method:
updateDeleteTransformPlcToElp signature:
(Ljava/util/List;Lorg/openengsb/core/ekb/api/TransformationEngine;Lorg/openengsb/core/ekb/api/QueryInterface;)Ljava/util/List;)
Bad access to protected data
at java.lang.Class.getDeclaredFields0(Native Method)[:1.7.0_17]
at java.lang.Class.privateGetDeclaredFields(Class.java:2317)[:1.7.0_17]
at java.lang.Class.getDeclaredFields(Class.java:1762)[:1.7.0_17]
at org.codehaus.janino.ReflectionIClass.getDeclaredIFields2(ReflectionIClass.java)
at org.codehaus.janino.IClass.getDeclaredIFields(IClass.java)
at org.codehaus.janino.UnitCompiler.import2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.access$2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler$2.visitSingleStaticImportDeclaration(UnitCompiler.java)
at org.codehaus.janino.Java$CompilationUnit$SingleStaticImportDeclaration.accept(Java.java)
at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java)
at org.codehaus.janino.Compiler.compile(Compiler.java)
at org.drools.commons.jci.compilers.JaninoJavaCompiler.compile(JaninoJavaCompiler.java:171)
at org.drools.commons.jci.compilers.AbstractJavaCompiler.compile(AbstractJavaCompiler.java:49)
at org.drools.rule.builder.dialect.java.JavaDialect.compileAll(JavaDialect.java:408)
at org.drools.compiler.DialectCompiletimeRegistry.compileAll(DialectCompiletimeRegistry.java:46)
at org.drools.compiler.PackageRegistry.compileAll(PackageRegistry.java:102)
at org.jbpm.compiler.ProcessBuilderImpl.buildProcess(ProcessBuilderImpl.java:175)
at org.jbpm.compiler.ProcessBuilderImpl.addProcessFromXml(ProcessBuilderImpl.java:267)
at org.drools.compiler.PackageBuilder.addProcessFromXml(PackageBuilder.java:673)
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:706)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:40)
at org.openengsb.core.workflow.drools.internal.RulebaseBuilder.compileDrlString(RulebaseBuilder.java:206)
at org.openengsb.core.workflow.drools.internal.RulebaseBuilder.reloadPackage(RulebaseBuilder.java:146)
at org.openengsb.core.workflow.drools.internal.persistence.PersistenceRuleManager.update(PersistenceRuleManager.java:107)
at org.openengsb.core.workflow.drools.internal.AbstractRuleManager.addOrUpdate(AbstractRuleManager.java:72)
at org.openengsb.core.workflow.drools.internal.WorkflowDeployerService.installRuleBaseElement(WorkflowDeployerService.java:208)
at org.openengsb.core.workflow.drools.internal.WorkflowDeployerService.doInstall(WorkflowDeployerService.java:163)
at org.openengsb.core.workflow.drools.internal.WorkflowDeployerService.install(WorkflowDeployerService.java:112)
at Proxy75c7a8e6_34d1_4613_bcd9_13b97b40bd58.install(Unknown Source)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:929)[15:org.apache.felix.fileinstall:3.2.6]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:857)[15:org.apache.felix.fileinstall:3.2.6]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:483)[15:org.apache.felix.fileinstall:3.2.6]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:291)[15:org.apache.felix.fileinstall:3.2.6]

The error is definitely linked to the clone() method. I have found a
similar issue in JASSIST [1].

according to mvn dependency:tree you are using JASSIST in:
[INFO] ------------------------------------------------------------------------
[INFO] Building OpenEngSB :: Framework :: Weaver Service 3.0.0-cdlflex-25
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.4:tree (default-cli) @
org.openengsb.framework.weaver.service ---
[INFO] org.openengsb.framework:org.openengsb.framework.weaver.service:bundle:3.0.0-cdlflex-25
[INFO] +- org.osgi:org.osgi.core:jar:4.3.1:compile
[INFO] +- org.apache.servicemix.bundles:org.apache.servicemix.bundles.javassist:jar:3.12.1.GA_3:compile


could this be connected? should have been fixed 3.12.1.GA_3 though as
that was released somewhere after 2010 and the issue was closed 2008.

br

[1] https://issues.jboss.org/browse/JASSIST-60

Felix Mayerhuber

unread,
Mar 27, 2013, 2:38:56 PM3/27/13
to openeng...@googlegroups.com
Hi,

so this exception is only thrown when you added the clone method?

I don't know how you implemented this method, but I suppose it has
something to do with the things written here:
http://www.coderanch.com/t/328067/java/java/VerifyError-Bad-access-protected-data
?

It is also possible that it has something to do with janino (since it is
the first non JRE specific element in the exception tree).

Kind regards,
Felix

Michael Petritsch

unread,
Mar 27, 2013, 3:30:43 PM3/27/13
to openeng...@googlegroups.com
ok, nevermind lol, was using the wrong version of the model (which
didn't have the overridden clone() method).

br
> --
> You received this message because you are subscribed to the Google Groups
> "OpenEngSB user group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to openengsb-use...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
Reply all
Reply to author
Forward
0 new messages