vgritsenko 2003/12/11 17:27:23
Modified: java/src/org/apache/xindice/client/xmldb/embed
CollectionImpl.java
Log:
Fix getParentCollection test for the embedded driver.
See also http://marc.theaimsgroup.com/?l=xindice-dev&m=106040091508016&w=2
Revision Changes Path
1.25 +12 -7
xml-xindice/java/src/org/apache/xindice/client/xmldb/embed/CollectionImpl.java
Index: CollectionImpl.java
===================================================================
RCS file:
/home/cvs/xml-xindice/java/src/org/apache/xindice/client/xmldb/embed/CollectionImpl.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- CollectionImpl.java 11 Dec 2003 11:48:54 -0000 1.24
+++ CollectionImpl.java 12 Dec 2003 01:27:22 -0000 1.25
@@ -353,8 +353,13 @@
return null;
}
+ String parent = collPath.substring(0, collPath.lastIndexOf('/'));
+ if ("".equals(parent)) {
+ parent = "/";
+ }
+
try {
- return new CollectionImpl(db, collPath.substring(0,
collPath.lastIndexOf('/')));
+ return new CollectionImpl(db, parent);
} catch (XMLDBException e) {
if (e.errorCode == ErrorCodes.NO_SUCH_COLLECTION) {
// per getParentCollection contract, return null if no parent
@@ -588,22 +593,22 @@
final Object element = ns.getNextNode();
if (element instanceof Node) {
Node n = (Node) element;
-
+
if (n.getNodeType() == Node.DOCUMENT_NODE) {
n = ((Document) n).getDocumentElement();
}
-
+
if (n instanceof DBNode) {
((DBNode) n).expandSource();
}
-
+
root.appendChild(doc.importNode(n, true));
} else if (element instanceof Boolean || element instanceof
Double) {
root.appendChild(doc.createTextNode(element.toString()));
} else if (element instanceof String) {
root.appendChild(doc.createTextNode((String) element));
} else {
- throw new XindiceRuntimeException("Unknown result type (" +
element.getClass().getName() + "in nodeset");
+ throw new XindiceRuntimeException("Unknown result type (" +
element.getClass().getName() + "in nodeset");
}
count++;