[jboss-svn-commits] JBL Code SVN: r17027 - in labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src: main/resources/org/drools/lang and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Dec 4 14:31:43 EST 2007
Author: fmeyer
Date: 2007-12-04 14:31:43 -0500 (Tue, 04 Dec 2007)
New Revision: 17027
Added:
labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/test/resources/org/drools/lang/comma_misuse.drl
Modified:
labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/resources/org/drools/lang/DRL.g
labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
Log:
SOA-212 Fixing NPE in parser DroolsParserException related to JBRULES-1321
Modified: labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java 2007-12-04 19:19:08 UTC (rev 17026)
+++ labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java 2007-12-04 19:31:43 UTC (rev 17027)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-11-05 20:11:28
+// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-11-12 18:04:45
package org.drools.lang;
Modified: labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/java/org/drools/lang/DRLParser.java 2007-12-04 19:19:08 UTC (rev 17026)
+++ labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/java/org/drools/lang/DRLParser.java 2007-12-04 19:31:43 UTC (rev 17027)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-11-05 20:11:26
+// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-11-12 18:04:44
package org.drools.lang;
import java.util.List;
@@ -3351,7 +3351,7 @@
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
- ((PatternDescr)d).setSource((PatternSourceDescr) ac);
+ if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) ac);
}
}
@@ -3370,7 +3370,7 @@
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
- ((PatternDescr)d).setSource((PatternSourceDescr) cs);
+ if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) cs);
}
}
@@ -3389,7 +3389,7 @@
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
- ((PatternDescr)d).setSource((PatternSourceDescr) fm);
+ if( d != null ) ((PatternDescr)d).setSource((PatternSourceDescr) fm);
}
}
Modified: labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-12-04 19:19:08 UTC (rev 17026)
+++ labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-12-04 19:31:43 UTC (rev 17027)
@@ -822,9 +822,9 @@
location.setProperty(Location.LOCATION_FROM_CONTENT, "");
}
( options { k=1; } :
- ( ac=accumulate_statement { ((PatternDescr)$d).setSource((PatternSourceDescr) $ac.d); })
- | ( cs=collect_statement { ((PatternDescr)$d).setSource((PatternSourceDescr) $cs.d); })
- | ( fm=from_statement { ((PatternDescr)$d).setSource((PatternSourceDescr) $fm.d); })
+ ( ac=accumulate_statement { if( $d != null ) ((PatternDescr)$d).setSource((PatternSourceDescr) $ac.d); })
+ | ( cs=collect_statement { if( $d != null ) ((PatternDescr)$d).setSource((PatternSourceDescr) $cs.d); })
+ | ( fm=from_statement { if( $d != null ) ((PatternDescr)$d).setSource((PatternSourceDescr) $fm.d); })
)
)?
;
Modified: labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
===================================================================
--- labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java 2007-12-04 19:19:08 UTC (rev 17026)
+++ labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java 2007-12-04 19:31:43 UTC (rev 17027)
@@ -3562,6 +3562,20 @@
}
+ public void testCommaMisuse() throws Exception {
+ final DRLParser parser = parseResource( "comma_misuse.drl" );
+ try {
+ parser.compilation_unit();
+
+ assertTrue( "Parser should have raised errors",
+ parser.hasErrors() );
+ assertEquals( 3, parser.getErrors().size() );
+
+ } catch( NullPointerException npe ) {
+ fail("Should not raise NPE");
+ }
+ }
+
private DRLParser parse(final String text) throws Exception {
this.parser = newParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
return this.parser;
Copied: labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/test/resources/org/drools/lang/comma_misuse.drl (from rev 16544, labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/lang/comma_misuse.drl)
===================================================================
--- labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/test/resources/org/drools/lang/comma_misuse.drl (rev 0)
+++ labs/jbossrules/branches/Branch_4_0_2_SOA_4_2/drools-compiler/src/test/resources/org/drools/lang/comma_misuse.drl 2007-12-04 19:31:43 UTC (rev 17027)
@@ -0,0 +1,8 @@
+package org.drools;
+
+rule "Avoid NPE on wrong syntax"
+when
+ not( Cheese( ( type == "stilton", price == 10 ) || ( type == "brie", price == 15 ) ) from $cheeseList )
+then
+ System.out.println("OK");
+end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list