[
https://jira.jboss.org/jira/browse/JBRULES-2278?page=com.atlassian.jira.p...
]
Nestor Tarin Burriel commented on JBRULES-2278:
-----------------------------------------------
Hi Edson,
Here my pom config:
========================
<repositories>
<repository>
<id>jboss-drools</id>
<name>jboss-drools</name>
<
url>http://repository.jboss.com/maven2</url>
</repository>
<repository>
<id>jboss-drools-snapshots</id>
<name>jboss-drools-snapshots</name>
<
url>http://snapshots.jboss.org/maven2</url>
</repository>
</repositories>
<dependencies>
<dependency>
<artifactId>drools-core</artifactId>
<groupId>org.drools</groupId>
<version>5.0.1</version>
</dependency>
<dependency>
<artifactId>drools-api</artifactId>
<groupId>org.drools</groupId>
<version>5.0.1</version>
</dependency>
<dependency>
<artifactId>drools-compiler</artifactId>
<groupId>org.drools</groupId>
<version>5.0.1</version>
</dependency>
<dependency>
<groupId>jboss</groupId>
<artifactId>jboss-common-logging-log4j</artifactId>
<version>2.0.4.GA</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
</dependencies>
=======================================================
NPE after knowledgebase updated when using entrypoints
------------------------------------------------------
Key: JBRULES-2278
URL:
https://jira.jboss.org/jira/browse/JBRULES-2278
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-core, drools-core (expert), drools-core (fusion)
Affects Versions: 5.0.1.FINAL
Reporter: Michael Neale
Assignee: Edson Tirelli
Fix For: 5.1.0.M2
Attachments: kagent-problem.zip
Raised by Nestor Burriel on the dev list:
I've tried to configure my rule engine obtaining unexpected behaviour.
I configure my statefulSession as follows:
wm = (ReteooStatefulSession) ((KnowledgeBaseImpl) kagent
.getKnowledgeBase()).ruleBase.newStatefulSession(
(SessionConfiguration) sessionConf, env);
ksession = new StatefulKnowledgeSessionImpl(wm, kagent.getKnowledgeBase());
And after updating the KnowledgeBase in the agent I update my ksession:
wm.setRuleBase((InternalRuleBase) ((KnowledgeBaseImpl) kagent
.getKnowledgeBase()).ruleBase);
ksession = new StatefulKnowledgeSessionImpl(wm, kagent.getKnowledgeBase());
Without using entry-points this approach works as expected, but using them
it fails after the first update throwing the error:
Exception while processing message: java.lang.NullPointerException
java.lang.NullPointerException
at
org.drools.reteoo.ReteooFactHandleFactory.newFactHandle(ReteooFactHandleFactory.java:54)
at
org.drools.common.AbstractFactHandleFactory.newFactHandle(AbstractFactHandleFactory.java:79)
at
org.drools.common.AbstractFactHandleFactory.newFactHandle(AbstractFactHandleFactory.java:66)
at
org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:109)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:80)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:28)
Browsing the drools core code I found the line that was throwing the
exception and tried to get the same result by implementing:
if (!((InternalRuleBase) ((KnowledgeBaseImpl)
ksession.getKnowledgeBase()).ruleBase)
.getTypeDeclaration(fact.getClass()) ==
null)
log.info (((InternalRuleBase) ((KnowledgeBaseImpl)
ksession.getKnowledgeBase()).ruleBase)
.getTypeDeclaration(fact.getClass()).getTimestampExtractor().toString());
after updating my ksession. The result was the same, again the same
exception thrown but my logger wrote:
18:01:50,232 INFO [ClassFieldExtractor class=MyPackage.MyFact
field=myTimestampField]
So I dont know why the core is throwing that exception, is that
implementation correct?, any ideas?
Thanks,
Nestor
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira