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