[rules-users] KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage

Lisa Horton LHorton at ABCLegal.com
Tue Jun 14 13:28:59 EDT 2011


Drools 5.1.1
I create a package from a decision table:
                                ObjectOutputStream out;
                                try {
                                                out = new ObjectOutputStream(new FileOutputStream("venue.pkg"));
                                                out.writeObject(knowledgeBase.getKnowledgePackages()); // knowledgeBase previously loaded from spreadsheet
                                                out.close();
                                } catch (IOException ex) {
                                                logger.debug(ex.getMessage());
                                }

I can load this package directly into a knowledge base and run rules with no errors:
                                ObjectInputStream in;
                                Collection<KnowledgePackage> packages = null;
                                try {
                                                in = new ObjectInputStream(new FileInputStream("venue.pkg"));
                                                packages = (Collection<KnowledgePackage>) in.readObject();
                                                in.close();
                                } catch (Exception ex) {
                                                logger.debug(ex.getMessage());
                                }
                                knowledgeBase.addKnowledgePackages(packages);

HOWEVER if I try to load the same package using a knowledge agent:
                                KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("TheAgent");
                                kagent.applyChangeSet(ResourceFactory.newFileResource("ChangeSet.xml"));

The package does not load.  Any idea of the cause of these exceptions?

[2011:06:165 10:06:159:info] ResourceChangeNotification created
[2011:06:165 10:06:161:info] ResourceChangeScanner reconfigured with interval=60
[2011:06:165 10:06:161:info] ResourceChangeScanner created with default interval=60
[2011:06:165 10:06:162:debug] ResourceChangeNotification monitor added monitor=org.drools.io.impl.ResourceChangeScannerImpl at 5c73a7ab
[2011:06:165 10:06:163:debug] KnowledgeAgent building resource map
[2011:06:165 10:06:163:info] KnowledegAgent has started listening for ChangeSet notifications
[2011:06:165 10:06:163:info] KnowledgeAgent created, with configuration:
monitorChangeSetEvents=true scanResources=true scanDirectories=true newInstance=true
[2011:06:165 10:06:413:info] KnowledgeAgent applying ChangeSet
[2011:06:165 10:06:415:debug] KnowledgeAgent notifier subscribing to resource=[ClassPathResource path='com/abclegal/rules/resources/venue.pkg']
[2011:06:165 10:06:415:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl at 5fe0f2f6 to resource=[ClassPathResource path='com/abclegal/rules/resources/venue.pkg']
[2011:06:165 10:06:416:debug] ResourceChangeScanner subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl at 296f25a7 to resource=[ClassPathResource path='com/abclegal/rules/resources/venue.pkg']
[2011:06:165 10:06:416:debug] KnowledgeAgent rebuilding KnowledgeBase using ChangeSet
[2011:06:165 10:06:556:exception]
java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage
        at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:664)
        at org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:889)
        at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:704)
        at org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:584)
        at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:185)
        at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)
        at com.abclegal.rules.RulesUtilities.createKnowledgeBaseUsingAgent(RulesUtilities.java:91)
        at com.abclegal.rules.RulesBenchmarks.benchmarkVenueSelection(RulesBenchmarks.java:39)
        at com.abclegal.rules.RulesBenchmarks.main(RulesBenchmarks.java:33)
Caused by: java.lang.ClassCastException: [B cannot be cast to org.drools.rule.DialectRuntimeRegistry
        at org.drools.rule.Package.readExternal(Package.java:197)
        at org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:115)
        at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1791)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
        at java.util.ArrayList.readObject(ArrayList.java:593)
        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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
        at org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:205)
        at org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:174)
        at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:653)
        ... 8 more
[2011:06:165 10:06:856:debug] KnowledgeAgent obtaining pkg resource=[ClassPathResource path='com/abclegal/rules/resources/venue.pkg']
[2011:06:165 10:06:856:exception]
java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage
        at org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:914)
        at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:704)
        at org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:584)
        at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:185)
        at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)
        at com.abclegal.rules.RulesUtilities.createKnowledgeBaseUsingAgent(RulesUtilities.java:91)
        at com.abclegal.rules.RulesBenchmarks.benchmarkVenueSelection(RulesBenchmarks.java:39)
        at com.abclegal.rules.RulesBenchmarks.main(RulesBenchmarks.java:33)
Caused by: java.lang.NullPointerException
        at org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:906)
        ... 7 more
[2011:06:165 10:06:865:info] KnowledgeAgent new KnowledgeBase now built and in use
[2011:06:165 10:06:865:debug] KnowledgeAgent finished rebuilding KnowledgeBase using ChangeSet


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110614/2d7bb658/attachment.html 


More information about the rules-users mailing list