sorry jacoco not jacob.

Mark
On 16 Jan 2014, at 15:15, Mark Proctor <mproctor@codehaus.org> wrote:

Doing a quick google. The problem seems to be the jacob instrumentation, it cannot instrument very large classes, as it makes the LOC too large. Jacob isn’t needed anyway, and can be disabled:
http://stackoverflow.com/questions/14559117/how-do-i-disable-jacoco-agent-after-jacocoreport

Mark (Professional Google Search Monkey)
On 16 Jan 2014, at 14:42, waynemetcalfe <waynemetcalfe@outlook.com> wrote:

Hi Guys,
I'm a pretty recent Drools user.

I'm trying to update a project to stop using the deprecated KnowledgeBase.
I've followed examples on
http://blog.athico.com/2013/10/configuration-and-convention-based.html
<http://blog.athico.com/2013/10/configuration-and-convention-based.html>  ,
but an exception is being thrown when trying to build the KieBases.

Drools version:6.0.0.Final
Java version: 1.7.0_45

Code snippet:
...
final KieServices ks = KieServices.Factory.get();
final KieRepository kr = ks.getRepository();
final KieFileSystem kfs = ks.newKieFileSystem();
//ruleScript is simply a string containing the rules
kfs.write("src/main/resources/com/company/test/rules/rules.drl",
ruleScript);
KieBuilder kb = ks.newKieBuilder(kfs);
kb.buildAll();

if (kb.getResults().hasMessages(Level.ERROR)){
  configuration.getLog().error("\nSomething wrong here!\n\n");
}       

final KieContainer kContainer =
ks.newKieContainer(kr.getDefaultReleaseId());
session = kContainer.newKieSession();
...

The following exception is thrown:

java.lang.instrument.IllegalClassFormatException: Error while instrumenting
class org/drools/compiler/lang/DRL6Lexer.
  at
org.jacoco.agent.rt.internal_9dd1198.CoverageTransformer.transform(CoverageTransformer.java:89)
      at
sun.instrument.TransformerManager.transform(TransformerManager.java:188)
      at
sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
      at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
      at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      at
org.drools.compiler.compiler.DRLFactory.getDRLLexer(DRLFactory.java:93)
      at
org.drools.compiler.compiler.DRLFactory.buildLexer(DRLFactory.java:43)
      at org.drools.compiler.compiler.DrlParser.parse(DrlParser.java:164)
      at org.drools.compiler.compiler.DrlParser.parse(DrlParser.java:146)
      at
org.drools.compiler.compiler.PackageBuilder.drlToPackageDescr(PackageBuilder.java:518)
      at
org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl$1.map(CompositeKnowledgeBuilderImpl.java:404)
      at
org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildResource(CompositeKnowledgeBuilderImpl.java:329)
      at
org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildPackageDescr(CompositeKnowledgeBuilderImpl.java:312)
      at
org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:96)
      at
org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:87)
      at
org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages(AbstractKieModule.java:204)
      at
org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:39)
      at
org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:309)
      at
org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:187)
      at
com.company.test.rules.BasicRuleEngine.start(BasicRuleEngine.java:66)
      at
com.company.test.rules.TestBasicRuleEngine.listenersShouldBeNotifiedOfStartAndStop(TestBasicRuleEngine.java:88)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:254)
      at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:149)
      at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208)
      at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:159)
      at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:87)
      at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
      at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:95)
  Caused by: java.io.IOException: Error while instrumenting class
org/drools/compiler/lang/DRL6Lexer.
      at
org.jacoco.agent.rt.internal_9dd1198.core.instr.Instrumenter.instrumentError(Instrumenter.java:147)
      at
org.jacoco.agent.rt.internal_9dd1198.core.instr.Instrumenter.instrument(Instrumenter.java:98)
      at
org.jacoco.agent.rt.internal_9dd1198.CoverageTransformer.transform(CoverageTransformer.java:87)
      ... 60 more
      Caused by: java.lang.RuntimeException: Method code too large!
          at
org.jacoco.agent.rt.internal_9dd1198.asm.MethodWriter.a(Unknown Source)
      at
org.jacoco.agent.rt.internal_9dd1198.asm.ClassWriter.toByteArray(Unknown
Source)
      at
org.jacoco.agent.rt.internal_9dd1198.core.instr.Instrumenter.instrument(Instrumenter.java:79)
      at
org.jacoco.agent.rt.internal_9dd1198.core.instr.Instrumenter.instrument(Instrumenter.java:96)
      ... 61 more


Any help or info would be greatly appreciated!




--
View this message in context: http://drools.46999.n3.nabble.com/KieBuilder-buildAll-causing-exception-tp4027720.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users