Xikui Wang has submitted this change and it was merged. Change subject: [NO ISSUE][FUN] Bug fixes in JObjectAccessors ......................................................................
[NO ISSUE][FUN] Bug fixes in JObjectAccessors - user model changes: no - storage format changes: no - interface changes: no Details: 1. Align the deserialization start of several datatypes. 2. Assign the open fields in JRecord properly in JRecordAccessor. Change-Id: I131f1bf70f01cd763cfd008abcba704e757c864e Reviewed-on: https://asterix-gerrit.ics.uci.edu/2799 Sonar-Qube: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Reviewed-by: abdullah alamoudi <[email protected]> --- M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java 1 file changed, 15 insertions(+), 15 deletions(-) Approvals: Anon. E. Moose #1000171: abdullah alamoudi: Looks good to me, approved Jenkins: Verified; No violations found; ; Verified diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java index 0a706d1..2678a8d 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java @@ -306,7 +306,7 @@ throws HyracksDataException { byte[] b = pointable.getByteArray(); int s = pointable.getStartOffset(); - Boolean v = ABooleanSerializerDeserializer.getBoolean(b, s); + Boolean v = ABooleanSerializerDeserializer.getBoolean(b, s + 1); IJObject jObject = objectPool.allocate(BuiltinType.ABOOLEAN); ((JBoolean) jObject).setValue(v); return jObject; @@ -320,7 +320,7 @@ throws HyracksDataException { byte[] b = pointable.getByteArray(); int s = pointable.getStartOffset(); - int v = ADateSerializerDeserializer.getChronon(b, s); + int v = ADateSerializerDeserializer.getChronon(b, s + 1); IJObject jObject = objectPool.allocate(BuiltinType.ADATE); ((JDate) jObject).setValue(v); return jObject; @@ -334,7 +334,7 @@ throws HyracksDataException { byte[] b = pointable.getByteArray(); int s = pointable.getStartOffset(); - long v = ADateTimeSerializerDeserializer.getChronon(b, s); + long v = ADateTimeSerializerDeserializer.getChronon(b, s + 1); IJObject jObject = objectPool.allocate(BuiltinType.ADATETIME); ((JDateTime) jObject).setValue(v); return jObject; @@ -350,7 +350,7 @@ int s = pointable.getStartOffset(); int l = pointable.getLength(); ADuration duration = ADurationSerializerDeserializer.INSTANCE - .deserialize(new DataInputStream(new ByteArrayInputStream(b, s, l))); + .deserialize(new DataInputStream(new ByteArrayInputStream(b, s + 1, l - 1))); IJObject jObject = objectPool.allocate(BuiltinType.ADURATION); ((JDuration) jObject).setValue(duration.getMonths(), duration.getMilliseconds()); return jObject; @@ -364,7 +364,7 @@ throws HyracksDataException { byte[] b = pointable.getByteArray(); int s = pointable.getStartOffset(); - int v = ATimeSerializerDeserializer.getChronon(b, s); + int v = ATimeSerializerDeserializer.getChronon(b, s + 1); IJObject jObject = objectPool.allocate(BuiltinType.ATIME); ((JTime) jObject).setValue(v); return jObject; @@ -378,9 +378,9 @@ throws HyracksDataException { byte[] b = pointable.getByteArray(); int s = pointable.getStartOffset(); - long intervalStart = AIntervalSerializerDeserializer.getIntervalStart(b, s); - long intervalEnd = AIntervalSerializerDeserializer.getIntervalEnd(b, s); - byte intervalType = AIntervalSerializerDeserializer.getIntervalTimeType(b, s); + long intervalStart = AIntervalSerializerDeserializer.getIntervalStart(b, s + 1); + long intervalEnd = AIntervalSerializerDeserializer.getIntervalEnd(b, s + 1); + byte intervalType = AIntervalSerializerDeserializer.getIntervalTimeType(b, s + 1); IJObject jObject = objectPool.allocate(BuiltinType.AINTERVAL); ((JInterval) jObject).setValue(intervalStart, intervalEnd, intervalType); return jObject; @@ -398,7 +398,7 @@ int s = pointable.getStartOffset(); int l = pointable.getLength(); ACircle v = ACircleSerializerDeserializer.INSTANCE - .deserialize(new DataInputStream(new ByteArrayInputStream(b, s, l))); + .deserialize(new DataInputStream(new ByteArrayInputStream(b, s + 1, l - 1))); JPoint jpoint = (JPoint) objectPool.allocate(BuiltinType.APOINT); jpoint.setValue(v.getP().getX(), v.getP().getY()); IJObject jObject = objectPool.allocate(BuiltinType.ACIRCLE); @@ -416,7 +416,7 @@ int s = pointable.getStartOffset(); int l = pointable.getLength(); APoint v = APointSerializerDeserializer.INSTANCE - .deserialize(new DataInputStream(new ByteArrayInputStream(b, s, l))); + .deserialize(new DataInputStream(new ByteArrayInputStream(b, s + 1, l - 1))); JPoint jObject = (JPoint) objectPool.allocate(BuiltinType.APOINT); jObject.setValue(v.getX(), v.getY()); return jObject; @@ -432,7 +432,7 @@ int s = pointable.getStartOffset(); int l = pointable.getLength(); APoint3D v = APoint3DSerializerDeserializer.INSTANCE - .deserialize(new DataInputStream(new ByteArrayInputStream(b, s, l))); + .deserialize(new DataInputStream(new ByteArrayInputStream(b, s + 1, l - 1))); JPoint3D jObject = (JPoint3D) objectPool.allocate(BuiltinType.APOINT3D); jObject.setValue(v.getX(), v.getY(), v.getZ()); return jObject; @@ -448,7 +448,7 @@ int s = pointable.getStartOffset(); int l = pointable.getLength(); ALine v = ALineSerializerDeserializer.INSTANCE - .deserialize(new DataInputStream(new ByteArrayInputStream(b, s, l))); + .deserialize(new DataInputStream(new ByteArrayInputStream(b, s + 1, l - 1))); JLine jObject = (JLine) objectPool.allocate(BuiltinType.ALINE); jObject.setValue(v.getP1(), v.getP2()); return jObject; @@ -464,7 +464,7 @@ int s = pointable.getStartOffset(); int l = pointable.getLength(); APolygon v = APolygonSerializerDeserializer.INSTANCE - .deserialize(new DataInputStream(new ByteArrayInputStream(b, s, l))); + .deserialize(new DataInputStream(new ByteArrayInputStream(b, s + 1, l - 1))); JPolygon jObject = (JPolygon) objectPool.allocate(BuiltinType.APOLYGON); jObject.setValue(v.getPoints()); return jObject; @@ -480,7 +480,7 @@ int s = pointable.getStartOffset(); int l = pointable.getLength(); ARectangle v = ARectangleSerializerDeserializer.INSTANCE - .deserialize(new DataInputStream(new ByteArrayInputStream(b, s, l))); + .deserialize(new DataInputStream(new ByteArrayInputStream(b, s + 1, l - 1))); JRectangle jObject = (JRectangle) objectPool.allocate(BuiltinType.ARECTANGLE); jObject.setValue(v.getP1(), v.getP2()); return jObject; @@ -498,8 +498,8 @@ public JRecordAccessor(ARecordType recordType, IObjectPool<IJObject, IAType> objectPool) { this.typeInfo = new TypeInfo(objectPool, null, null); this.jObjects = new IJObject[recordType.getFieldNames().length]; - this.jRecord = new JRecord(recordType, jObjects); this.openFields = new LinkedHashMap<>(); + this.jRecord = new JRecord(recordType, jObjects, openFields); } @Override -- To view, visit https://asterix-gerrit.ics.uci.edu/2799 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I131f1bf70f01cd763cfd008abcba704e757c864e Gerrit-PatchSet: 6 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Xikui Wang <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: Xikui Wang <[email protected]> Gerrit-Reviewer: abdullah alamoudi <[email protected]>
