sdeboy      2003/12/10 22:30:56

  Modified:    src/java/org/apache/log4j/chainsaw/rule NotRule.java
                        ExistsRule.java InequalityRule.java LikeRule.java
                        PartialTextMatchRule.java
  Log:
  Added assertions to rules to prevent problems during parsing of the stack (used by 
expressionrule).  Note that the 'focus on' textfield's tooltip displays the 
expression's error.
  
  Revision  Changes    Path
  1.5       +10 -3     
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/NotRule.java
  
  Index: NotRule.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/NotRule.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NotRule.java      10 Nov 2003 02:15:24 -0000      1.4
  +++ NotRule.java      11 Dec 2003 06:30:56 -0000      1.5
  @@ -70,9 +70,16 @@
     }
     
     public static Rule getRule(Stack stack) {
  -    Rule p1 = (Rule) stack.pop();
  -
  -    return new NotRule(p1);
  +      if (stack.size() < 1) {
  +          throw new IllegalArgumentException("Invalid NOT rule - expected one rule 
but provided " + stack.size());
  +      }  
  +      Object o1 = stack.pop();
  +      if (o1 instanceof Rule) {
  +        Rule p1 = (Rule)o1;
  +        return new NotRule(p1);
  +      } else {
  +          throw new IllegalArgumentException("Invalid NOT rule: - expected rule but 
received " + o1);
  +      }
     }
   
     public boolean evaluate(LoggingEvent event) {
  
  
  
  1.2       +4 -0      
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/ExistsRule.java
  
  Index: ExistsRule.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/ExistsRule.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ExistsRule.java   10 Nov 2003 02:15:24 -0000      1.1
  +++ ExistsRule.java   11 Dec 2003 06:30:56 -0000      1.2
  @@ -72,6 +72,10 @@
     }
     
     public static Rule getRule(Stack stack) {
  +      if (stack.size() < 1) {
  +          throw new IllegalArgumentException("Invalid EXISTS rule - expected one 
rule but provided " + stack.size());
  +      }  
  +
       return new ExistsRule(stack.pop().toString());
     }
   
  
  
  
  1.5       +4 -0      
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/InequalityRule.java
  
  Index: InequalityRule.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/InequalityRule.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- InequalityRule.java       9 Nov 2003 09:59:27 -0000       1.4
  +++ InequalityRule.java       11 Dec 2003 06:30:56 -0000      1.5
  @@ -77,6 +77,10 @@
     }
     
     public static Rule getRule(String inequalitySymbol, Stack stack) {
  +      if (stack.size() < 2) {
  +          throw new IllegalArgumentException("Invalid " + inequalitySymbol + " rule 
- expected two rules but provided " + stack.size());
  +      }  
  +
         String p2 = stack.pop().toString();
         String p1 = stack.pop().toString();
         return getRule(inequalitySymbol, p1, p2);
  
  
  
  1.4       +4 -0      
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/LikeRule.java
  
  Index: LikeRule.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/LikeRule.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LikeRule.java     9 Nov 2003 09:59:27 -0000       1.3
  +++ LikeRule.java     11 Dec 2003 06:30:56 -0000      1.4
  @@ -76,6 +76,10 @@
     }
   
     public static Rule getRule(Stack stack) {
  +      if (stack.size() < 2) {
  +          throw new IllegalArgumentException("Invalid LIKE rule - expected two 
rules but provided " + stack.size());
  +      }  
  +      
         String p2 = stack.pop().toString();
         String p1 = stack.pop().toString();
         return getRule(p1, p2);
  
  
  
  1.5       +1 -1      
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/PartialTextMatchRule.java
  
  Index: PartialTextMatchRule.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/PartialTextMatchRule.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PartialTextMatchRule.java 8 Dec 2003 06:00:21 -0000       1.4
  +++ PartialTextMatchRule.java 11 Dec 2003 06:30:56 -0000      1.5
  @@ -75,7 +75,7 @@
   
     public static Rule getRule(Stack stack) {
         if (stack.size() < 2) {
  -          throw new IllegalArgumentException("partial text rule - expected two 
entries but " + stack.size() + " were provided");
  +          throw new IllegalArgumentException("invalid partial text rule - expected 
two entries but " + stack.size() + " were provided");
         }
       String p2 = stack.pop().toString();
       String p1 = stack.pop().toString();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to