cziegeler 2003/08/11 23:01:40
Modified: src/java/org/apache/cocoon/selection XPathExceptionSelector.java Log: Applying patch for reserving the order from Volker Schmitt. Revision Changes Path 1.6 +13 -14 cocoon-2.1/src/java/org/apache/cocoon/selection/XPathExceptionSelector.java Index: XPathExceptionSelector.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/selection/XPathExceptionSelector.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- XPathExceptionSelector.java 10 Jul 2003 13:16:55 -0000 1.5 +++ XPathExceptionSelector.java 12 Aug 2003 06:01:40 -0000 1.6 @@ -53,12 +53,12 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import java.util.Map.Entry; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.parameters.Parameters; +import org.apache.commons.collections.SequencedHashMap; import org.apache.commons.jxpath.CompiledExpression; import org.apache.commons.jxpath.JXPathContext; @@ -100,20 +100,20 @@ Configuration[] children = conf.getChildren("exception"); Configuration[] xPathChildren; - for (int i = 0; i<children.length; i++) { + for (int i = 0; i < children.length; i++) { // Check if there are XPath-Expressions configured xPathChildren = children[i].getChildren("xpath"); - Map xPathMap = new HashMap(); + Map xPathMap = new SequencedHashMap(11); - for (int j = 0; j<xPathChildren.length; j++) { + for (int j = 0; j < xPathChildren.length; j++) { Configuration xPathChild = xPathChildren[j]; String xPathName = xPathChild.getAttribute("name"); CompiledExpression xPath = JXPathContext.compile(xPathChild.getAttribute("test")); - xPathMap.put(xPath, xPathName); + xPathMap.put(xPathName, xPath); } - if (xPathMap.size()>0) { + if (xPathMap.size() > 0) { // store xpath - config if there is some exception2XPath.put(children[i].getAttribute("name", null), xPathMap); @@ -130,23 +130,22 @@ FindResult selectorContext = (FindResult) super.getSelectorContext(objectModel, parameters); - if (selectorContext!=null) { + if (selectorContext != null) { String exceptionName = selectorContext.getName(); Throwable t = selectorContext.getThrowable(); Map xPathMap = (Map) exception2XPath.get(exceptionName); - if (xPathMap!=null) { + if (xPathMap != null) { // create a context for the thrown exception JXPathContext context = JXPathContext.newContext(t); - for (Iterator iterator = xPathMap.entrySet().iterator(); - iterator.hasNext(); ) { - Entry entry = (Entry) iterator.next(); + for (Iterator iterator = xPathMap.entrySet().iterator(); iterator.hasNext(); ) { + Map.Entry entry = (Map.Entry) iterator.next(); - if (((CompiledExpression) entry.getKey()).getValue(context).equals(Boolean.TRUE)) { + if (((CompiledExpression) entry.getValue()).getValue(context).equals(Boolean.TRUE)) { // set the configured name if the expression is succesfull - selectorContext.setName((String) entry.getValue()); + selectorContext.setName((String) entry.getKey()); return selectorContext; } }