kevinross 2003/07/14 14:04:08
Modified: java/src/org/apache/xindice/client/xmldb/xmlrpc CollectionImpl.java Log: propagate XMLDBExceptions that are encountered instead of endlessly wrapping them with 'unknown' errors. Revision Changes Path 1.23 +51 -2 xml-xindice/java/src/org/apache/xindice/client/xmldb/xmlrpc/CollectionImpl.java Index: CollectionImpl.java =================================================================== RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/client/xmldb/xmlrpc/CollectionImpl.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- CollectionImpl.java 10 Jul 2003 21:45:17 -0000 1.22 +++ CollectionImpl.java 14 Jul 2003 21:04:07 -0000 1.23 @@ -91,6 +91,9 @@ import org.xmldb.api.base.XMLDBException; import org.xmldb.api.modules.XMLResource; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * Implementation of XML:DB's <code>Collection</code> interface using * XML-RPC to interact with database server @@ -99,6 +102,9 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Kimbro Staken</a> */ public class CollectionImpl extends XindiceCollection { + + private static Log log = LogFactory.getLog("org.apache.xindice.client.xmldb.xmlrpc"); + /* path to XML-RPC service on database */ private static String XINDICE_SERVICE_LOCATION = "/Xindice/"; @@ -182,7 +188,8 @@ if (!serviceLocation.endsWith("/")) { serviceLocation = serviceLocation + "/"; } - System.out.println("serviceLocation=<" + serviceLocation + ">"); + + log.debug("serviceLocation=<" + serviceLocation + ">"); String xmlrpcURI = "http://" + hostPort + serviceLocation; try { @@ -203,6 +210,10 @@ client = null; throw new XMLDBException(ErrorCodes.INVALID_URI, e); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { client = null; @@ -291,6 +302,10 @@ params.put(RPCDefaultMessage.COLLECTION, collPath); return ((Integer) runRemoteCommand("GetDocumentCount", params)).intValue(); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e); @@ -334,6 +349,10 @@ ((XMLResourceImpl) res).setId(name); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e); @@ -375,10 +394,12 @@ return new CollectionImpl(hostPort, serviceLocation, xmlrpcDriver, collPath + "/" + name); } catch (XMLDBException e) { + if (e.errorCode == ErrorCodes.NO_SUCH_COLLECTION) { // per getChildCollection contract, return null if not found return null; } + throw e; } } @@ -402,6 +423,10 @@ params.put(RPCDefaultMessage.COLLECTION, collPath); return (String) runRemoteCommand("CreateNewOID", params); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e); @@ -487,6 +512,10 @@ params.put(RPCDefaultMessage.NAME, res.getId()); runRemoteCommand("RemoveDocument", params); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { throw new XMLDBException(ErrorCodes.NO_SUCH_RESOURCE, e); } @@ -516,6 +545,10 @@ return (String[]) list.toArray(new String[list.size()]); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e); @@ -544,6 +577,10 @@ return result.intValue(); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e); } @@ -571,6 +608,10 @@ return (String[]) list.toArray(new String[list.size()]); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e); @@ -639,6 +680,10 @@ return getChildCollection(name); } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. + } catch (Exception e) { throw new XMLDBException(ErrorCodes.INVALID_COLLECTION, "Cannot create child collection", e); } @@ -659,6 +704,10 @@ throw new XMLDBException(ErrorCodes.INVALID_COLLECTION, "Cannot remove child collection"); } + } + catch(XMLDBException x){ + + throw x; // propagate any xmldb exception. } catch (Exception e) {