[JBoss JIRA] Created: (JBRULES-2101) Intermittant NullPointerException when invoking StatefulSession.asyncUpdate() while maintainTms==true
by Greg Barton (JIRA)
Intermittant NullPointerException when invoking StatefulSession.asyncUpdate() while maintainTms==true
-----------------------------------------------------------------------------------------------------
Key: JBRULES-2101
URL: https://jira.jboss.org/jira/browse/JBRULES-2101
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-core
Affects Versions: 5.0.1.FINAL
Environment: Ubuntu Jaunty Jackelope
Linux version 2.6.27-11-generic (buildd@yellow) (gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11) ) #1 SMP Wed Apr 1 20:53:41 UTC 2009
Multicore
Reporter: Greg Barton
Assignee: Mark Proctor
After calling StatefulSession.asyncUpdate() the following exception occurs, but only when maintainTms==true in the rule configuration:
Exception in thread "Thread-5" java.lang.NullPointerException
at org.drools.common.AbstractWorkingMemory.update(AbstractWorkingMemory.java:1387)
at org.drools.common.AbstractWorkingMemory.update(AbstractWorkingMemory.java:1350)
at org.drools.concurrent.UpdateObject.execute(UpdateObject.java:46)
at org.drools.concurrent.CommandExecutor.run(CommandExecutor.java:78)
at java.lang.Thread.run(Thread.java:619)
AbstractWorkingMemory.java line 1387 is wrapped in an if statement with condition "this.maintainTms" so setting maintainTms=false avoids the exception entirely. The NPE producing line is this:
status = ((InternalFactHandle) factHandle).getEqualityKey().getStatus();
While encountering this problem the factHandle passed in to StatefulSession.asyncUpdate() was always non-null, so my guess is that the getEqualityKey() call returned null.
--
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
13 years, 7 months
[JBoss JIRA] Created: (JBRULES-2839) ClassCastException: org.drools.reteoo.CollectNode$CollectMemory cannot be cast to org.drools.reteoo.FromNode$FromMemory
by Christian Jacinto (JIRA)
ClassCastException: org.drools.reteoo.CollectNode$CollectMemory cannot be cast to org.drools.reteoo.FromNode$FromMemory
-----------------------------------------------------------------------------------------------------------------------
Key: JBRULES-2839
URL: https://issues.jboss.org/browse/JBRULES-2839
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-core
Affects Versions: 5.0.1.FINAL
Reporter: Christian Jacinto
Assignee: Mark Proctor
Posting a similar case retrieved from http://comments.gmane.org/gmane.comp.java.drools.user/19739:
Rule:
rule "test"
when
$inputObj : QuotationSearchFormObject( extensions != null )
QuotationLineExt( $locFrmLabel:label == 'Location From' , value != null , $locFromValue : value ) from $inputObj.getExtensions()
i : ArrayList( size > 0 ) from collect ( QuotationLine( extensions != null ) from $totList);
then
System.out.println("success");
end
Stacktrace:
java.lang.ClassCastException: org.drools.reteoo.CollectNode$CollectMemory cannot be cast to org.drools.reteoo.FromNode$FromMemory
at org.drools.reteoo.FromNode.assertLeftTuple(FromNode.java:93)
at org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:145)
at org.drools.reteoo.CompositeLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:57)
at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142)
at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:360)
at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:344)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)
at org.drools.process.command.InsertElementsCommand.execute(InsertElementsCommand.java:40)
at org.drools.process.command.InsertElementsCommand.execute(InsertElementsCommand.java:12)
at org.drools.runtime.impl.BatchExecutionImpl.execute(BatchExecutionImpl.java:23)
at org.drools.runtime.impl.BatchExecutionImpl.execute(BatchExecutionImpl.java:9)
at org.drools.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:225)
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 7 months
[JBoss JIRA] Created: (JBRULES-1675) Xpath Default Constraint Evaluations
by Paul Ryan (JIRA)
Xpath Default Constraint Evaluations
------------------------------------
Key: JBRULES-1675
URL: http://jira.jboss.com/jira/browse/JBRULES-1675
Project: JBoss Drools
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Drl Parser/Builder, Eclipse IDE, Rule Assemply/SPI, Solver, Verifier, xml
Reporter: Paul Ryan
Assigned To: Mark Proctor
A default set of constraint matchers for xpath based on loaded w3c DOMs would be very helpful. For our project we have alot of facts that are just an xml file (this seems to be the way the industry in general is going) that is calculated and being able to load that in to working memory and have constraint based node evaluations would be a very nice and attractive feature. I would suggest as a start a basic content equals (on elements it would match against text content and on attributes it would match against the node value) as well as a basic check for exists based on given xpath.
Potential syntax:
Fact( xml.xpath("/document//fragment[@id='myid']")) // Checks if the xpath exists in the property xml
or
Fact( xml.xpath("/document//fragment[@id='myid']") == "myvalue") // Checks if the text content of the fragment with the given id is "myvalue"
or
Fact( xml.xpath("/document//fragment[@id='myid']/@attr1") == "myattr") // Checks if the node value of the attribute attr1 in the given fragment is "myattr"
with the property xml having been defined in the fact.
I would suggest implementing this using the latest DOM stuff that has been recently released with xerces 2.9 and up as it has a very fast and efficient xpath evaluator. If you would like I think I can draw up some examples, however I don't think I know enough about drools core code to write this feature myself yet, maybe with some help.
Also this constraint module may need a new interface for configuring the size limit (or other constraint) around when to load the xml into working memory. Maybe a annotation based solution in the fact is a good idea (e.g. put an annotation @LoadDOM on xml property in the fact for properties that should be loaded into DOM), or the other option is that the designer has to set the property up as an org.w3c.dom.Document for it to be consider pre-loadable.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 7 months
[JBoss JIRA] Created: (JBRULES-2069) NPE on RuleBase when Guvnor is down
by George Gastaldi (JIRA)
NPE on RuleBase when Guvnor is down
-----------------------------------
Key: JBRULES-2069
URL: https://jira.jboss.org/jira/browse/JBRULES-2069
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-core
Affects Versions: 5.0.0.CR1
Reporter: George Gastaldi
Assignee: Mark Proctor
Priority: Minor
When creating a a RuleBasedAgent with the following code: org.drools.agent.RuleAgent.newRuleAgent(properties), having properties only the url property, the following stacktrace appears:
java.io.IOException: Was unable to reach server.
at org.drools.agent.URLScanner.hasChanged(URLScanner.java:155)
at org.drools.agent.URLScanner.getChangeSet(URLScanner.java:119)
at org.drools.agent.URLScanner.loadPackageChanges(URLScanner.java:96)
at org.drools.agent.RuleAgent.checkForChanges(RuleAgent.java:410)
at org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:362)
at org.drools.agent.RuleAgent.configure(RuleAgent.java:347)
at org.drools.agent.RuleAgent.init(RuleAgent.java:247)
at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:187)
at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:147)
followed by
java.lang.NullPointerException
at org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:363)
at org.drools.agent.RuleAgent.configure(RuleAgent.java:347)
at org.drools.agent.RuleAgent.init(RuleAgent.java:247)
at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:187)
at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:147)
That´s OK to throw the IOException, but the NullPointerException should not happen.
--
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
13 years, 7 months
[JBoss JIRA] Created: (JBRULES-2863) Tuple is null when firing an activation
by Edson Tirelli (JIRA)
Tuple is null when firing an activation
---------------------------------------
Key: JBRULES-2863
URL: https://issues.jboss.org/browse/JBRULES-2863
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 5.1.1.FINAL
Reporter: Edson Tirelli
Assignee: Edson Tirelli
Priority: Critical
Fix For: 5.2.0.M1
For some reason, an activation is firing with a nulled tuple, i.e., it seems the activation is being created, but not properly removed from the agenda. There are not many details but the rule in question uses both ruleflow-group and no-loop.
Reported by Dan Quinn.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 7 months
[JBoss JIRA] Created: (AS7-796) OSGi bypasses other DUPs when osgi metadata is found
by Jason Greene (JIRA)
OSGi bypasses other DUPs when osgi metadata is found
----------------------------------------------------
Key: AS7-796
URL: https://issues.jboss.org/browse/AS7-796
Project: Application Server 7
Issue Type: Bug
Reporter: Jason Greene
Assignee: Jason Greene
Priority: Blocker
If an EE, or JDBC driver happens to include osgi metadata, it will no longer deploy. This is because the OSGi subsystem bypasses other deployers, and treats it as just a bundle.
Both Mysql and Hypersonic can not be deployed due to this problem.
Ideally the OSGi subsystem would just add services and augment the model configs so that other deployers can function.
Alternatively we can explore the possibility of deploying bundles differently than regular deployments, perhaps requiring special packaging, or extra deployment data.
If we can't come up with a solution by CR1, I think we need to disable the OSGi subsystem by default.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 7 months