[rules-users] Adding a new KnowledgePakage to and existing KnowledgeBase

mike mikemps at gmail.com
Thu Apr 5 14:29:07 EDT 2012


Hi there,

I am having problems adding knowledge packages to a kb. For instance I
create a kb n' add this drl:

package test

rule "abc"
then System.out.println("abc");
end

then I want to add another drl with the same package.

package test

rule "123"
then System.out.println("123");
end

this is the code i'm using for adding

public static void add(KnowledgeBase kb, String content) throws Exception {

(1) KnowledgeBuilder builder =
KnowledgeBuilderFactory.newKnowledgeBuilder(kb);
(2) builder.add(
ResourceFactory.newByteArrayResource(content.getBytes()),
ResourceType.DRL);

if (builder.hasErrors())
throw new Exception(builder.getErrors().toString());

kb.addKnowledgePackages(builder.getKnowledgePackages());
}

please notice i am creating a new builder every time  and the kb is passed
in on (1)

the first call to add works fine. but on the second i get
a NullPointerException on line (2)

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:350)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:474)
at
org.drools.commons.jci.compilers.EclipseJavaCompiler.compile(EclipseJavaCompiler.java:358)
at
org.drools.commons.jci.compilers.AbstractJavaCompiler.compile(AbstractJavaCompiler.java:49)
at
org.drools.rule.builder.dialect.java.JavaDialect.compileAll(JavaDialect.java:369)
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:869)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:826)
at
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:404)
at
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:586)
at
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:37)

thank you very much
mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20120405/fde64b1d/attachment.html 


More information about the rules-users mailing list