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];
}
|