This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git

commit b467e8d980dd8d95343834426802484a9298e58c
Author: Gary Gregory <[email protected]>
AuthorDate: Mon Apr 1 11:05:31 2024 -0400

    Avoid NullPointerException after
    callingorg.apache.bcel.classfile.ArrayElementValue.ArrayElementValue(int,
    ElementValue[], ConstantPool) with null
---
 src/changes/changes.xml                               | 19 ++++++++++---------
 .../org/apache/bcel/classfile/ArrayElementValue.java  |  2 +-
 .../java/org/apache/bcel/classfile/ElementValue.java  |  1 +
 3 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4fe51ede..68926332 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -74,15 +74,16 @@ The <action> type attribute can be add,update,fix,remove.
       <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.ParameterAnnotations.setParameterAnnotationTable(ParameterAnnotationEntry[])
 with null.</action>
       <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.LocalVariableTypeTable.setLocalVariableTable(LocalVariable[])
 with null.</action>
       <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.LocalVariableTable.setLocalVariableTable(LocalVariable[])
 with null.</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.LineNumberTable.setLineNumberTable(LineNumber[]).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setMethods(Method[]).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setInterfaces(int[]).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setInterfaceNames(String[]).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setFields(Field[]).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setAttributes(Attribute[]).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.ConstantPool.setConstantPool(Constant[]).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.FieldOrMethod.setAttributes(Attribute[]).</action>
-      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.Annotations.setAnnotationTable(AnnotationEntry[]).</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.LineNumberTable.setLineNumberTable(LineNumber[]) with 
null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setMethods(Method[] with null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setInterfaces(int[]) with null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setInterfaceNames(String[]) with 
null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setFields(Field[]) with null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.JavaClass.setAttributes(Attribute[]) with 
null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.ConstantPool.setConstantPool(Constant[]) with 
null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.FieldOrMethod.setAttributes(Attribute[]) with 
null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after calling 
org.apache.bcel.classfile.Annotations.setAnnotationTable(AnnotationEntry[]) 
with null.</action>
+      <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Avoid NullPointerException after 
callingorg.apache.bcel.classfile.ArrayElementValue.ArrayElementValue(int, 
ElementValue[], ConstantPool) with null.</action>
       <!-- UPDATE -->
       <action                  type="update" dev="ggregory" 
due-to="Dependabot">Bump org.apache.commons:commons-parent from 66 to 67 
#283.</action>
       <action                  type="update" dev="ggregory" 
due-to="Dependabot">Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.22 to 
1.9.23 #284.</action>
diff --git a/src/main/java/org/apache/bcel/classfile/ArrayElementValue.java 
b/src/main/java/org/apache/bcel/classfile/ArrayElementValue.java
index 00fdc7af..d932b112 100644
--- a/src/main/java/org/apache/bcel/classfile/ArrayElementValue.java
+++ b/src/main/java/org/apache/bcel/classfile/ArrayElementValue.java
@@ -31,7 +31,7 @@ public class ArrayElementValue extends ElementValue {
         if (type != ARRAY) {
             throw new ClassFormatException("Only element values of type array 
can be built with this ctor - type specified: " + type);
         }
-        this.elementValues = elementValues;
+        this.elementValues = elementValues != null ? elementValues : 
ElementValue.EMPTY_ARRAY;
     }
 
     @Override
diff --git a/src/main/java/org/apache/bcel/classfile/ElementValue.java 
b/src/main/java/org/apache/bcel/classfile/ElementValue.java
index 7bcd73bd..5619f486 100644
--- a/src/main/java/org/apache/bcel/classfile/ElementValue.java
+++ b/src/main/java/org/apache/bcel/classfile/ElementValue.java
@@ -63,6 +63,7 @@ public abstract class ElementValue {
     public static final byte PRIMITIVE_LONG = 'J';
     public static final byte PRIMITIVE_SHORT = 'S';
     public static final byte PRIMITIVE_BOOLEAN = 'Z';
+    static final ElementValue[] EMPTY_ARRAY = {};
 
     /**
      * Reads an {@code element_value} as an {@code ElementValue}.

Reply via email to