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 a35914a398f249b14e9b93121aa6ab06a5c2dc39
Author: Gary Gregory <[email protected]>
AuthorDate: Mon Apr 1 10:39:29 2024 -0400

    Avoid NullPointerException after calling
    
org.apache.bcel.classfile.LocalVariableTable.setLocalVariableTable(LocalVariable[])
    with null
---
 src/changes/changes.xml                                         | 1 +
 src/main/java/org/apache/bcel/classfile/LocalVariableTable.java | 8 +++++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index be5a862d..b36badaa 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -73,6 +73,7 @@ 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.MethodParameters.setParameters(MethodParameter[]) 
with null.</action>
       <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>
       <!-- 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/LocalVariableTable.java 
b/src/main/java/org/apache/bcel/classfile/LocalVariableTable.java
index 778932b6..b73e99c2 100644
--- a/src/main/java/org/apache/bcel/classfile/LocalVariableTable.java
+++ b/src/main/java/org/apache/bcel/classfile/LocalVariableTable.java
@@ -35,6 +35,8 @@ import org.apache.bcel.util.Args;
  */
 public class LocalVariableTable extends Attribute implements 
Iterable<LocalVariable> {
 
+    private static final LocalVariable[] EMPTY_ARRAY = {};
+
     private LocalVariable[] localVariableTable; // variables
 
     /**
@@ -63,7 +65,7 @@ public class LocalVariableTable extends Attribute implements 
Iterable<LocalVaria
      */
     public LocalVariableTable(final int nameIndex, final int length, final 
LocalVariable[] localVariableTable, final ConstantPool constantPool) {
         super(Const.ATTR_LOCAL_VARIABLE_TABLE, nameIndex, length, 
constantPool);
-        this.localVariableTable = localVariableTable != null ? 
localVariableTable : LocalVariable.EMPTY_ARRAY;
+        this.localVariableTable = localVariableTable != null ? 
localVariableTable : EMPTY_ARRAY;
         Args.requireU2(this.localVariableTable.length, 
"localVariableTable.length");
     }
 
@@ -162,7 +164,7 @@ public class LocalVariableTable extends Attribute 
implements Iterable<LocalVaria
     }
 
     public final int getTableLength() {
-        return localVariableTable == null ? 0 : localVariableTable.length;
+        return localVariableTable.length;
     }
 
     @Override
@@ -171,7 +173,7 @@ public class LocalVariableTable extends Attribute 
implements Iterable<LocalVaria
     }
 
     public final void setLocalVariableTable(final LocalVariable[] 
localVariableTable) {
-        this.localVariableTable = localVariableTable;
+        this.localVariableTable = localVariableTable != null ? 
localVariableTable : EMPTY_ARRAY;
     }
 
     /**

Reply via email to