github-advanced-security[bot] commented on code in PR #2732:
URL: https://github.com/apache/avro/pull/2732#discussion_r1486354435
##########
lang/java/avro/src/test/java/org/apache/avro/specific/TestRecordWithMapsAndArrays.java:
##########
@@ -429,77 +583,193 @@
out.writeMapStart();
out.setItemCount(size1);
long actualSize1 = 0;
- for (java.util.Map.Entry<java.lang.String, java.lang.Long> e1 :
this.map.entrySet()) {
+ for (java.util.Map.Entry<String, Long> e1 : this.map.entrySet()) {
actualSize1++;
out.startItem();
out.writeString(e1.getKey());
- java.lang.Long v1 = e1.getValue();
+ Long v1 = e1.getValue();
out.writeLong(v1);
}
out.writeMapEnd();
if (actualSize1 != size1)
throw new java.util.ConcurrentModificationException(
"Map-size written was " + size1 + ", but element count was " +
actualSize1 + ".");
+ long size2 = this.nested_arr.size();
+ out.writeArrayStart();
+ out.setItemCount(size2);
+ long actualSize2 = 0;
+ for (java.util.List<String> e2 : this.nested_arr) {
+ actualSize2++;
+ out.startItem();
+ long size3 = e2.size();
+ out.writeArrayStart();
+ out.setItemCount(size3);
+ long actualSize3 = 0;
+ for (String e3 : e2) {
+ actualSize3++;
+ out.startItem();
+ out.writeString(e3);
+ }
+ out.writeArrayEnd();
+ if (actualSize3 != size3)
+ throw new java.util.ConcurrentModificationException(
+ "Array-size written was " + size3 + ", but element count was " +
actualSize3 + ".");
+ }
+ out.writeArrayEnd();
+ if (actualSize2 != size2)
+ throw new java.util.ConcurrentModificationException(
+ "Array-size written was " + size2 + ", but element count was " +
actualSize2 + ".");
+
+ long size4 = this.nested_map.size();
+ out.writeMapStart();
+ out.setItemCount(size4);
+ long actualSize4 = 0;
+ for (java.util.Map.Entry<String, java.util.Map<String, Long>> e4 :
this.nested_map.entrySet()) {
+ actualSize4++;
+ out.startItem();
+ out.writeString(e4.getKey());
+ java.util.Map<String, Long> v4 = e4.getValue();
+ long size5 = v4.size();
+ out.writeMapStart();
+ out.setItemCount(size5);
+ long actualSize5 = 0;
+ for (java.util.Map.Entry<String, Long> e5 : v4.entrySet()) {
+ actualSize5++;
+ out.startItem();
+ out.writeString(e5.getKey());
+ Long v5 = e5.getValue();
+ out.writeLong(v5);
+ }
+ out.writeMapEnd();
+ if (actualSize5 != size5)
+ throw new java.util.ConcurrentModificationException(
+ "Map-size written was " + size5 + ", but element count was " +
actualSize5 + ".");
+ }
+ out.writeMapEnd();
+ if (actualSize4 != size4)
+ throw new java.util.ConcurrentModificationException(
+ "Map-size written was " + size4 + ", but element count was " +
actualSize4 + ".");
+
}
@Override
public void customDecode(org.apache.avro.io.ResolvingDecoder in) throws
java.io.IOException {
org.apache.avro.Schema.Field[] fieldOrder = in.readFieldOrderIfDiff();
if (fieldOrder == null) {
long size0 = in.readArrayStart();
- java.util.List<java.lang.String> a0 = this.arr;
+ java.util.List<String> a0 = this.arr;
if (a0 == null) {
- a0 = new SpecificData.Array<java.lang.String>((int) size0,
SCHEMA$.getField("arr").schema());
+ a0 = new SpecificData.Array<String>((int) size0,
SCHEMA$.getField("arr").schema());
this.arr = a0;
} else
a0.clear();
- SpecificData.Array<java.lang.String> ga0 = (a0 instanceof
SpecificData.Array
- ? (SpecificData.Array<java.lang.String>) a0
- : null);
+ SpecificData.Array<String> ga0 = (a0 instanceof SpecificData.Array ?
(SpecificData.Array<String>) a0 : null);
Review Comment:
## Cast from abstract to concrete collection
[List<String>](1) is cast to the concrete type [Array<String>](2), losing
abstraction.
[Show more
details](https://github.com/apache/avro/security/code-scanning/3178)
##########
lang/java/avro/src/test/java/org/apache/avro/specific/TestRecordWithMapsAndArrays.java:
##########
@@ -429,77 +583,193 @@
out.writeMapStart();
out.setItemCount(size1);
long actualSize1 = 0;
- for (java.util.Map.Entry<java.lang.String, java.lang.Long> e1 :
this.map.entrySet()) {
+ for (java.util.Map.Entry<String, Long> e1 : this.map.entrySet()) {
actualSize1++;
out.startItem();
out.writeString(e1.getKey());
- java.lang.Long v1 = e1.getValue();
+ Long v1 = e1.getValue();
out.writeLong(v1);
}
out.writeMapEnd();
if (actualSize1 != size1)
throw new java.util.ConcurrentModificationException(
"Map-size written was " + size1 + ", but element count was " +
actualSize1 + ".");
+ long size2 = this.nested_arr.size();
+ out.writeArrayStart();
+ out.setItemCount(size2);
+ long actualSize2 = 0;
+ for (java.util.List<String> e2 : this.nested_arr) {
+ actualSize2++;
+ out.startItem();
+ long size3 = e2.size();
+ out.writeArrayStart();
+ out.setItemCount(size3);
+ long actualSize3 = 0;
+ for (String e3 : e2) {
+ actualSize3++;
+ out.startItem();
+ out.writeString(e3);
+ }
+ out.writeArrayEnd();
+ if (actualSize3 != size3)
+ throw new java.util.ConcurrentModificationException(
+ "Array-size written was " + size3 + ", but element count was " +
actualSize3 + ".");
+ }
+ out.writeArrayEnd();
+ if (actualSize2 != size2)
+ throw new java.util.ConcurrentModificationException(
+ "Array-size written was " + size2 + ", but element count was " +
actualSize2 + ".");
+
+ long size4 = this.nested_map.size();
+ out.writeMapStart();
+ out.setItemCount(size4);
+ long actualSize4 = 0;
+ for (java.util.Map.Entry<String, java.util.Map<String, Long>> e4 :
this.nested_map.entrySet()) {
+ actualSize4++;
+ out.startItem();
+ out.writeString(e4.getKey());
+ java.util.Map<String, Long> v4 = e4.getValue();
+ long size5 = v4.size();
+ out.writeMapStart();
+ out.setItemCount(size5);
+ long actualSize5 = 0;
+ for (java.util.Map.Entry<String, Long> e5 : v4.entrySet()) {
+ actualSize5++;
+ out.startItem();
+ out.writeString(e5.getKey());
+ Long v5 = e5.getValue();
+ out.writeLong(v5);
+ }
+ out.writeMapEnd();
+ if (actualSize5 != size5)
+ throw new java.util.ConcurrentModificationException(
+ "Map-size written was " + size5 + ", but element count was " +
actualSize5 + ".");
+ }
+ out.writeMapEnd();
+ if (actualSize4 != size4)
+ throw new java.util.ConcurrentModificationException(
+ "Map-size written was " + size4 + ", but element count was " +
actualSize4 + ".");
+
}
@Override
public void customDecode(org.apache.avro.io.ResolvingDecoder in) throws
java.io.IOException {
org.apache.avro.Schema.Field[] fieldOrder = in.readFieldOrderIfDiff();
if (fieldOrder == null) {
long size0 = in.readArrayStart();
- java.util.List<java.lang.String> a0 = this.arr;
+ java.util.List<String> a0 = this.arr;
if (a0 == null) {
- a0 = new SpecificData.Array<java.lang.String>((int) size0,
SCHEMA$.getField("arr").schema());
+ a0 = new SpecificData.Array<String>((int) size0,
SCHEMA$.getField("arr").schema());
this.arr = a0;
} else
a0.clear();
- SpecificData.Array<java.lang.String> ga0 = (a0 instanceof
SpecificData.Array
- ? (SpecificData.Array<java.lang.String>) a0
- : null);
+ SpecificData.Array<String> ga0 = (a0 instanceof SpecificData.Array ?
(SpecificData.Array<String>) a0 : null);
for (; 0 < size0; size0 = in.arrayNext()) {
for (; size0 != 0; size0--) {
- java.lang.String e0 = (ga0 != null ? ga0.peek() : null);
+ String e0 = (ga0 != null ? ga0.peek() : null);
e0 = in.readString();
a0.add(e0);
}
}
long size1 = in.readMapStart();
- java.util.Map<java.lang.String, java.lang.Long> m1 = this.map; // Need
fresh name due to limitation of macro
- // system
+ java.util.Map<String, Long> m1 = this.map; // Need fresh name due to
limitation of macro system
if (m1 == null) {
- m1 = new java.util.HashMap<java.lang.String, java.lang.Long>((int)
size1);
+ m1 = new java.util.HashMap<String, Long>((int) size1);
this.map = m1;
} else
m1.clear();
for (; 0 < size1; size1 = in.mapNext()) {
for (; size1 != 0; size1--) {
- java.lang.String k1 = null;
+ String k1 = null;
k1 = in.readString();
- java.lang.Long v1 = null;
+ Long v1 = null;
v1 = in.readLong();
m1.put(k1, v1);
}
}
+ long size2 = in.readArrayStart();
+ java.util.List<java.util.List<String>> a2 = this.nested_arr;
+ if (a2 == null) {
+ a2 = new SpecificData.Array<java.util.List<String>>((int) size2,
SCHEMA$.getField("nested_arr").schema());
+ this.nested_arr = a2;
+ } else
+ a2.clear();
+ SpecificData.Array<java.util.List<String>> ga2 = (a2 instanceof
SpecificData.Array
+ ? (SpecificData.Array<java.util.List<String>>) a2
+ : null);
+ for (; 0 < size2; size2 = in.arrayNext()) {
+ for (; size2 != 0; size2--) {
+ java.util.List<String> e2 = (ga2 != null ? ga2.peek() : null);
+ long size3 = in.readArrayStart();
+ java.util.List<String> a3 = e2;
+ if (a3 == null) {
+ a3 = new SpecificData.Array<String>((int) size3,
SCHEMA$.getField("nested_arr").schema().getElementType());
+ e2 = a3;
+ } else
+ a3.clear();
+ SpecificData.Array<String> ga3 = (a3 instanceof SpecificData.Array ?
(SpecificData.Array<String>) a3 : null);
+ for (; 0 < size3; size3 = in.arrayNext()) {
+ for (; size3 != 0; size3--) {
+ String e3 = (ga3 != null ? ga3.peek() : null);
+ e3 = in.readString();
+ a3.add(e3);
+ }
+ }
+ a2.add(e2);
+ }
+ }
+
+ long size4 = in.readMapStart();
+ java.util.Map<String, java.util.Map<String, Long>> m4 = this.nested_map;
// Need fresh name due to limitation of
+
// macro system
+ if (m4 == null) {
+ m4 = new java.util.HashMap<String, java.util.Map<String, Long>>((int)
size4);
+ this.nested_map = m4;
+ } else
+ m4.clear();
+ for (; 0 < size4; size4 = in.mapNext()) {
+ for (; size4 != 0; size4--) {
+ String k4 = null;
+ k4 = in.readString();
+ java.util.Map<String, Long> v4 = null;
+ long size5 = in.readMapStart();
+ java.util.Map<String, Long> m5 = v4; // Need fresh name due to
limitation of macro system
+ if (m5 == null) {
+ m5 = new java.util.HashMap<String, Long>((int) size5);
+ v4 = m5;
+ } else
+ m5.clear();
+ for (; 0 < size5; size5 = in.mapNext()) {
+ for (; size5 != 0; size5--) {
+ String k5 = null;
+ k5 = in.readString();
+ Long v5 = null;
+ v5 = in.readLong();
+ m5.put(k5, v5);
+ }
+ }
+ m4.put(k4, v4);
+ }
+ }
+
} else {
- for (int i = 0; i < 2; i++) {
+ for (int i = 0; i < 4; i++) {
switch (fieldOrder[i].pos()) {
case 0:
long size0 = in.readArrayStart();
- java.util.List<java.lang.String> a0 = this.arr;
+ java.util.List<String> a0 = this.arr;
if (a0 == null) {
- a0 = new SpecificData.Array<java.lang.String>((int) size0,
SCHEMA$.getField("arr").schema());
+ a0 = new SpecificData.Array<String>((int) size0,
SCHEMA$.getField("arr").schema());
this.arr = a0;
} else
a0.clear();
- SpecificData.Array<java.lang.String> ga0 = (a0 instanceof
SpecificData.Array
- ? (SpecificData.Array<java.lang.String>) a0
- : null);
+ SpecificData.Array<String> ga0 = (a0 instanceof SpecificData.Array ?
(SpecificData.Array<String>) a0 : null);
Review Comment:
## Cast from abstract to concrete collection
[List<String>](1) is cast to the concrete type [Array<String>](2), losing
abstraction.
[Show more
details](https://github.com/apache/avro/security/code-scanning/3181)
##########
lang/java/avro/src/test/java/org/apache/avro/specific/TestRecordWithMapsAndArrays.java:
##########
@@ -429,77 +583,193 @@
out.writeMapStart();
out.setItemCount(size1);
long actualSize1 = 0;
- for (java.util.Map.Entry<java.lang.String, java.lang.Long> e1 :
this.map.entrySet()) {
+ for (java.util.Map.Entry<String, Long> e1 : this.map.entrySet()) {
actualSize1++;
out.startItem();
out.writeString(e1.getKey());
- java.lang.Long v1 = e1.getValue();
+ Long v1 = e1.getValue();
out.writeLong(v1);
}
out.writeMapEnd();
if (actualSize1 != size1)
throw new java.util.ConcurrentModificationException(
"Map-size written was " + size1 + ", but element count was " +
actualSize1 + ".");
+ long size2 = this.nested_arr.size();
+ out.writeArrayStart();
+ out.setItemCount(size2);
+ long actualSize2 = 0;
+ for (java.util.List<String> e2 : this.nested_arr) {
+ actualSize2++;
+ out.startItem();
+ long size3 = e2.size();
+ out.writeArrayStart();
+ out.setItemCount(size3);
+ long actualSize3 = 0;
+ for (String e3 : e2) {
+ actualSize3++;
+ out.startItem();
+ out.writeString(e3);
+ }
+ out.writeArrayEnd();
+ if (actualSize3 != size3)
+ throw new java.util.ConcurrentModificationException(
+ "Array-size written was " + size3 + ", but element count was " +
actualSize3 + ".");
+ }
+ out.writeArrayEnd();
+ if (actualSize2 != size2)
+ throw new java.util.ConcurrentModificationException(
+ "Array-size written was " + size2 + ", but element count was " +
actualSize2 + ".");
+
+ long size4 = this.nested_map.size();
+ out.writeMapStart();
+ out.setItemCount(size4);
+ long actualSize4 = 0;
+ for (java.util.Map.Entry<String, java.util.Map<String, Long>> e4 :
this.nested_map.entrySet()) {
+ actualSize4++;
+ out.startItem();
+ out.writeString(e4.getKey());
+ java.util.Map<String, Long> v4 = e4.getValue();
+ long size5 = v4.size();
+ out.writeMapStart();
+ out.setItemCount(size5);
+ long actualSize5 = 0;
+ for (java.util.Map.Entry<String, Long> e5 : v4.entrySet()) {
+ actualSize5++;
+ out.startItem();
+ out.writeString(e5.getKey());
+ Long v5 = e5.getValue();
+ out.writeLong(v5);
+ }
+ out.writeMapEnd();
+ if (actualSize5 != size5)
+ throw new java.util.ConcurrentModificationException(
+ "Map-size written was " + size5 + ", but element count was " +
actualSize5 + ".");
+ }
+ out.writeMapEnd();
+ if (actualSize4 != size4)
+ throw new java.util.ConcurrentModificationException(
+ "Map-size written was " + size4 + ", but element count was " +
actualSize4 + ".");
+
}
@Override
public void customDecode(org.apache.avro.io.ResolvingDecoder in) throws
java.io.IOException {
org.apache.avro.Schema.Field[] fieldOrder = in.readFieldOrderIfDiff();
if (fieldOrder == null) {
long size0 = in.readArrayStart();
- java.util.List<java.lang.String> a0 = this.arr;
+ java.util.List<String> a0 = this.arr;
if (a0 == null) {
- a0 = new SpecificData.Array<java.lang.String>((int) size0,
SCHEMA$.getField("arr").schema());
+ a0 = new SpecificData.Array<String>((int) size0,
SCHEMA$.getField("arr").schema());
this.arr = a0;
} else
a0.clear();
- SpecificData.Array<java.lang.String> ga0 = (a0 instanceof
SpecificData.Array
- ? (SpecificData.Array<java.lang.String>) a0
- : null);
+ SpecificData.Array<String> ga0 = (a0 instanceof SpecificData.Array ?
(SpecificData.Array<String>) a0 : null);
for (; 0 < size0; size0 = in.arrayNext()) {
for (; size0 != 0; size0--) {
- java.lang.String e0 = (ga0 != null ? ga0.peek() : null);
+ String e0 = (ga0 != null ? ga0.peek() : null);
e0 = in.readString();
a0.add(e0);
}
}
long size1 = in.readMapStart();
- java.util.Map<java.lang.String, java.lang.Long> m1 = this.map; // Need
fresh name due to limitation of macro
- // system
+ java.util.Map<String, Long> m1 = this.map; // Need fresh name due to
limitation of macro system
if (m1 == null) {
- m1 = new java.util.HashMap<java.lang.String, java.lang.Long>((int)
size1);
+ m1 = new java.util.HashMap<String, Long>((int) size1);
this.map = m1;
} else
m1.clear();
for (; 0 < size1; size1 = in.mapNext()) {
for (; size1 != 0; size1--) {
- java.lang.String k1 = null;
+ String k1 = null;
k1 = in.readString();
- java.lang.Long v1 = null;
+ Long v1 = null;
v1 = in.readLong();
m1.put(k1, v1);
}
}
+ long size2 = in.readArrayStart();
+ java.util.List<java.util.List<String>> a2 = this.nested_arr;
+ if (a2 == null) {
+ a2 = new SpecificData.Array<java.util.List<String>>((int) size2,
SCHEMA$.getField("nested_arr").schema());
+ this.nested_arr = a2;
+ } else
+ a2.clear();
+ SpecificData.Array<java.util.List<String>> ga2 = (a2 instanceof
SpecificData.Array
+ ? (SpecificData.Array<java.util.List<String>>) a2
Review Comment:
## Cast from abstract to concrete collection
[List<List<String>>](1) is cast to the concrete type
[Array<List<String>>](2), losing abstraction.
[Show more
details](https://github.com/apache/avro/security/code-scanning/3179)
##########
lang/java/avro/src/test/java/org/apache/avro/specific/TestRecordWithMapsAndArrays.java:
##########
@@ -508,24 +778,94 @@
case 1:
long size1 = in.readMapStart();
- java.util.Map<java.lang.String, java.lang.Long> m1 = this.map; //
Need fresh name due to limitation of macro
- //
system
+ java.util.Map<String, Long> m1 = this.map; // Need fresh name due to
limitation of macro system
if (m1 == null) {
- m1 = new java.util.HashMap<java.lang.String, java.lang.Long>((int)
size1);
+ m1 = new java.util.HashMap<String, Long>((int) size1);
this.map = m1;
} else
m1.clear();
for (; 0 < size1; size1 = in.mapNext()) {
for (; size1 != 0; size1--) {
- java.lang.String k1 = null;
+ String k1 = null;
k1 = in.readString();
- java.lang.Long v1 = null;
+ Long v1 = null;
v1 = in.readLong();
m1.put(k1, v1);
}
}
break;
+ case 2:
+ long size2 = in.readArrayStart();
+ java.util.List<java.util.List<String>> a2 = this.nested_arr;
+ if (a2 == null) {
+ a2 = new SpecificData.Array<java.util.List<String>>((int) size2,
SCHEMA$.getField("nested_arr").schema());
+ this.nested_arr = a2;
+ } else
+ a2.clear();
+ SpecificData.Array<java.util.List<String>> ga2 = (a2 instanceof
SpecificData.Array
+ ? (SpecificData.Array<java.util.List<String>>) a2
Review Comment:
## Cast from abstract to concrete collection
[List<List<String>>](1) is cast to the concrete type
[Array<List<String>>](2), losing abstraction.
[Show more
details](https://github.com/apache/avro/security/code-scanning/3182)
##########
lang/java/avro/src/test/java/org/apache/avro/specific/TestRecordWithMapsAndArrays.java:
##########
@@ -508,24 +778,94 @@
case 1:
long size1 = in.readMapStart();
- java.util.Map<java.lang.String, java.lang.Long> m1 = this.map; //
Need fresh name due to limitation of macro
- //
system
+ java.util.Map<String, Long> m1 = this.map; // Need fresh name due to
limitation of macro system
if (m1 == null) {
- m1 = new java.util.HashMap<java.lang.String, java.lang.Long>((int)
size1);
+ m1 = new java.util.HashMap<String, Long>((int) size1);
this.map = m1;
} else
m1.clear();
for (; 0 < size1; size1 = in.mapNext()) {
for (; size1 != 0; size1--) {
- java.lang.String k1 = null;
+ String k1 = null;
k1 = in.readString();
- java.lang.Long v1 = null;
+ Long v1 = null;
v1 = in.readLong();
m1.put(k1, v1);
}
}
break;
+ case 2:
+ long size2 = in.readArrayStart();
+ java.util.List<java.util.List<String>> a2 = this.nested_arr;
+ if (a2 == null) {
+ a2 = new SpecificData.Array<java.util.List<String>>((int) size2,
SCHEMA$.getField("nested_arr").schema());
+ this.nested_arr = a2;
+ } else
+ a2.clear();
+ SpecificData.Array<java.util.List<String>> ga2 = (a2 instanceof
SpecificData.Array
+ ? (SpecificData.Array<java.util.List<String>>) a2
+ : null);
+ for (; 0 < size2; size2 = in.arrayNext()) {
+ for (; size2 != 0; size2--) {
+ java.util.List<String> e2 = (ga2 != null ? ga2.peek() : null);
+ long size3 = in.readArrayStart();
+ java.util.List<String> a3 = e2;
+ if (a3 == null) {
+ a3 = new SpecificData.Array<String>((int) size3,
+ SCHEMA$.getField("nested_arr").schema().getElementType());
+ e2 = a3;
+ } else
+ a3.clear();
+ SpecificData.Array<String> ga3 = (a3 instanceof
SpecificData.Array ? (SpecificData.Array<String>) a3
Review Comment:
## Cast from abstract to concrete collection
[List<String>](1) is cast to the concrete type [Array<String>](2), losing
abstraction.
[Show more
details](https://github.com/apache/avro/security/code-scanning/3183)
##########
lang/java/avro/src/test/java/org/apache/avro/specific/TestRecordWithMapsAndArrays.java:
##########
@@ -429,77 +583,193 @@
out.writeMapStart();
out.setItemCount(size1);
long actualSize1 = 0;
- for (java.util.Map.Entry<java.lang.String, java.lang.Long> e1 :
this.map.entrySet()) {
+ for (java.util.Map.Entry<String, Long> e1 : this.map.entrySet()) {
actualSize1++;
out.startItem();
out.writeString(e1.getKey());
- java.lang.Long v1 = e1.getValue();
+ Long v1 = e1.getValue();
out.writeLong(v1);
}
out.writeMapEnd();
if (actualSize1 != size1)
throw new java.util.ConcurrentModificationException(
"Map-size written was " + size1 + ", but element count was " +
actualSize1 + ".");
+ long size2 = this.nested_arr.size();
+ out.writeArrayStart();
+ out.setItemCount(size2);
+ long actualSize2 = 0;
+ for (java.util.List<String> e2 : this.nested_arr) {
+ actualSize2++;
+ out.startItem();
+ long size3 = e2.size();
+ out.writeArrayStart();
+ out.setItemCount(size3);
+ long actualSize3 = 0;
+ for (String e3 : e2) {
+ actualSize3++;
+ out.startItem();
+ out.writeString(e3);
+ }
+ out.writeArrayEnd();
+ if (actualSize3 != size3)
+ throw new java.util.ConcurrentModificationException(
+ "Array-size written was " + size3 + ", but element count was " +
actualSize3 + ".");
+ }
+ out.writeArrayEnd();
+ if (actualSize2 != size2)
+ throw new java.util.ConcurrentModificationException(
+ "Array-size written was " + size2 + ", but element count was " +
actualSize2 + ".");
+
+ long size4 = this.nested_map.size();
+ out.writeMapStart();
+ out.setItemCount(size4);
+ long actualSize4 = 0;
+ for (java.util.Map.Entry<String, java.util.Map<String, Long>> e4 :
this.nested_map.entrySet()) {
+ actualSize4++;
+ out.startItem();
+ out.writeString(e4.getKey());
+ java.util.Map<String, Long> v4 = e4.getValue();
+ long size5 = v4.size();
+ out.writeMapStart();
+ out.setItemCount(size5);
+ long actualSize5 = 0;
+ for (java.util.Map.Entry<String, Long> e5 : v4.entrySet()) {
+ actualSize5++;
+ out.startItem();
+ out.writeString(e5.getKey());
+ Long v5 = e5.getValue();
+ out.writeLong(v5);
+ }
+ out.writeMapEnd();
+ if (actualSize5 != size5)
+ throw new java.util.ConcurrentModificationException(
+ "Map-size written was " + size5 + ", but element count was " +
actualSize5 + ".");
+ }
+ out.writeMapEnd();
+ if (actualSize4 != size4)
+ throw new java.util.ConcurrentModificationException(
+ "Map-size written was " + size4 + ", but element count was " +
actualSize4 + ".");
+
}
@Override
public void customDecode(org.apache.avro.io.ResolvingDecoder in) throws
java.io.IOException {
org.apache.avro.Schema.Field[] fieldOrder = in.readFieldOrderIfDiff();
if (fieldOrder == null) {
long size0 = in.readArrayStart();
- java.util.List<java.lang.String> a0 = this.arr;
+ java.util.List<String> a0 = this.arr;
if (a0 == null) {
- a0 = new SpecificData.Array<java.lang.String>((int) size0,
SCHEMA$.getField("arr").schema());
+ a0 = new SpecificData.Array<String>((int) size0,
SCHEMA$.getField("arr").schema());
this.arr = a0;
} else
a0.clear();
- SpecificData.Array<java.lang.String> ga0 = (a0 instanceof
SpecificData.Array
- ? (SpecificData.Array<java.lang.String>) a0
- : null);
+ SpecificData.Array<String> ga0 = (a0 instanceof SpecificData.Array ?
(SpecificData.Array<String>) a0 : null);
for (; 0 < size0; size0 = in.arrayNext()) {
for (; size0 != 0; size0--) {
- java.lang.String e0 = (ga0 != null ? ga0.peek() : null);
+ String e0 = (ga0 != null ? ga0.peek() : null);
e0 = in.readString();
a0.add(e0);
}
}
long size1 = in.readMapStart();
- java.util.Map<java.lang.String, java.lang.Long> m1 = this.map; // Need
fresh name due to limitation of macro
- // system
+ java.util.Map<String, Long> m1 = this.map; // Need fresh name due to
limitation of macro system
if (m1 == null) {
- m1 = new java.util.HashMap<java.lang.String, java.lang.Long>((int)
size1);
+ m1 = new java.util.HashMap<String, Long>((int) size1);
this.map = m1;
} else
m1.clear();
for (; 0 < size1; size1 = in.mapNext()) {
for (; size1 != 0; size1--) {
- java.lang.String k1 = null;
+ String k1 = null;
k1 = in.readString();
- java.lang.Long v1 = null;
+ Long v1 = null;
v1 = in.readLong();
m1.put(k1, v1);
}
}
+ long size2 = in.readArrayStart();
+ java.util.List<java.util.List<String>> a2 = this.nested_arr;
+ if (a2 == null) {
+ a2 = new SpecificData.Array<java.util.List<String>>((int) size2,
SCHEMA$.getField("nested_arr").schema());
+ this.nested_arr = a2;
+ } else
+ a2.clear();
+ SpecificData.Array<java.util.List<String>> ga2 = (a2 instanceof
SpecificData.Array
+ ? (SpecificData.Array<java.util.List<String>>) a2
+ : null);
+ for (; 0 < size2; size2 = in.arrayNext()) {
+ for (; size2 != 0; size2--) {
+ java.util.List<String> e2 = (ga2 != null ? ga2.peek() : null);
+ long size3 = in.readArrayStart();
+ java.util.List<String> a3 = e2;
+ if (a3 == null) {
+ a3 = new SpecificData.Array<String>((int) size3,
SCHEMA$.getField("nested_arr").schema().getElementType());
+ e2 = a3;
+ } else
+ a3.clear();
+ SpecificData.Array<String> ga3 = (a3 instanceof SpecificData.Array ?
(SpecificData.Array<String>) a3 : null);
Review Comment:
## Cast from abstract to concrete collection
[List<String>](1) is cast to the concrete type [Array<String>](2), losing
abstraction.
[Show more
details](https://github.com/apache/avro/security/code-scanning/3180)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]