You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by dm...@apache.org on 2005/10/29 23:07:30 UTC

svn commit: r329481 - in /jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath: ./ functions/ ri/ ri/axes/ ri/compiler/ ri/model/ ri/model/beans/ ri/model/dom/ ri/model/dynabeans/ ri/model/dynamic/ ri/model/jdom/ util/

Author: dmitri
Date: Sat Oct 29 14:07:19 2005
New Revision: 329481

URL: http://svn.apache.org/viewcvs?rev=329481&view=rev
Log:
Introduced specialized exceptions

Modified:
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathException.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/ConstructorFunction.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/MethodFunction.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/Parser.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/SimplePathInterpreter.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/ExtensionFunction.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/NodePointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/BeanPropertyPointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyOwnerPointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyPointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMNodePointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynabeans/DynaBeanPropertyPointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/jdom/JDOMNodePointer.java
    jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/BasicTypeConverter.java

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathException.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathException.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathException.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathException.java Sat Oct 29 14:07:19 2005
@@ -23,7 +23,8 @@
  */
 
 public class JXPathException extends RuntimeException {
-
+    private static final long serialVersionUID = 4306409701468017766L;
+    
     /** @serial */
     private Throwable exception;
 
@@ -116,4 +117,12 @@
     public Throwable getException() {
         return exception;
     }
+
+    /**
+     * Same as {@link #getException() getException()}
+     */
+    public Throwable getCause() {
+        return exception;
+    }
+
 }

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/ConstructorFunction.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/ConstructorFunction.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/ConstructorFunction.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/ConstructorFunction.java Sat Oct 29 14:07:19 2005
@@ -20,7 +20,7 @@
 
 import org.apache.commons.jxpath.ExpressionContext;
 import org.apache.commons.jxpath.Function;
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidAccessException;
 import org.apache.commons.jxpath.util.TypeUtils;
 
 /**
@@ -66,7 +66,7 @@
             if (ex instanceof InvocationTargetException) {
                 ex = ((InvocationTargetException) ex).getTargetException();
             }
-            throw new JXPathException(
+            throw new JXPathInvalidAccessException(
                 "Cannot invoke constructor " + constructor,
                 ex);
         }

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/MethodFunction.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/MethodFunction.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/MethodFunction.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/functions/MethodFunction.java Sat Oct 29 14:07:19 2005
@@ -21,7 +21,7 @@
 
 import org.apache.commons.jxpath.ExpressionContext;
 import org.apache.commons.jxpath.Function;
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidAccessException;
 import org.apache.commons.jxpath.util.TypeUtils;
 import org.apache.commons.jxpath.util.ValueUtils;
 
@@ -91,7 +91,8 @@
             if (ex instanceof InvocationTargetException) {
                 ex = ((InvocationTargetException) ex).getTargetException();
             }
-            throw new JXPathException("Cannot invoke " + method, ex);
+            throw new JXPathInvalidAccessException("Cannot invoke " + method,
+                    ex);
         }
     }
     

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java Sat Oct 29 14:07:19 2005
@@ -32,6 +32,10 @@
 import org.apache.commons.jxpath.Functions;
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathFunctionNotFoundException;
+import org.apache.commons.jxpath.JXPathInvalidSyntaxException;
+import org.apache.commons.jxpath.JXPathNotFoundException;
+import org.apache.commons.jxpath.JXPathTypeConversionException;
 import org.apache.commons.jxpath.Pointer;
 import org.apache.commons.jxpath.Variables;
 import org.apache.commons.jxpath.ri.axes.InitialContext;
@@ -320,7 +324,8 @@
         if (result == null) {
             if (expr instanceof Path) {
                 if (!isLenient()) {
-                    throw new JXPathException("No value for xpath: " + xpath);
+                    throw new JXPathNotFoundException("No value for xpath: "
+                            + xpath);
                 }
             }
             return null;
@@ -329,7 +334,8 @@
             EvalContext ctx = (EvalContext) result;
             result = ctx.getSingleNodePointer();
             if (!isLenient() && result == null) {
-                throw new JXPathException("No value for xpath: " + xpath);
+                throw new JXPathNotFoundException("No value for xpath: "
+                        + xpath);
             }
         }
         if (result instanceof NodePointer) {
@@ -346,7 +352,8 @@
                 if (parent == null
                     || !parent.isContainer()
                     || !parent.isActual()) {
-                    throw new JXPathException("No value for xpath: " + xpath);
+                    throw new JXPathNotFoundException("No value for xpath: "
+                            + xpath);
                 }
             }
             result = ((NodePointer) result).getValue();
@@ -367,7 +374,7 @@
         Object value = getValue(xpath, expr);
         if (value != null && requiredType != null) {
             if (!TypeUtils.canConvert(value, requiredType)) {
-                throw new JXPathException(
+                throw new JXPathTypeConversionException(
                     "Invalid expression type. '"
                         + xpath
                         + "' returns "
@@ -404,7 +411,8 @@
         }
         if (result instanceof Pointer) {
             if (!isLenient() && !((NodePointer) result).isActual()) {
-                throw new JXPathException("No pointer for xpath: " + xpath);
+                throw new JXPathNotFoundException("No pointer for xpath: "
+                        + xpath);
             }
             return (Pointer) result;
         }
@@ -517,7 +525,7 @@
     private void checkSimplePath(Expression expr) {
         if (!(expr instanceof LocationPath)
             || !((LocationPath) expr).isSimplePath()) {
-            throw new JXPathException(
+            throw new JXPathInvalidSyntaxException(
                 "JXPath can only create a path if it uses exclusively "
                     + "the child:: and attribute:: axes and has "
                     + "no context-dependent predicates");
@@ -647,7 +655,7 @@
             }
             funcCtx = funcCtx.getParentContext();
         }
-        throw new JXPathException(
+        throw new JXPathFunctionNotFoundException(
             "Undefined function: " + functionName.toString());
     }
     

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/Parser.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/Parser.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/Parser.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/Parser.java Sat Oct 29 14:07:19 2005
@@ -17,7 +17,7 @@
 
 import java.io.StringReader;
 
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidSyntaxException;
 import org.apache.commons.jxpath.ri.parser.ParseException;
 import org.apache.commons.jxpath.ri.parser.TokenMgrError;
 import org.apache.commons.jxpath.ri.parser.XPathParser;
@@ -48,7 +48,7 @@
                 expr = parser.parseExpression();
             }
             catch (TokenMgrError e) {
-                throw new JXPathException(
+                throw new JXPathInvalidSyntaxException(
                     "Invalid XPath: '"
                         + addEscapes(expression)
                         + "'. Invalid symbol '"
@@ -57,7 +57,7 @@
                         + describePosition(expression, e.getPosition()));
             }
             catch (ParseException e) {
-                throw new JXPathException(
+                throw new JXPathInvalidSyntaxException(
                     "Invalid XPath: '"
                         + addEscapes(expression)
                         + "'. Syntax error "

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/SimplePathInterpreter.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/SimplePathInterpreter.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/SimplePathInterpreter.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/SimplePathInterpreter.java Sat Oct 29 14:07:19 2005
@@ -661,7 +661,7 @@
             value = ((NodePointer) value).getValue();
         }
         if (value == null) {
-            throw new JXPathException("Predicate value is null");
+            throw new JXPathException("Predicate value is null: " + predicate);
         }
 
         if (value instanceof Number) {

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java Sat Oct 29 14:07:19 2005
@@ -23,6 +23,7 @@
 
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidSyntaxException;
 import org.apache.commons.jxpath.ri.Compiler;
 import org.apache.commons.jxpath.ri.EvalContext;
 import org.apache.commons.jxpath.ri.InfoSetUtil;
@@ -682,7 +683,8 @@
 
     private void assertArgCount(int count) {
         if (getArgumentCount() != count) {
-            throw new JXPathException("Incorrect number of argument: " + this);
+            throw new JXPathInvalidSyntaxException(
+                    "Incorrect number of argument: " + this);
         }
     }
 }

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/ExtensionFunction.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/ExtensionFunction.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/ExtensionFunction.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/ExtensionFunction.java Sat Oct 29 14:07:19 2005
@@ -18,7 +18,7 @@
 import java.util.Arrays;
 
 import org.apache.commons.jxpath.Function;
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathFunctionNotFoundException;
 import org.apache.commons.jxpath.ri.EvalContext;
 import org.apache.commons.jxpath.ri.QName;
 
@@ -83,10 +83,8 @@
         Function function =
             context.getRootContext().getFunction(functionName, parameters);
         if (function == null) {
-            throw new JXPathException(
-                "No such function: "
-                    + functionName
-                    + Arrays.asList(parameters));
+            throw new JXPathFunctionNotFoundException("No such function: "
+                    + functionName + Arrays.asList(parameters));
         }
 
         return function.invoke(context, parameters);

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/NodePointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/NodePointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/NodePointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/NodePointer.java Sat Oct 29 14:07:19 2005
@@ -427,36 +427,21 @@
         int index,
         Object value) 
     {
-        throw new JXPathException(
-            "Cannot create an object for path "
-                + asPath()
-                + "/"
-                + name
-                + "["
-                + (index + 1)
-                + "]"
+        throw new JXPathException("Cannot create an object for path "
+                + asPath() + "/" + name + "[" + (index + 1) + "]"
                 + ", operation is not allowed for this type of node");
     }
 
     /**
-     * Called by a child pointer when it needs to create a parent object
-     * for a non-existent collection element.  It may have to expand the
-     * collection, then create an element object and return a new pointer
-     * describing the newly created element.
+     * Called by a child pointer when it needs to create a parent object for a
+     * non-existent collection element. It may have to expand the collection,
+     * then create an element object and return a new pointer describing the
+     * newly created element.
      */
