[rules-users] Problem when I cleaning the production memory.
braveheart85
andrea.pacifico.85 at gmail.com
Mon Jul 14 11:43:43 EDT 2014
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.
More information about the rules-users
mailing list