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 2014/06/24 00:51:04 UTC
[2/2] git commit: Found a regression issue with the code review.
Found a regression issue with the code review.
- Also fixed the layout of the variables in the constructor to match the declaration order.
Project: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/commit/13ed39e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/tree/13ed39e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/diff/13ed39e8
Branch: refs/heads/prestonc/benchmark
Commit: 13ed39e8aaad20c0087c3795788babd25a7d542b
Parents: b8fc361
Author: Preston Carman <pr...@apache.org>
Authored: Mon Jun 23 15:50:48 2014 -0700
Committer: Preston Carman <pr...@apache.org>
Committed: Mon Jun 23 15:50:48 2014 -0700
----------------------------------------------------------------------
.../vxquery/xmlparser/SAXContentHandler.java | 50 +++++++++++++-------
1 file changed, 32 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/13ed39e8/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
index 5057aaf..37ce001 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
@@ -80,7 +80,7 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
private final boolean attachTypes;
private final StringBuilder buffer;
private final boolean createNodeIds;
- private int depth = 0;
+ private int depth;
private final ArrayBackedValueStorage docABVS;
private final ArrayBackedValueStorage elementABVS;
private boolean pendingText;
@@ -90,30 +90,39 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
private final ArrayBackedValueStorage tempABVS;
public SAXContentHandler(boolean attachTypes, ITreeNodeIdProvider nodeIdProvider) {
- docABVS = new ArrayBackedValueStorage();
- elementABVS = new ArrayBackedValueStorage();
- resultABVS = new ArrayBackedValueStorage();
- tempABVS = new ArrayBackedValueStorage();
- createNodeIds = nodeIdProvider != null;
- this.attachTypes = attachTypes;
- this.nodeIdProvider = nodeIdProvider;
- docb = new DocumentNodeBuilder();
- tnb = new TextNodeBuilder();
- cnb = new CommentNodeBuilder();
- pinb = new PINodeBuilder();
+ // XML node builders
anb = new AttributeNodeBuilder();
+ cnb = new CommentNodeBuilder();
db = new DictionaryBuilder();
- buffer = new StringBuilder();
+ docb = new DocumentNodeBuilder();
+ pinb = new PINodeBuilder();
+ tnb = new TextNodeBuilder();
enbStack = new ArrayList<ElementNodeBuilder>();
freeENBList = new ArrayList<ElementNodeBuilder>();
- pendingText = false;
- tvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+
+ // Element writing and path step variables
skipping = true;
+ tvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+
+ // Basic tracking and setting variables
+ this.attachTypes = attachTypes;
+ buffer = new StringBuilder();
+ createNodeIds = nodeIdProvider != null;
+ depth = 0;
+ docABVS = new ArrayBackedValueStorage();
+ elementABVS = new ArrayBackedValueStorage();
+ pendingText = false;
+ nodeIdCounter = 0;
+ this.nodeIdProvider = nodeIdProvider;
+ resultABVS = new ArrayBackedValueStorage();
+ tempABVS = new ArrayBackedValueStorage();
}
public SAXContentHandler(boolean attachTypes, ITreeNodeIdProvider nodeIdProvider, ByteBuffer frame,
FrameTupleAppender appender, List<SequenceType> childSequenceTypes) {
this(attachTypes, nodeIdProvider);
+
+ // Frame writing variables
this.frame = frame;
this.appender = appender;
setChildPathSteps(childSequenceTypes);
@@ -170,9 +179,16 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
}
}
+ private void endElementChildPathStep() throws IOException {
+ if (subElement != null && depth <= subElement.length) {
+ subElement[depth - 1] = false;
+ }
+ }
+
@Override
public void endElement(String uri, String localName, String name) throws SAXException {
if (skipping) {
+ --depth;
return;
}
try {
@@ -185,9 +201,7 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
if (nonSkipped) {
writeElement();
}
- if (subElement != null && depth <= subElement.length) {
- subElement[depth - 1] = false;
- }
+ endElementChildPathStep();
} catch (IOException e) {
e.printStackTrace();
throw new SAXException(e);