From 526b1689254b2120ce246324195e18d77391305f Mon Sep 17 00:00:00 2001 From: Graham Date: Tue, 14 Jan 2020 21:33:04 +0000 Subject: [PATCH] Fix IndexOutOfBoundsException --- .../java/org/apache/harmony/pack200/ClassBands.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/apache/harmony/pack200/ClassBands.java b/src/main/java/org/apache/harmony/pack200/ClassBands.java index d24c07c..82b2ecd 100644 --- a/src/main/java/org/apache/harmony/pack200/ClassBands.java +++ b/src/main/java/org/apache/harmony/pack200/ClassBands.java @@ -1027,11 +1027,13 @@ public class ClassBands extends BandSet { } if(codeFlags.size() > 0) { long latestCodeFlag = ((Long)codeFlags.get(codeFlags.size() - 1)).longValue(); - int latestLocalVariableTableN = codeLocalVariableTableN.get(codeLocalVariableTableN.size() - 1); - if(latestCodeFlag == (1 << 2) && latestLocalVariableTableN == 0) { - codeLocalVariableTableN.remove(codeLocalVariableTableN.size() - 1); - codeFlags.remove(codeFlags.size() - 1); - codeFlags.add(new Long(0)); + if (latestCodeFlag == (1 << 2)) { + int latestLocalVariableTableN = codeLocalVariableTableN.get(codeLocalVariableTableN.size() - 1); + if (latestLocalVariableTableN == 0) { + codeLocalVariableTableN.remove(codeLocalVariableTableN.size() - 1); + codeFlags.remove(codeFlags.size() - 1); + codeFlags.add(new Long(0)); + } } } }