-    public NodePointer createChild(
-        JXPathContext context,
-        QName name,
-        int index) 
+    public NodePointer createChild(JXPathContext context, QName name, int index)
     {
-        throw new JXPathException(
-            "Cannot create an object for path "
-                + asPath()
-                + "/"
-                + name
-                + "["
-                + (index + 1)
-                + "]"
+        throw new JXPathException("Cannot create an object for path "
+                + asPath() + "/" + name + "[" + (index + 1) + "]"
                 + ", operation is not allowed for this type of node");
     }
     
@@ -464,16 +449,14 @@
      * Called to create a non-existing attribute
      */
     public NodePointer createAttribute(JXPathContext context, QName name) {
-        throw new JXPathException(
-            "Cannot create an attribute for path "
+        throw new JXPathException("Cannot create an attribute for path "
                 + asPath() + "/@" + name
                 + ", operation is not allowed for this type of node");
     }
 
     /**
-     * If the Pointer has a parent, returns the parent's locale;
-     * otherwise returns the locale specified when this Pointer
-     * was created.
+     * If the Pointer has a parent, returns the parent's locale; otherwise
+     * returns the locale specified when this Pointer was created.
      */
     public Locale getLocale() {
         if (locale == null) {
@@ -720,11 +703,8 @@
 
         if (depth1 == 1) {
             throw new JXPathException(
-                "Cannot compare pointers that do not belong to the same tree: '"
-                    + p1
-                    + "' and '"
-                    + p2
-                    + "'");
+                    "Cannot compare pointers that do not belong to the same tree: '"
+                            + p1 + "' and '" + p2 + "'");
         }
         int r =
             compareNodePointers(p1.parent, depth1 - 1, p2.parent, depth2 - 1);

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointer.java Sat Oct 29 14:07:19 2005
@@ -16,9 +16,11 @@
 package org.apache.commons.jxpath.ri.model;
 
 import org.apache.commons.jxpath.AbstractFactory;
+import org.apache.commons.jxpath.JXPathAbstractFactoryException;
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.JXPathException;
 import org.apache.commons.jxpath.JXPathIntrospector;
+import org.apache.commons.jxpath.JXPathInvalidAccessException;
 import org.apache.commons.jxpath.Variables;
 import org.apache.commons.jxpath.ri.QName;
 import org.apache.commons.jxpath.ri.compiler.NodeTest;
@@ -154,11 +156,9 @@
         if (!actual) {
             AbstractFactory factory = getAbstractFactory(context);
             if (!factory.declareVariable(context, name.toString())) {
-                throw new JXPathException(
-                    "Factory cannot define variable '"
-                        + name
-                        + "' for path: "
-                        + asPath());
+                throw new JXPathAbstractFactoryException(
+                        "Factory cannot define variable '" + name
+                                + "' for path: " + asPath());
             }
             findVariables(context);
             // Assert: actual == true
@@ -182,8 +182,8 @@
                     getName().toString(),
                     index);
             if (!success) {
-                throw new JXPathException(
-                    "Factory could not create object path: " + asPath());
+                throw new JXPathAbstractFactoryException(
+                        "Factory could not create object path: " + asPath());
             }
             NodePointer cln = (NodePointer) clone();
             cln.setIndex(index);
@@ -210,7 +210,7 @@
 
         Object collection = getBaseValue();
         if (collection == null) {
-            throw new JXPathException(
+            throw new JXPathAbstractFactoryException(
                 "Factory did not assign a collection to variable '"
                     + name
                     + "' for path: "
@@ -221,7 +221,8 @@
             index = 0;
         }
         else if (index < 0) {
-            throw new JXPathException("Index is less than 1: " + asPath());
+            throw new JXPathInvalidAccessException("Index is less than 1: "
+                    + asPath());
         }
 
         if (index >= getLength()) {
@@ -239,7 +240,7 @@
             }
             else {
                 if (index < 0) {
-                    throw new JXPathException(
+                    throw new JXPathInvalidAccessException(
                         "Index is less than 1: " + asPath());
                 }
 

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/BeanPropertyPointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/BeanPropertyPointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/BeanPropertyPointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/BeanPropertyPointer.java Sat Oct 29 14:07:19 2005
@@ -20,7 +20,7 @@
 
 import org.apache.commons.jxpath.JXPathBeanInfo;
 import org.apache.commons.jxpath.JXPathContext;
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidAccessException;
 import org.apache.commons.jxpath.ri.model.NodePointer;
 import org.apache.commons.jxpath.util.ValueUtils;
 
@@ -204,7 +204,7 @@
     public void setValue(Object value) {
         PropertyDescriptor pd = getPropertyDescriptor();
         if (pd == null) {
-            throw new JXPathException(
+            throw new JXPathInvalidAccessException(
                 "Cannot set property: " + asPath() + " - no such property");
         }
 

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java Sat Oct 29 14:07:19 2005
@@ -16,7 +16,7 @@
 package org.apache.commons.jxpath.ri.model.beans;
 
 import org.apache.commons.jxpath.JXPathContext;
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidAccessException;
 import org.apache.commons.jxpath.ri.QName;
 import org.apache.commons.jxpath.ri.model.NodePointer;
 
@@ -76,7 +76,7 @@
 
     public void setValue(Object value) {
         if (parent == null || parent.isContainer()) {
-            throw new JXPathException(
+            throw new JXPathInvalidAccessException(
                 "Cannot set property "
                     + asPath()
                     + ", the target object is null");
@@ -92,7 +92,7 @@
             propertyPointer.setValue(value);
         }
         else {
-            throw new JXPathException(
+            throw new JXPathInvalidAccessException(
                 "Cannot set property "
                     + asPath()
                     + ", path does not match a changeable location");

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyOwnerPointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyOwnerPointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyOwnerPointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyOwnerPointer.java Sat Oct 29 14:07:19 2005
@@ -17,7 +17,7 @@
 
 import java.util.Locale;
 
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidAccessException;
 import org.apache.commons.jxpath.ri.Compiler;
 import org.apache.commons.jxpath.ri.QName;
 import org.apache.commons.jxpath.ri.compiler.NodeNameTest;
@@ -128,7 +128,7 @@
                         + "some other object's property");
             }
             else {
-                throw new JXPathException(
+                throw new JXPathInvalidAccessException(
                     "The specified collection element does not exist: " + this);
             }
         }

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyPointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyPointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyPointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyPointer.java Sat Oct 29 14:07:19 2005
@@ -16,6 +16,7 @@
 package org.apache.commons.jxpath.ri.model.beans;
 
 import org.apache.commons.jxpath.AbstractFactory;
+import org.apache.commons.jxpath.JXPathAbstractFactoryException;
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.JXPathException;
 import org.apache.commons.jxpath.JXPathIntrospector;
@@ -142,11 +143,8 @@
                     getPropertyName(),
                     inx);
             if (!success) {
-                throw new JXPathException(
-                    "Factory "
-                        + factory
-                        + " could not create an object for path: "
-                        + asPath());
+                throw new JXPathAbstractFactoryException("Factory " + factory
+                        + " could not create an object for path: " + asPath());
             }
         }
         return this;

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMNodePointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMNodePointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMNodePointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMNodePointer.java Sat Oct 29 14:07:19 2005
@@ -20,6 +20,7 @@
 import java.util.Map;
 
 import org.apache.commons.jxpath.AbstractFactory;
+import org.apache.commons.jxpath.JXPathAbstractFactoryException;
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.JXPathException;
 import org.apache.commons.jxpath.Pointer;
@@ -405,14 +406,9 @@
                 return it.getNodePointer();
             }
         }
-        throw new JXPathException(
-            "Factory could not create a child node for path: "
-                + asPath()
-                + "/"
-                + name
-                + "["
-                + (index + 1)
-                + "]");
+        throw new JXPathAbstractFactoryException(
+                "Factory could not create a child node for path: " + asPath()
+                        + "/" + name + "[" + (index + 1) + "]");
     }
 
     public NodePointer createChild(JXPathContext context, 

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynabeans/DynaBeanPropertyPointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynabeans/DynaBeanPropertyPointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynabeans/DynaBeanPropertyPointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynabeans/DynaBeanPropertyPointer.java Sat Oct 29 14:07:19 2005
@@ -20,7 +20,7 @@
 import org.apache.commons.beanutils.DynaBean;
 import org.apache.commons.beanutils.DynaClass;
 import org.apache.commons.beanutils.DynaProperty;
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathTypeConversionException;
 import org.apache.commons.jxpath.ri.model.NodePointer;
 import org.apache.commons.jxpath.ri.model.beans.PropertyPointer;
 import org.apache.commons.jxpath.util.TypeUtils;
@@ -254,12 +254,10 @@
             return TypeUtils.convert(value, type);
         }
         catch (Exception ex) {
-            throw new JXPathException(
-                "Cannot convert value of class "
-                    + (value == null ? "null" : value.getClass().getName())
-                    + " to type "
-                    + type,
-                ex);
+            String string = value == null ? "null" : value.getClass().getName();
+            throw new JXPathTypeConversionException(
+                    "Cannot convert value of class " + string + " to type "
+                            + type, ex);
         }
     }
 }

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java Sat Oct 29 14:07:19 2005
@@ -20,8 +20,10 @@
 
 import org.apache.commons.jxpath.AbstractFactory;
 import org.apache.commons.jxpath.DynamicPropertyHandler;
+import org.apache.commons.jxpath.JXPathAbstractFactoryException;
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidAccessException;
 import org.apache.commons.jxpath.ri.model.NodePointer;
 import org.apache.commons.jxpath.ri.model.beans.PropertyPointer;
 import org.apache.commons.jxpath.util.ValueUtils;
@@ -33,6 +35,9 @@
  * @version $Revision$ $Date$
  */
 public class DynamicPropertyPointer extends PropertyPointer {
+
+    private static final long serialVersionUID = -5720585681149150822L;
+    
     private DynamicPropertyHandler handler;
     private String name;
     private String[] names;
@@ -212,7 +217,7 @@
                     getPropertyName(),
                     0);
             if (!success) {
-                throw new JXPathException(
+                throw new JXPathAbstractFactoryException(
                     "Factory could not create an object for path: " + asPath());
             }
             collection = getBaseValue();
@@ -220,9 +225,10 @@
 
         if (index != WHOLE_COLLECTION) {
             if (index < 0) {
-                throw new JXPathException("Index is less than 1: " + asPath());
+                throw new JXPathInvalidAccessException("Index is less than 1: "
+                        + asPath());
             }
-    
+
             if (index >= getLength()) {
                 collection = ValueUtils.expandCollection(collection, index + 1);
                 handler.setProperty(getBean(), getPropertyName(), collection);

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/jdom/JDOMNodePointer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/jdom/JDOMNodePointer.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/jdom/JDOMNodePointer.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/jdom/JDOMNodePointer.java Sat Oct 29 14:07:19 2005
@@ -19,6 +19,7 @@
 import java.util.Locale;
 
 import org.apache.commons.jxpath.AbstractFactory;
+import org.apache.commons.jxpath.JXPathAbstractFactoryException;
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.JXPathException;
 import org.apache.commons.jxpath.ri.Compiler;
@@ -523,15 +524,9 @@
                 return it.getNodePointer();
             }
         }
-        throw new JXPathException(
-            "Factory could not create "
-                + "a child node for path: "
-                + asPath()
-                + "/"
-                + name
-                + "["
-                + (index + 1)
-                + "]");
+        throw new JXPathAbstractFactoryException("Factory could not create "
+                + "a child node for path: " + asPath() + "/" + name + "["
+                + (index + 1) + "]");
     }
 
     public NodePointer createChild(

Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/BasicTypeConverter.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/BasicTypeConverter.java?rev=329481&r1=329480&r2=329481&view=diff
==============================================================================
--- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/BasicTypeConverter.java (original)
+++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/BasicTypeConverter.java Sat Oct 29 14:07:19 2005
@@ -27,7 +27,8 @@
 
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.Converter;
-import org.apache.commons.jxpath.JXPathException;
+import org.apache.commons.jxpath.JXPathInvalidAccessException;
+import org.apache.commons.jxpath.JXPathTypeConversionException;
 import org.apache.commons.jxpath.NodeSet;
 import org.apache.commons.jxpath.Pointer;
 
@@ -299,8 +300,8 @@
             return converter.convert(toType, object);
         }
 
-        throw new RuntimeException(
-            "Cannot convert " + object.getClass() + " to " + toType);
+        throw new JXPathTypeConversionException("Cannot convert "
+                + object.getClass() + " to " + toType);
     }
 
     protected Object convertNullToPrimitive(Class toType) {
@@ -404,9 +405,8 @@
                 return (Collection) type.newInstance();
             }
             catch (Exception ex) {
-                throw new JXPathException(
-                    "Cannot create collection of type: " + type,
-                    ex);
+                throw new JXPathInvalidAccessException(
+                        "Cannot create collection of type: " + type, ex);
             }
         }
 
@@ -416,7 +416,8 @@
         if (type == Set.class) {
             return new HashSet();
         }
-        throw new RuntimeException("Cannot create collection of type: " + type);
+        throw new JXPathInvalidAccessException(
+                "Cannot create collection of type: " + type);
     }
     
     protected Collection unmodifiableCollection(Collection collection) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org