You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by lu...@apache.org on 2005/03/11 10:50:08 UTC

cvs commit: jakarta-slide/src/share/org/apache/slide/search/basic BasicExpressionCompiler.java

luetzkendorf    2005/03/11 01:50:08

  Modified:    src/share/org/apache/slide/search/basic
                        BasicExpressionCompiler.java
  Log:
  fix: NPE with empty <and> or <or> operator
  
  Revision  Changes    Path
  1.11      +12 -10    jakarta-slide/src/share/org/apache/slide/search/basic/BasicExpressionCompiler.java
  
  Index: BasicExpressionCompiler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/search/basic/BasicExpressionCompiler.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- BasicExpressionCompiler.java	28 Jul 2004 09:35:02 -0000	1.10
  +++ BasicExpressionCompiler.java	11 Mar 2005 09:50:08 -0000	1.11
  @@ -152,6 +152,9 @@
                                                       List expressionsToMerge)
           throws BadQueryException
       {
  +        if (expressionsToMerge.size() == 0) {
  +            throw new BadQueryException("DAV:" + name + " must not be empty!");
  +        }
           
           Map expressionsByFactory = new HashMap ();
           IBasicExpression mergeExpression = null;
  @@ -171,18 +174,17 @@
           }
           
           // merge all expressions of each factory
  -        it = expressionsByFactory.keySet().iterator();
  +        it = expressionsByFactory.entrySet().iterator();
           while (it.hasNext()) {
  -            IBasicExpressionFactory fac = (IBasicExpressionFactory)it.next();
  -            List expList = (List)expressionsByFactory.get (fac);
  -            
  +            Map.Entry entry = (Map.Entry)it.next();
  +            IBasicExpressionFactory fac = (IBasicExpressionFactory)entry.getKey();
  +            List expList = (List)entry.getValue();
               
               if (expList.size() > 1) {
                   // merge all expressions
                   expressionsByFactory.put
                       (fac, fac.createMergeExpression (name, namespace, expList));
  -            }
  -            else {
  +            } else {
                   // we're interested in the one and only expression
                   expressionsByFactory.put (fac, expList.get(0));
               }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org