[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