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