[jboss-jira] [JBoss JIRA] Created: (JBRULES-1180) java.lang.ClassCastException: org.drools.reteoo.RightInputAdapterNode
Markus Reitz (JIRA)
jira-events at lists.jboss.org
Tue Sep 11 16:28:11 EDT 2007
java.lang.ClassCastException: org.drools.reteoo.RightInputAdapterNode
---------------------------------------------------------------------
Key: JBRULES-1180
URL: http://jira.jboss.com/jira/browse/JBRULES-1180
Project: JBoss Rules
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.0.1
Environment: JDK 1.5, Mac OS X 10.4
Reporter: Markus Reitz
Assigned To: Mark Proctor
Using the rules
package test
import java.awt.*;
rule "A"
when
exists(x : Dimension(x_height : height) and
y : Dimension(this!=x, height!=x_height))
then
System.out.println("A");
end
rule "B"
when
not(exists(x : Dimension(x_height : height) and
y : Dimension(this!=x, height!=x_height)))
then
System.out.println("B");
end
as input for the following program (java DroolsTest <name of rule file>)
import org.drools.*;
import org.drools.compiler.*;
import org.drools.rule.Package;
import java.io.*;
import java.awt.*;
public class DroolsTest {
private RuleBase rules;
private StatefulSession memory;
public DroolsTest(File file) throws Exception {
rules =RuleBaseFactory.newRuleBase();
memory=rules.newStatefulSession();
rules.addPackage(loadPackage(file));
}
protected Package loadPackage(File file) throws IOException {
FileInputStream stream=null;
try {
stream=new FileInputStream(file);
return(loadPackage(stream));
}
finally {
if (stream!=null)
stream.close();
}
}
protected Package loadPackage(InputStream stream) throws IOException {
try {
PackageBuilder builder=new PackageBuilder();
builder.addPackageFromDrl(new InputStreamReader(stream));
return(builder.getPackage());
}
catch(Exception ex) {
throw new IOException();
}
}
public StatefulSession getSession() {
return(memory);
}
public static void main(String ... args) {
try {
DroolsTest test=new DroolsTest(new File(args[0]));
System.out.println("Inserting ...");
test.getSession().insert(new Dimension(1,2));
test.getSession().insert(new Dimension(2,3));
test.getSession().insert(new Dimension(4,2));
System.out.println("Done.");
System.out.println("Firing rules ...");
test.getSession().fireAllRules();
System.out.println("Done.");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
leads to
java.lang.ClassCastException: org.drools.reteoo.RightInputAdapterNode
at org.drools.reteoo.CompositeTupleSinkAdapter.addTupleSink(CompositeTupleSinkAdapter.java:17)
at org.drools.reteoo.TupleSource.addTupleSink(TupleSource.java:79)
at org.drools.reteoo.RightInputAdapterNode.attach(RightInputAdapterNode.java:127)
at org.drools.reteoo.RightInputAdapterNode.attach(RightInputAdapterNode.java:131)
at org.drools.reteoo.builder.BuildUtils.attachNode(BuildUtils.java:132)
at org.drools.reteoo.builder.GroupElementBuilder$ExistsBuilder.build(GroupElementBuilder.java:290)
at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:69)
at org.drools.reteoo.builder.GroupElementBuilder$NotBuilder.build(GroupElementBuilder.java:207)
at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:69)
at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:111)
at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:69)
at org.drools.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:136)
at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:109)
at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:116)
at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:268)
at org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:337)
at DroolsTest.<init>(Unknown Source)
at DroolsTest.main(Unknown Source)
--
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
More information about the jboss-jira
mailing list