[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