From: <wol...@us...> - 2004-03-05 16:37:53
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/dom In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv757/src/org/exist/dom Modified Files: AbstractNodeSet.java ArraySet.java Log Message: Fixed bug in the processing of logical operators "and", "or". Index: AbstractNodeSet.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/dom/AbstractNodeSet.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** AbstractNodeSet.java 1 Mar 2004 21:30:20 -0000 1.12 --- AbstractNodeSet.java 5 Mar 2004 16:15:47 -0000 1.13 *************** *** 840,844 **** */ public NodeSet getContextNodes(NodeSet contextNodes, boolean rememberContext) { ! NodeSet result = new ArraySet(getLength()); NodeProxy current, context, item; ContextItem contextNode; --- 840,844 ---- */ public NodeSet getContextNodes(NodeSet contextNodes, boolean rememberContext) { ! ArraySet result = new ArraySet(getLength()); NodeProxy current, context, item; ContextItem contextNode; *************** *** 867,871 **** NodeProxy current, context; ContextItem contextNode; ! NodeSet result = new ArraySet(getLength()); for (Iterator i = iterator(); i.hasNext();) { current = (NodeProxy) i.next(); --- 867,872 ---- NodeProxy current, context; ContextItem contextNode; ! ExtArrayNodeSet result = new ExtArrayNodeSet(); ! DocumentImpl lastDoc = null; for (Iterator i = iterator(); i.hasNext();) { current = (NodeProxy) i.next(); *************** *** 877,881 **** if (rememberContext) context.addContextNode(context); ! result.add(context); } contextNode = contextNode.getNextItem(); --- 878,886 ---- if (rememberContext) context.addContextNode(context); ! if(lastDoc != null && lastDoc.getDocId() != context.doc.getDocId()) { ! lastDoc = context.doc; ! result.add(context, getSizeHint(lastDoc)); ! } else ! result.add(context); } contextNode = contextNode.getNextItem(); Index: ArraySet.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/dom/ArraySet.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** ArraySet.java 1 Mar 2004 21:30:20 -0000 1.28 --- ArraySet.java 5 Mar 2004 16:15:48 -0000 1.29 *************** *** 203,206 **** --- 203,207 ---- nodes[counter++] = proxy; } + sorted = false; } *************** *** 241,246 **** sort(); int pos = search(nodes, 0, counter - 1, p); ! if (pos < 0) return null; return nodes[pos]; } --- 242,249 ---- sort(); int pos = search(nodes, 0, counter - 1, p); ! if (pos < 0) { ! System.out.println(p.gid + " not found"); return null; + } return nodes[pos]; } |