Ali Alsuliman has submitted this change and it was merged.

Change subject: [NO ISSUE][RT] Fix list builder to re use object
......................................................................


[NO ISSUE][RT] Fix list builder to re use object

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
When the list builder is reset, the offsets byte array
is set to null which causes it to be created again
when writing the list out. Avoid setting it to null in
reset.

Change-Id: I43bdfa514d9c78cfb7dfda009d0ea678ad846eba
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3287
Sonar-Qube: Jenkins <[email protected]>
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Contrib: Jenkins <[email protected]>
Reviewed-by: Michael Blow <[email protected]>
---
M 
asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java
1 file changed, 8 insertions(+), 11 deletions(-)

Approvals:
  Jenkins: Verified; No violations found; ; Verified
  Michael Blow: Looks good to me, approved



diff --git 
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java
 
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java
index 35f6170..04e3e67 100644
--- 
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java
+++ 
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java
@@ -32,16 +32,15 @@
 import org.apache.hyracks.storage.common.arraylist.IntArrayList;
 
 public abstract class AbstractListBuilder implements IAsterixListBuilder {
-    protected final GrowableArray outputStorage;
-    protected final DataOutputStream outputStream;
-    protected final IntArrayList offsets;
-    protected int metadataInfoSize;
-    protected byte[] offsetArray;
-    protected int offsetPosition;
-    protected int headerSize;
-    protected ATypeTag itemTypeTag;
     protected final ATypeTag listType;
-
+    protected final GrowableArray outputStorage;
+    protected final IntArrayList offsets;
+    private final DataOutputStream outputStream;
+    private int metadataInfoSize;
+    private byte[] offsetArray;
+    private int offsetPosition;
+    private int headerSize;
+    private ATypeTag itemTypeTag;
     protected boolean fixedSize = false;
     protected int numberOfItems;
 
@@ -58,7 +57,6 @@
     @Override
     public void reset(AbstractCollectionType listType) {
         this.outputStorage.reset();
-        this.offsetArray = null;
         this.offsets.clear();
         this.offsetPosition = 0;
         this.numberOfItems = 0;
@@ -79,7 +77,6 @@
             byte[] data = item.getByteArray();
             int start = item.getStartOffset();
             int len = item.getLength();
-
             byte serializedTypeTag = data[start];
             if (!fixedSize && ((serializedTypeTag != 
ATypeTag.SERIALIZED_NULL_TYPE_TAG
                     && serializedTypeTag != 
ATypeTag.SERIALIZED_MISSING_TYPE_TAG) || itemTypeTag == ATypeTag.ANY)) {

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/3287
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I43bdfa514d9c78cfb7dfda009d0ea678ad846eba
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <[email protected]>
Gerrit-Reviewer: Ali Alsuliman <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Michael Blow <[email protected]>

Reply via email to