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 2002/06/18 02:01:16 UTC

cvs commit: jakarta-commons/jxpath/src/test/org/apache/commons/jxpath JXPathTestCase.java

dmitri      2002/06/17 17:01:16

  Modified:    jxpath/src/java/org/apache/commons/jxpath/ri/model/beans
                        PropertyOwnerPointer.java
               jxpath/src/java/org/apache/commons/jxpath/ri/axes
                        PredicateContext.java
               jxpath/src/java/org/apache/commons/jxpath/ri/model
                        NodePointer.java
               jxpath/src/test/org/apache/commons/jxpath
                        JXPathTestCase.java
  Log:
  Bug fix: #9912
  
  Revision  Changes    Path
  1.5       +4 -12     jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyOwnerPointer.java
  
  Index: PropertyOwnerPointer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyOwnerPointer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PropertyOwnerPointer.java	8 May 2002 23:05:05 -0000	1.4
  +++ PropertyOwnerPointer.java	18 Jun 2002 00:01:15 -0000	1.5
  @@ -155,14 +155,6 @@
   
       public abstract PropertyPointer getPropertyPointer();
   
  -    /**
  -     * If has an index, returns a pointer to the collection element,
  -     * otherwise returns the pointer itself.
  -     */
  -    public NodePointer getValuePointer() {
  -        return NodePointer.newChildNodePointer(this, getName(), getNodeValue());
  -    }
  -
       public NodePointer createChild(JXPathContext context, QName name, int index, Object value){
           PropertyPointer prop = getPropertyPointer();
           prop.setPropertyName(name.getName());
  
  
  
  1.11      +10 -5     jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/axes/PredicateContext.java
  
  Index: PredicateContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/axes/PredicateContext.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- PredicateContext.java	30 May 2002 01:57:23 -0000	1.10
  +++ PredicateContext.java	18 Jun 2002 00:01:15 -0000	1.11
  @@ -137,10 +137,15 @@
           }
   
           NodePointer parent = parentContext.getCurrentNodePointer();
  +        if (parent == null){
  +            return false;
  +        }
  +        parent = parent.getValuePointer();
           if (!(parent instanceof PropertyOwnerPointer)){
               return false;
           }
  -        dynamicPropertyPointer = ((PropertyOwnerPointer)parent).getPropertyPointer();
  +        dynamicPropertyPointer =
  +            ((PropertyOwnerPointer)parent).getPropertyPointer();
           return true;
       }
   
  
  
  
  1.7       +9 -7      jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/NodePointer.java
  
  Index: NodePointer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/NodePointer.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- NodePointer.java	8 Jun 2002 22:47:24 -0000	1.6
  +++ NodePointer.java	18 Jun 2002 00:01:15 -0000	1.7
  @@ -407,9 +407,11 @@
        * that match the given NodeTest, starting with the specified one.
        */
       public NodeIterator childIterator(
  -        NodeTest test,
  -        boolean reverse,
  -        NodePointer startWith) {
  +                    NodeTest test, boolean reverse, NodePointer startWith) {
  +        NodePointer valuePointer = getValuePointer();
  +        if (valuePointer != null && valuePointer != this){
  +            return valuePointer.childIterator(test, reverse, startWith);
  +        }
           return null;
       }
   
  
  
  
  1.24      +18 -7     jakarta-commons/jxpath/src/test/org/apache/commons/jxpath/JXPathTestCase.java
  
  Index: JXPathTestCase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jxpath/src/test/org/apache/commons/jxpath/JXPathTestCase.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- JXPathTestCase.java	9 Jun 2002 01:58:41 -0000	1.23
  +++ JXPathTestCase.java	18 Jun 2002 00:01:16 -0000	1.24
  @@ -286,7 +286,10 @@
           Map tm = new HashMap();
           tm.put("bar", "zz");
           bean.getMap().put("foo", new Map[]{tm, tm});
  +        bean.getMap().put("biz", tm);
  +
           testGetValue(context, "map/foo[2]/bar/../bar", "zz");
  +        testGetValue(context, "map[@name='biz'][@name='bar']", "zz");
   
           boolean exception = false;
           try {
  @@ -921,9 +924,9 @@
       }
   
       public void testParserReferenceImpl() throws Exception {
  -        if (!enabled){
  -            return;
  -        }
  +//        if (!enabled){
  +//            return;
  +//        }
           System.setProperty(JXPathContextFactory.FACTORY_NAME_PROPERTY,
                   "org.apache.commons.jxpath.ri.JXPathContextFactoryReferenceImpl");
           testParser(JXPathContextFactory.newInstance().newContext(null, bean), false);
  @@ -1201,6 +1204,14 @@
           test("map/Key1", "Value 1"),
           testPath("map/Key1", "/map[@name='Key1']"),
           testPath("map[@name = 'Key"'"'1']", "/map[@name='Key"'"'1']"),
  +        test("map/Key2/name", "Name 6"),
  +        testPath("map/Key2/name", "/map[@name='Key2']/name"),
  +        test("/.[@name='map']/Key2/name", "Name 6"),
  +        testPath("/.[@name='map']/Key2/name", "/map[@name='Key2']/name"),
  +        test("/map[@name='Key2'][@name='name']", "Name 6"),
  +        testPath("/map[@name='Key2'][@name='name']", "/map[@name='Key2']/name"),
  +        test("/.[@name='map'][@name='Key2'][@name='name']", "Name 6"),
  +        testPath("/.[@name='map'][@name='Key2'][@name='name']", "/map[@name='Key2']/name"),
   
           // Standard functions
           test("string(2)", "2"),
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>