JavaDialectError when attaching a new KBuilder to an existing session

Solution Verified - Updated -

Issue

  • Junit console shows following exception.
java.lang.AssertionError: [JavaDialectError message='PackageStore was unable to read resourceName='com/sample.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='java/lang.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='java/lang/Object.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='java/lang/package-info.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='com/sample/package-info.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='com/sample/Exception.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='java/lang/Exception.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='java/lang/Throwable.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='com/sample/org.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='java/lang/org.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='org/drools.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='org/drools/spi.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='org/drools/spi/KnowledgeHelper.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='org/drools/spi/package-info.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='org/drools/runtime/rule/RuleContext.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='org/drools/runtime/rule/package-info.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='java/io/Serializable.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='com/sample/Foo.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='org/drools/runtime/KnowledgeContext.class'']
[JavaDialectError message='PackageStore was unable to read resourceName='org/drools/runtime/package-info.class'']
[JavaDialectError message='PackageStore was unable to write resourceName='com/sample/Rule_R1_fce7c9643691482996e9c1b4d46ab798.class'']

    at org.junit.Assert.fail(Assert.java:91)
    at org.junit.Assert.assertTrue(Assert.java:43)
    at org.junit.Assert.assertFalse(Assert.java:68)
    at com.sample.test.DroolsTestOne.testDynamicRulesWithTypeDeclarationsJIRA(DroolsTestOne.java:111)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  • On the backend Console we can see an NPE while trying to add the rule:
java.lang.NullPointerException
    at org.drools.rule.builder.dialect.java.PackageStore.write(PackageStore.java:47)
    at org.drools.commons.jci.compilers.EclipseJavaCompiler$3.acceptResult(EclipseJavaCompiler.java:380)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:474)
    at org.drools.commons.jci.compilers.EclipseJavaCompiler.compile(EclipseJavaCompiler.java:388)
    at org.drools.commons.jci.compilers.AbstractJavaCompiler.compile(AbstractJavaCompiler.java:49)
    at org.drools.rule.builder.dialect.java.JavaDialect.compileAll(JavaDialect.java:361)
    at org.drools.compiler.DialectCompiletimeRegistry.compileAll(DialectCompiletimeRegistry.java:53)
    at org.drools.compiler.PackageRegistry.compileAll(PackageRegistry.java:71)
    at org.drools.compiler.PackageBuilder.compileAll(PackageBuilder.java:1019)
    at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:974)
    at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:456)
    at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:643)
    at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:41)
    at com.sample.test.DroolsTestOne.testDynamicRulesWithTypeDeclarationsJIRA(DroolsTestOne.java:110)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Environment

  • JBoss Enterprise Business Rules Management System Platform (BRMS)
    • 5.x

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content