Hello guys, I have a very strange behaviour when i execute this fragment of code:
private void _clearKnowledge() { try { Collection<KnowledgePackage> knowledgePackages = _knowledgeBase.getKnowledgePackages(); for (KnowledgePackage singlePackage : knowledgePackages) { _log.debug("Removing knowledge in drools engine"); _log.debug("package name: " + singlePackage.getName()); _knowledgeBase.removeKnowledgePackage(singlePackage.getName()); } } catch (NullPointerException e) { // TODO An error about a missing package rarely occurs. _log.warn("Drools Engine has tried to remove a missing knowledge package."); } } Sporadically the system raise this ugly exception: Caused by: java.lang.NullPointerException at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:252) at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:459) at org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:1099) at org.drools.common.AbstractRuleBase.removePackage(AbstractRuleBase.java:1017) at org.drools.impl.KnowledgeBaseImpl.removeKnowledgePackage(KnowledgeBaseImpl.java:202) at org.titan.frontend.memory.drools.DroolsEngine._clearKnowledge(DroolsEngine.java:304) I thought about timing issues, but each group of interaction with the engine is protected with a synchronized method on the facade of the module. The try-catch is the unique solution that I have found so far. Thanks Andrea -- View this message in context: http://drools.46999.n3.nabble.com/Problem-when-I-cleaning-the-production-memory-tp4030341.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