Problem compiling package from xml
----------------------------------
Key: JBRULES-570
URL:
http://jira.jboss.com/jira/browse/JBRULES-570
Project: JBoss Rules
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: xml
Affects Versions: 3.0.4
Environment: Windows XP, Eclipse 3.2, JBoss Rules IDE 3.0.4
Reporter: Javier Prieto
Assigned To: Mark Proctor
There is a problem compiling package from an xml rule file with rules calling functions in
the rhs body. This is an example of an xml rule file that fails:
<?xml version="1.0" encoding="UTF-8"?>
<package name="com.sample"
xmlns="http://drools.org/drools-3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://drools.org/drools-3.0 drools-3.0.xsd">
<function return-type="void" name="manageAlert">
<parameter identifier="alert" type="String"/>
<body>System.out.println(alert);</body>
</function>
<function return-type="void" name="manageRuleFired">
<parameter identifier="ruleName" type="String"/>
<body>System.out.println(ruleName + " fired");</body>
</function>
<rule name="Impossible Rule">
<lhs>
<eval>1 == 2</eval>
</lhs>
<rhs>manageAlert("impossibleRule!!!"); manageRuleFired("Impossible
Rule");</rhs>
</rule>
</package>
I've found a workaround. If you insert a blank char anywhere in the first sentence of
the rhs body (manageAlert(...);), it works well:
<rhs>manageAlert ("impossibleRule!!!"); manageRuleFired("Impossible
Rule");</rhs> (blank after manageAlert)
or, <rhs>manageAlert( "impossibleRule!!!");
manageRuleFired("Impossible Rule");</rhs> (blank after '(' )
or, <rhs> manageAlert("impossibleRule!!!");
manageRuleFired("Impossible Rule");</rhs> (blank at the begining)
or, <rhs>manageAlert("impossible Rule!!!");
manageRuleFired("Impossible Rule");</rhs> (blank in the string)
...
If you call a Java method just before or after 'manageAlert("impossible
Rule!!!");' with a blank between them, it works well too:
<rhs>System.out.println("Hello");
manageAlert("impossibleRule!!!"); manageRuleFired("Impossible
Rule");</rhs>
<rhs>manageAlert("impossibleRule!!!");
System.out.println("Hello"); manageRuleFired("Impossible
Rule");</rhs>
...
I attach a test case with the xml rule file that cause the rule compilation error and the
main class to test it.
--
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