You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2013/09/06 01:04:07 UTC

svn commit: r1520456 - /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/

Author: prestonc
Date: Thu Sep  5 23:04:06 2013
New Revision: 1520456

URL: http://svn.apache.org/r1520456
Log:
Found an error in the value returned when an empty sequence result was expected. The function was returning a tagged value pointable for an empty sequence instead of the value of an empty sequence.

Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java Thu Sep  5 23:04:06 2013
@@ -54,39 +54,40 @@ public abstract class AbstractDescendant
     protected void searchSubtree(TaggedValuePointable nodePointable) throws SystemException {
         try {
             SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
+            boolean search = false;
 
             // Find all child element to search.
             switch (nodePointable.getTag()) {
                 case ValueTag.DOCUMENT_NODE_TAG:
                     nodePointable.getValue(dnp);
                     dnp.getContent(ntp, seqp);
+                    search = true;
                     break;
 
                 case ValueTag.ELEMENT_NODE_TAG:
                     nodePointable.getValue(enp);
                     if (enp.childrenChunkExists()) {
                         enp.getChildrenSequence(ntp, seqp);
+                        search = true;
                     }
                     break;
-
-                default:
-                    XDMConstants.setEmptySequence(seqp);
-                    break;
             }
 
-            int seqSize = seqp.getEntryCount();
-            for (int i = 0; i < seqSize; ++i) {
-                seqp.getEntry(i, itemTvp);
-                // Only search element nodes.
-                if (itemTvp.getTag() == ValueTag.ELEMENT_NODE_TAG) {
-                    if (matches()) {
-                        appendNodeToResult();
+            if (search) {
+                int seqSize = seqp.getEntryCount();
+                for (int i = 0; i < seqSize; ++i) {
+                    seqp.getEntry(i, itemTvp);
+                    // Only search element nodes.
+                    if (itemTvp.getTag() == ValueTag.ELEMENT_NODE_TAG) {
+                        if (matches()) {
+                            appendNodeToResult();
+                        }
+                        // Now check this elements children.
+                        TaggedValuePointable tvpTemp = (TaggedValuePointable) TaggedValuePointable.FACTORY
+                                .createPointable();
+                        tvpTemp.set(itemTvp);
+                        searchSubtree(tvpTemp);
                     }
-                    // Now check this elements children.
-                    TaggedValuePointable tvpTemp = (TaggedValuePointable) TaggedValuePointable.FACTORY
-                            .createPointable();
-                    tvpTemp.set(itemTvp);
-                    searchSubtree(tvpTemp);
                 }
             }
         } catch (IOException e) {

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java Thu Sep  5 23:04:06 2013
@@ -16,14 +16,12 @@
  */
 package org.apache.vxquery.runtime.functions.step;
 
-import java.io.DataOutput;
 import java.io.IOException;
 
 import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
 import org.apache.vxquery.datamodel.accessors.nodes.NodeTreePointable;
 import org.apache.vxquery.datamodel.builders.nodes.NodeSubTreeBuilder;
 import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
-import org.apache.vxquery.datamodel.values.ValueTag;
 import org.apache.vxquery.exceptions.SystemException;
 import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
 import org.apache.vxquery.runtime.functions.step.NodeTestFilter.INodeFilter;

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java Thu Sep  5 23:04:06 2013
@@ -49,6 +49,8 @@ public class AttributePathStepScalarEval
                     return;
                 }
         }
-        XDMConstants.setEmptySequence(seqp);
+        TaggedValuePointable seqTvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+        XDMConstants.setEmptySequence(seqTvp);
+        seqTvp.getValue(seqp);
     }
 }
\ No newline at end of file

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java Thu Sep  5 23:04:06 2013
@@ -58,6 +58,8 @@ public class ChildPathStepScalarEvaluato
                     return;
                 }
         }
-        XDMConstants.setEmptySequence(seqp);
+        TaggedValuePointable seqTvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+        XDMConstants.setEmptySequence(seqTvp);
+        seqTvp.getValue(seqp);
     }
 }
\ No newline at end of file

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java Thu Sep  5 23:04:06 2013
@@ -140,7 +140,9 @@ public class ChildPathStepUnnestingEvalu
                             return;
                         }
                 }
-                XDMConstants.setEmptySequence(seqp);
+                TaggedValuePointable seqTvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+                XDMConstants.setEmptySequence(seqTvp);
+                seqTvp.getValue(seqp);
             }
 
         };