You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/10/06 00:39:19 UTC
[commons-compress] branch master updated: Refactor to use own utility
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-compress.git
The following commit(s) were added to refs/heads/master by this push:
new c1b31322 Refactor to use own utility
c1b31322 is described below
commit c1b31322cddb27ef7dd88dbf4035ba81ffc39d80
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Oct 5 20:35:38 2022 -0400
Refactor to use own utility
* Explicitly use the default Charset
* Use Arrays.setAll()
* Rename internal name
* Format tweak
* Refactor to local variable
---
.../archivers/arj/ArjArchiveInputStream.java | 7 +---
.../commons/compress/archivers/sevenz/Folder.java | 2 +-
.../archivers/sevenz/SevenZOutputFile.java | 5 +--
.../commons/compress/archivers/tar/TarUtils.java | 26 ++++++-------
.../compress/archivers/zip/AsiExtraField.java | 22 +++++------
.../compress/archivers/zip/ExtraFieldUtils.java | 8 ++--
.../archivers/zip/ZipSplitOutputStream.java | 3 +-
.../bzip2/BZip2CompressorOutputStream.java | 7 ++--
.../compress/compressors/bzip2/BlockSort.java | 9 +++--
.../harmony/archive/internal/nls/Messages.java | 10 ++---
.../harmony/pack200/AttributeDefinitionBands.java | 11 +++---
.../compress/harmony/pack200/BHSDCodec.java | 5 +--
.../commons/compress/harmony/pack200/BandSet.java | 44 +++++++++-------------
.../commons/compress/harmony/pack200/BcBands.java | 13 ++-----
.../compress/harmony/pack200/ClassBands.java | 5 +--
.../commons/compress/harmony/pack200/CpBands.java | 12 ++----
.../compress/harmony/pack200/FileBands.java | 5 +--
.../harmony/pack200/MetadataBandGroup.java | 6 +--
.../commons/compress/harmony/pack200/Segment.java | 2 +-
.../compress/harmony/unpack200/BandSet.java | 29 +++++---------
.../compress/harmony/unpack200/ClassBands.java | 13 ++-----
.../compress/harmony/unpack200/CpBands.java | 9 ++---
.../compress/harmony/unpack200/IcBands.java | 7 +---
.../compress/harmony/unpack200/IcTuple.java | 9 ++---
.../harmony/unpack200/MetadataBandGroup.java | 8 +---
.../compress/harmony/unpack200/Segment.java | 9 ++---
.../unpack200/bytecode/BCIRenumberedAttribute.java | 5 +--
.../unpack200/bytecode/InnerClassesAttribute.java | 6 +--
...timeVisibleorInvisibleAnnotationsAttribute.java | 6 +--
...leorInvisibleParameterAnnotationsAttribute.java | 6 +--
.../unpack200/bytecode/forms/LookupSwitchForm.java | 10 ++---
.../unpack200/bytecode/forms/TableSwitchForm.java | 6 +--
.../commons/compress/utils/ArchiveUtils.java | 4 +-
33 files changed, 123 insertions(+), 206 deletions(-)
diff --git a/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveInputStream.java b/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveInputStream.java
index 4b20c122..1c2bdc9b 100644
--- a/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveInputStream.java
+++ b/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveInputStream.java
@@ -31,6 +31,7 @@ import org.apache.commons.compress.archivers.ArchiveException;
import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.utils.BoundedInputStream;
import org.apache.commons.compress.utils.CRC32VerifyingInputStream;
+import org.apache.commons.compress.utils.Charsets;
import org.apache.commons.compress.utils.IOUtils;
/**
@@ -115,11 +116,7 @@ public class ArjArchiveInputStream extends ArchiveInputStream {
while ((nextByte = dataIn.readUnsignedByte()) != 0) {
buffer.write(nextByte);
}
- if (charsetName != null) {
- return buffer.toString(charsetName);
- }
- // intentionally using the default encoding as that's the contract for a null charsetName
- return buffer.toString();
+ return buffer.toString(Charsets.toCharset(charsetName).name());
}
}
diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/Folder.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/Folder.java
index 82fe51fa..26421385 100644
--- a/src/main/java/org/apache/commons/compress/archivers/sevenz/Folder.java
+++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/Folder.java
@@ -97,7 +97,7 @@ class Folder {
if (totalOutputStreams == 0) {
return 0;
}
- for (int i = ((int)totalOutputStreams) - 1; i >= 0; i--) {
+ for (int i = ((int) totalOutputStreams) - 1; i >= 0; i--) {
if (findBindPairForOutStream(i) < 0) {
return unpackSizes[i];
}
diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZOutputFile.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZOutputFile.java
index a8e70d5f..ba6de451 100644
--- a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZOutputFile.java
+++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZOutputFile.java
@@ -37,6 +37,7 @@ import java.nio.file.OpenOption;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.BitSet;
import java.util.Collections;
import java.util.Date;
@@ -216,9 +217,7 @@ public class SevenZOutputFile implements Closeable {
entry.setHasCrc(true);
if (additionalCountingStreams != null) {
final long[] sizes = new long[additionalCountingStreams.length];
- for (int i = 0; i < additionalCountingStreams.length; i++) {
- sizes[i] = additionalCountingStreams[i].getBytesWritten();
- }
+ Arrays.setAll(sizes, i -> additionalCountingStreams[i].getBytesWritten());
additionalSizes.put(entry, sizes);
}
} else {
diff --git a/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java b/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java
index 44ba57ae..b0393639 100644
--- a/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java
+++ b/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java
@@ -30,6 +30,7 @@ import java.io.InputStream;
import java.io.UncheckedIOException;
import java.math.BigInteger;
import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -116,12 +117,12 @@ public class TarUtils {
* @throws IllegalArgumentException if the trailing space/NUL is missing or if a invalid byte is detected.
*/
public static long parseOctal(final byte[] buffer, final int offset, final int length) {
- long result = 0;
- int end = offset + length;
- int start = offset;
+ long result = 0;
+ int end = offset + length;
+ int start = offset;
- if (length < 2){
- throw new IllegalArgumentException("Length "+length+" must be at least 2");
+ if (length < 2) {
+ throw new IllegalArgumentException("Length " + length + " must be at least 2");
}
if (buffer[start] == 0) {
@@ -129,7 +130,7 @@ public class TarUtils {
}
// Skip leading spaces
- while (start < end){
+ while (start < end) {
if (buffer[start] != ' ') {
break;
}
@@ -146,12 +147,11 @@ public class TarUtils {
trailer = buffer[end - 1];
}
- for ( ;start < end; start++) {
+ for (; start < end; start++) {
final byte currentByte = buffer[start];
// CheckStyle:MagicNumber OFF
- if (currentByte < '0' || currentByte > '7'){
- throw new IllegalArgumentException(
- exceptionMessage(buffer, offset, length, start, currentByte));
+ if (currentByte < '0' || currentByte > '7') {
+ throw new IllegalArgumentException(exceptionMessage(buffer, offset, length, start, currentByte));
}
result = (result << 3) + (currentByte - '0'); // convert from ASCII
// CheckStyle:MagicNumber ON
@@ -255,10 +255,10 @@ public class TarUtils {
// archive (deprecating the existing public methods, of
// course) and dealing with the fact that ZipEncoding#decode
// can throw an IOException which parseOctal* doesn't declare
- String string = new String(buffer, offset, length);
+ String string = new String(buffer, offset, length, Charset.defaultCharset());
- string=string.replace("\0", "{NUL}"); // Replace NULs to allow string to be printed
- return "Invalid byte "+currentByte+" at offset "+(current-offset)+" in '"+string+"' len="+length;
+ string = string.replace("\0", "{NUL}"); // Replace NULs to allow string to be printed
+ return "Invalid byte " + currentByte + " at offset " + (current - offset) + " in '" + string + "' len=" + length;
}
/**
diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/AsiExtraField.java b/src/main/java/org/apache/commons/compress/archivers/zip/AsiExtraField.java
index b3c6ca70..e086e0e8 100644
--- a/src/main/java/org/apache/commons/compress/archivers/zip/AsiExtraField.java
+++ b/src/main/java/org/apache/commons/compress/archivers/zip/AsiExtraField.java
@@ -21,6 +21,7 @@ package org.apache.commons.compress.archivers.zip;
import static org.apache.commons.compress.archivers.zip.ZipConstants.SHORT;
import static org.apache.commons.compress.archivers.zip.ZipConstants.WORD;
+import java.nio.charset.Charset;
import java.util.zip.CRC32;
import java.util.zip.ZipException;
@@ -104,13 +105,15 @@ public class AsiExtraField implements ZipExtraField, UnixStat, Cloneable {
*/
@Override
public ZipShort getLocalFileDataLength() {
- return new ZipShort(WORD // CRC
+ // @formatter:off
+ return new ZipShort(WORD // CRC
+ 2 // Mode
- + WORD // SizDev
+ + WORD // SizDev
+ 2 // UID
+ 2 // GID
- + getLinkedFile().getBytes().length);
+ + getLinkedFile().getBytes(Charset.defaultCharset()).length);
// Uses default charset - see class Javadoc
+ // @formatter:on
}
/**
@@ -133,15 +136,12 @@ public class AsiExtraField implements ZipExtraField, UnixStat, Cloneable {
final byte[] data = new byte[getLocalFileDataLength().getValue() - WORD];
System.arraycopy(ZipShort.getBytes(getMode()), 0, data, 0, 2);
- final byte[] linkArray = getLinkedFile().getBytes(); // Uses default charset - see class Javadoc
+ final byte[] linkArray = getLinkedFile().getBytes(Charset.defaultCharset()); // Uses default charset - see class Javadoc
// CheckStyle:MagicNumber OFF
- System.arraycopy(ZipLong.getBytes(linkArray.length),
- 0, data, 2, WORD);
+ System.arraycopy(ZipLong.getBytes(linkArray.length), 0, data, 2, WORD);
- System.arraycopy(ZipShort.getBytes(getUserId()),
- 0, data, 6, 2);
- System.arraycopy(ZipShort.getBytes(getGroupId()),
- 0, data, 8, 2);
+ System.arraycopy(ZipShort.getBytes(getUserId()), 0, data, 6, 2);
+ System.arraycopy(ZipShort.getBytes(getGroupId()), 0, data, 8, 2);
System.arraycopy(linkArray, 0, data, 10, linkArray.length);
// CheckStyle:MagicNumber ON
@@ -301,7 +301,7 @@ public class AsiExtraField implements ZipExtraField, UnixStat, Cloneable {
} else {
final byte[] linkArray = new byte[linkArrayLength];
System.arraycopy(tmp, 10, linkArray, 0, linkArrayLength);
- link = new String(linkArray); // Uses default charset - see class Javadoc
+ link = new String(linkArray, Charset.defaultCharset()); // Uses default charset - see class Javadoc
}
// CheckStyle:MagicNumber ON
setDirectory((newMode & DIR_FLAG) != 0);
diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java b/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java
index 699754b9..18b5151a 100644
--- a/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java
+++ b/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java
@@ -36,10 +36,10 @@ public class ExtraFieldUtils {
/**
* Static registry of known extra fields.
*/
- private static final Map<ZipShort, Class<?>> implementations;
+ private static final Map<ZipShort, Class<?>> IMPLEMENTATIONS;
static {
- implementations = new ConcurrentHashMap<>();
+ IMPLEMENTATIONS = new ConcurrentHashMap<>();
register(AsiExtraField.class);
register(X5455_ExtendedTimestamp.class);
register(X7875_NewUnix.class);
@@ -66,7 +66,7 @@ public class ExtraFieldUtils {
public static void register(final Class<?> c) {
try {
final ZipExtraField ze = (ZipExtraField) c.newInstance();
- implementations.put(ze.getHeaderId(), c);
+ IMPLEMENTATIONS.put(ze.getHeaderId(), c);
} catch (final ClassCastException cc) { // NOSONAR
throw new IllegalArgumentException(c + " doesn't implement ZipExtraField"); //NOSONAR
} catch (final InstantiationException ie) { // NOSONAR
@@ -106,7 +106,7 @@ public class ExtraFieldUtils {
*/
public static ZipExtraField createExtraFieldNoDefault(final ZipShort headerId)
throws InstantiationException, IllegalAccessException {
- final Class<?> c = implementations.get(headerId);
+ final Class<?> c = IMPLEMENTATIONS.get(headerId);
if (c != null) {
return (ZipExtraField) c.newInstance();
}
diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStream.java b/src/main/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStream.java
index ea8a3333..c8edf353 100644
--- a/src/main/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStream.java
+++ b/src/main/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStream.java
@@ -232,7 +232,8 @@ class ZipSplitOutputStream extends OutputStream {
extension += newZipSplitSegmentSuffixIndex;
}
- String dir = Objects.nonNull(zipFile.getParent()) ? zipFile.getParent().toAbsolutePath().toString() : ".";
+ final Path parent = zipFile.getParent();
+ final String dir = Objects.nonNull(parent) ? parent.toAbsolutePath().toString() : ".";
final Path newFile = zipFile.getFileSystem().getPath(dir, baseName + extension);
if (Files.exists(newFile)) {
diff --git a/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java
index 44429d57..1026424c 100644
--- a/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java
+++ b/src/main/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorOutputStream.java
@@ -20,6 +20,7 @@ package org.apache.commons.compress.compressors.bzip2;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Arrays;
import org.apache.commons.compress.compressors.CompressorOutputStream;
@@ -1191,14 +1192,12 @@ public class BZip2CompressorOutputStream extends CompressorOutputStream
final int eob = nInUseShadow + 1;
- for (int i = eob; i >= 0; i--) {
- mtfFreq[i] = 0;
- }
+ Arrays.fill(mtfFreq, 0, eob + 1, 0);
for (int i = nInUseShadow; --i >= 0;) {
yy[i] = (byte) i;
}
-
+
int wr = 0;
int zPend = 0;
diff --git a/src/main/java/org/apache/commons/compress/compressors/bzip2/BlockSort.java b/src/main/java/org/apache/commons/compress/compressors/bzip2/BlockSort.java
index f6be1d7d..8438958c 100644
--- a/src/main/java/org/apache/commons/compress/compressors/bzip2/BlockSort.java
+++ b/src/main/java/org/apache/commons/compress/compressors/bzip2/BlockSort.java
@@ -18,6 +18,7 @@
*/
package org.apache.commons.compress.compressors.bzip2;
+import java.util.Arrays;
import java.util.BitSet;
/**
@@ -107,6 +108,8 @@ class BlockSort {
* I've also removed the now unused randomization code.
*/
+ private static final int FTAB_LENGTH = 65537; // 262148 byte
+
/*
* LBZ2: If you are ever unlucky/improbable enough to get a stack
* overflow whilst sorting, increase the following constant and
@@ -136,7 +139,7 @@ class BlockSort {
private final int[] mainSort_copy = new int[256]; // 1024 byte
private final boolean[] mainSort_bigDone = new boolean[256]; // 256 byte
- private final int[] ftab = new int[65537]; // 262148 byte
+ private final int[] ftab = new int[FTAB_LENGTH]; // 262148 byte
/**
* Array instance identical to Data's sfmap, both are used only
@@ -916,9 +919,7 @@ class BlockSort {
final boolean firstAttemptShadow = this.firstAttempt;
// LBZ2: Set up the 2-byte frequency table
- for (int i = 65537; --i >= 0;) {
- ftab[i] = 0;
- }
+ Arrays.fill(ftab, 0);
/*
* In the various block-sized structures, live data runs from 0 to
diff --git a/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java b/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
index bee8b778..84a58217 100644
--- a/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
+++ b/src/main/java/org/apache/commons/compress/harmony/archive/internal/nls/Messages.java
@@ -25,8 +25,10 @@ package org.apache.commons.compress.harmony.archive.internal.nls;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.util.Arrays;
import java.util.Locale;
import java.util.MissingResourceException;
+import java.util.Objects;
import java.util.ResourceBundle;
//import org.apache.commons.compress.harmony.kernel.vm.VM;
@@ -145,13 +147,7 @@ public class Messages {
public static String format(final String format, final Object[] args) {
final StringBuilder answer = new StringBuilder(format.length() + (args.length * 20));
final String[] argStrings = new String[args.length];
- for (int i = 0; i < args.length; ++i) {
- if (args[i] == null) {
- argStrings[i] = "<null>"; //$NON-NLS-1$
- } else {
- argStrings[i] = args[i].toString();
- }
- }
+ Arrays.setAll(argStrings, i -> Objects.toString(args[i], "<null>")); //$NON-NLS-1$
int lastI = 0;
for (int i = format.indexOf('{', 0); i >= 0; i = format.indexOf('{', lastI)) {
if (i != 0 && format.charAt(i - 1) == '\\') {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
index 574ff779..19222337 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/AttributeDefinitionBands.java
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -175,13 +176,11 @@ public class AttributeDefinitionBands extends BandSet {
return temp;
}
- private void addAttributeDefinitions(final Map<String, String> layouts, final int[] availableIndices, final int contextType) {
+ private void addAttributeDefinitions(final Map<String, String> layoutMap, final int[] availableIndices, final int contextType) {
final int i = 0;
- for (String name : layouts.keySet()) {
- final String layout = layouts.get(name);
+ layoutMap.forEach((name, layout) -> {
final int index = availableIndices[i];
- final AttributeDefinition definition = new AttributeDefinition(index, contextType, cpBands.getCPUtf8(name),
- cpBands.getCPUtf8(layout));
+ final AttributeDefinition definition = new AttributeDefinition(index, contextType, cpBands.getCPUtf8(name), cpBands.getCPUtf8(layout));
attributeDefinitions.add(definition);
switch (contextType) {
case CONTEXT_CLASS:
@@ -196,7 +195,7 @@ public class AttributeDefinitionBands extends BandSet {
case CONTEXT_CODE:
codeAttributeLayouts.add(definition);
}
- }
+ });
}
public List<AttributeDefinition> getClassAttributeLayouts() {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
index ad2b267e..ff1d99bd 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
@@ -20,6 +20,7 @@ import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import org.apache.commons.compress.utils.ExactMath;
@@ -167,9 +168,7 @@ public final class BHSDCodec extends Codec {
largest = calculateLargest();
powers = new long[b];
- for (int c = 0; c < b; c++) {
- powers[c] = (long) Math.pow(h, c);
- }
+ Arrays.setAll(powers, c -> (long) Math.pow(h, c));
}
/**
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
index 9c98966d..c4a1eb8c 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BandSet.java
@@ -19,9 +19,12 @@ package org.apache.commons.compress.harmony.pack200;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
@@ -350,28 +353,27 @@ public abstract class BandSet {
results.numCodecsTried += 3; // quite a bit more effort to try this codec
final Map<Integer, Integer> distinctValues = bandData.distinctValues;
- final List<Integer> favoured = new ArrayList<>();
+ final List<Integer> favored = new ArrayList<>();
distinctValues.forEach((k, v) -> {
if (v.intValue() > 2 || distinctValues.size() < 256) { // TODO: tweak
- favoured.add(k);
+ favored.add(k);
}
});
- // Sort the favoured list with the most commonly occurring first
+ // Sort the favored list with the most commonly occurring first
if (distinctValues.size() > 255) {
- favoured.sort((arg0, arg1) -> distinctValues.get(arg1).compareTo(distinctValues.get(arg0)));
+ favored.sort((arg0, arg1) -> distinctValues.get(arg1).compareTo(distinctValues.get(arg0)));
}
- final IntList unfavoured = new IntList();
- final Map<Integer, Integer> favouredToIndex = new HashMap<>();
- for (int i = 0; i < favoured.size(); i++) {
- final Integer value = favoured.get(i);
- favouredToIndex.put(value, Integer.valueOf(i));
+ final Map<Integer, Integer> favoredToIndex = new HashMap<>();
+ for (int i = 0; i < favored.size(); i++) {
+ favoredToIndex.put(favored.get(i), Integer.valueOf(i));
}
+ final IntList unfavoured = new IntList();
final int[] tokens = new int[band.length];
for (int i = 0; i < band.length; i++) {
- final Integer favouredIndex = favouredToIndex.get(Integer.valueOf(band[i]));
+ final Integer favouredIndex = favoredToIndex.get(Integer.valueOf(band[i]));
if (favouredIndex == null) {
tokens[i] = 0;
unfavoured.add(band[i]);
@@ -379,8 +381,8 @@ public abstract class BandSet {
tokens[i] = favouredIndex.intValue() + 1;
}
}
- favoured.add(favoured.get(favoured.size() - 1)); // repeat last value
- final int[] favouredBand = integerListToArray(favoured);
+ favored.add(favored.get(favored.size() - 1)); // repeat last value
+ final int[] favouredBand = integerListToArray(favored);
final int[] unfavouredBand = unfavoured.toArray();
// Analyse the three bands to get the best codec
@@ -391,7 +393,7 @@ public abstract class BandSet {
int l = 0;
Codec tokenCodec = null;
byte[] tokensEncoded;
- final int k = favoured.size() - 1;
+ final int k = favored.size() - 1;
if (k < 256) {
tdefL = 1;
tokensEncoded = Codec.BYTE1.encode(tokens);
@@ -516,9 +518,7 @@ public abstract class BandSet {
final BHSDCodec hiCodec, final boolean haveHiFlags) throws Pack200Exception {
if (!haveHiFlags) {
final int[] loBits = new int[flags.length];
- for (int i = 0; i < flags.length; i++) {
- loBits[i] = (int) flags[i];
- }
+ Arrays.setAll(loBits, i -> (int) flags[i]);
return encodeBandInt(name, loBits, loCodec);
}
final int[] hiBits = new int[flags.length];
@@ -543,11 +543,7 @@ public abstract class BandSet {
* @return conversion result.
*/
protected int[] integerListToArray(final List<Integer> integerList) {
- final int[] array = new int[integerList.size()];
- for (int i = 0; i < array.length; i++) {
- array[i] = integerList.get(i).intValue();
- }
- return array;
+ return integerList.stream().mapToInt(Integer::intValue).toArray();
}
/**
@@ -557,11 +553,7 @@ public abstract class BandSet {
* @return conversion result.
*/
protected long[] longListToArray(final List<Long> longList) {
- final long[] array = new long[longList.size()];
- for (int i = 0; i < array.length; i++) {
- array[i] = longList.get(i).longValue();
- }
- return array;
+ return longList.stream().mapToLong(Long::longValue).toArray();
}
/**
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
index 27594af7..1b5fec94 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BcBands.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import org.objectweb.asm.Label;
@@ -195,19 +196,11 @@ public class BcBands extends BandSet {
}
private List<Integer> getIndexInClass(final List<CPMethodOrField> cPMethodOrFieldList) {
- final List<Integer> indices = new ArrayList<>(cPMethodOrFieldList.size());
- for (int i = 0; i < cPMethodOrFieldList.size(); i++) {
- indices.add(Integer.valueOf(cPMethodOrFieldList.get(i).getIndexInClass()));
- }
- return indices;
+ return cPMethodOrFieldList.stream().collect(Collectors.mapping(CPMethodOrField::getIndexInClass, Collectors.toList()));
}
private List<Integer> getIndexInClassForConstructor(final List<CPMethodOrField> cPMethodList) {
- final List<Integer> indices = new ArrayList<>(cPMethodList.size());
- for (int i = 0; i < cPMethodList.size(); i++) {
- indices.add(Integer.valueOf(cPMethodList.get(i).getIndexInClassForConstructor()));
- }
- return indices;
+ return cPMethodList.stream().collect(Collectors.mapping(CPMethodOrField::getIndexInClassForConstructor, Collectors.toList()));
}
public void visitEnd() {
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
index 6730445f..09b94152 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
@@ -19,6 +19,7 @@ package org.apache.commons.compress.harmony.pack200;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
@@ -200,9 +201,7 @@ public class ClassBands extends BandSet {
class_super[index] = cpBands.getCPClass(superName);
class_interface_count[index] = interfaces.length;
class_interface[index] = new CPClass[interfaces.length];
- for (int i = 0; i < interfaces.length; i++) {
- class_interface[index][i] = cpBands.getCPClass(interfaces[i]);
- }
+ Arrays.setAll(class_interface[index], i -> cpBands.getCPClass(interfaces[i]));
major_versions[index] = major;
class_flags[index] = flags;
if (!anySyntheticClasses && ((flags & (1 << 12)) != 0)
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
index 8c982cea..c951db69 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
@@ -138,16 +138,12 @@ public class CpBands extends BandSet {
final int[] cpUtf8Chars = new int[chars.size()];
final int[] cpUtf8BigSuffix = new int[bigSuffix.size()];
final int[][] cpUtf8BigChars = new int[bigSuffix.size()][];
- for (int i = 0; i < cpUtf8Chars.length; i++) {
- cpUtf8Chars[i] = chars.get(i).charValue();
- }
+ Arrays.setAll(cpUtf8Chars, i -> chars.get(i).charValue());
for (int i = 0; i < cpUtf8BigSuffix.length; i++) {
final int numBigChars = bigSuffix.get(i).intValue();
cpUtf8BigSuffix[i] = numBigChars;
cpUtf8BigChars[i] = new int[numBigChars];
- for (int j = 0; j < numBigChars; j++) {
- cpUtf8BigChars[i][j] = bigChars.remove(0).charValue();
- }
+ Arrays.setAll(cpUtf8BigChars[i], j -> bigChars.remove(0).charValue());
}
byte[] encodedBand = encodeBandInt("cpUtf8Prefix", cpUtf8Prefix, Codec.DELTA5);
@@ -283,9 +279,7 @@ public class CpBands extends BandSet {
i++;
}
final int[] cpSignatureClasses = new int[classes.size()];
- for (int j = 0; j < cpSignatureClasses.length; j++) {
- cpSignatureClasses[j] = classes.get(j).getIndex();
- }
+ Arrays.setAll(cpSignatureClasses, j -> classes.get(j).getIndex());
byte[] encodedBand = encodeBandInt("cpSignatureForm", cpSignatureForm, Codec.DELTA5);
out.write(encodedBand);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
index 1ff665a5..116e427c 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/FileBands.java
@@ -18,6 +18,7 @@ package org.apache.commons.compress.harmony.pack200;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -99,9 +100,7 @@ public class FileBands extends BandSet {
}
if (isLatest) {
- for (int index = 0; index < size; index++) {
- file_modtime[index] = latestModtime;
- }
+ Arrays.fill(file_modtime, latestModtime);
}
}
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java b/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
index 95a1efa6..e28535ab 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/MetadataBandGroup.java
@@ -200,11 +200,7 @@ public class MetadataBandGroup extends BandSet {
}
private int[] tagListToArray(final List<String> list) {
- final int[] ints = new int[list.size()];
- for (int i = 0; i < ints.length; i++) {
- ints[i] = list.get(i).charAt(0);
- }
- return ints;
+ return list.stream().mapToInt(s -> s.charAt(0)).toArray();
}
/**
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
index 1c8d95c7..95f61d07 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
@@ -40,7 +40,7 @@ import org.objectweb.asm.Type;
*/
public class Segment extends ClassVisitor {
- public static int ASM_API = Opcodes.ASM4; /* see https://asm.ow2.io/javadoc/org/objectweb/asm/Opcodes.html#ASM4 */
+ public static int ASM_API = Opcodes.ASM4; /* see https://asm.ow2.io/javadoc/org/objectweb/asm/Opcodes.html#ASM4 */
public Segment() {
super(ASM_API);
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
index f10be1a4..f1a304fc 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
@@ -298,8 +298,7 @@ public abstract class BandSet {
final int[] indices = decodeBandInt(name, in, codec, count);
final CPDouble[] result = new CPDouble[indices.length];
for (int i1 = 0; i1 < count; i1++) {
- final int index = indices[i1];
- result[i1] = segment.getCpBands().cpDoubleValue(index);
+ result[i1] = segment.getCpBands().cpDoubleValue(indices[i1]);
}
return result;
}
@@ -309,8 +308,7 @@ public abstract class BandSet {
final int[] indices = decodeBandInt(name, in, codec, count);
final CPFloat[] result = new CPFloat[indices.length];
for (int i1 = 0; i1 < count; i1++) {
- final int index = indices[i1];
- result[i1] = segment.getCpBands().cpFloatValue(index);
+ result[i1] = segment.getCpBands().cpFloatValue(indices[i1]);
}
return result;
}
@@ -371,8 +369,7 @@ public abstract class BandSet {
final int[] indices = decodeBandInt(name, in, codec, count);
final CPString[] result = new CPString[indices.length];
for (int i1 = 0; i1 < count; i1++) {
- final int index = indices[i1];
- result[i1] = segment.getCpBands().cpStringValue(index);
+ result[i1] = segment.getCpBands().cpStringValue(indices[i1]);
}
return result;
}
@@ -383,8 +380,7 @@ public abstract class BandSet {
final int[] indices = decodeBandInt(name, in, codec, count);
final CPInterfaceMethodRef[] result = new CPInterfaceMethodRef[indices.length];
for (int i1 = 0; i1 < count; i1++) {
- final int index = indices[i1];
- result[i1] = cpBands.cpIMethodValue(index);
+ result[i1] = cpBands.cpIMethodValue(indices[i1]);
}
return result;
}
@@ -395,8 +391,7 @@ public abstract class BandSet {
final int[] indices = decodeBandInt(name, in, codec, count);
final CPMethodRef[] result = new CPMethodRef[indices.length];
for (int i1 = 0; i1 < count; i1++) {
- final int index = indices[i1];
- result[i1] = cpBands.cpMethodValue(index);
+ result[i1] = cpBands.cpMethodValue(indices[i1]);
}
return result;
}
@@ -430,8 +425,7 @@ public abstract class BandSet {
final int[] indices = decodeBandInt(name, in, codec, count);
final CPUTF8[] result = new CPUTF8[indices.length];
for (int i1 = 0; i1 < count; i1++) {
- final int index = indices[i1];
- result[i1] = segment.getCpBands().cpSignatureValue(index);
+ result[i1] = segment.getCpBands().cpSignatureValue(indices[i1]);
}
return result;
}
@@ -447,8 +441,7 @@ public abstract class BandSet {
final CPUTF8[] result1 = new CPUTF8[sum];
final int[] indices = decodeBandInt(name, in, codec, sum);
for (int i1 = 0; i1 < sum; i1++) {
- final int index = indices[i1];
- result1[i1] = segment.getCpBands().cpSignatureValue(index);
+ result1[i1] = segment.getCpBands().cpSignatureValue(indices[i1]);
}
int pos = 0;
for (int i = 0; i < counts.length; i++) {
@@ -465,17 +458,14 @@ public abstract class BandSet {
final int[] indices = decodeBandInt(name, in, codec, count);
final CPClass[] result = new CPClass[indices.length];
for (int i1 = 0; i1 < count; i1++) {
- final int index = indices[i1];
- result[i1] = segment.getCpBands().cpClassValue(index);
+ result[i1] = segment.getCpBands().cpClassValue(indices[i1]);
}
return result;
}
protected String[] getReferences(final int[] ints, final String[] reference) {
final String[] result = new String[ints.length];
- for (int i = 0; i < result.length; i++) {
- result[i] = reference[ints[i]];
- }
+ Arrays.setAll(result, i -> reference[ints[i]]);
return result;
}
@@ -485,7 +475,6 @@ public abstract class BandSet {
result[i] = new String[ints[i].length];
for (int j = 0; j < result[i].length; j++) {
result[i][j] = reference[ints[i][j]];
-
}
}
return result;
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
index c38c077c..bf0fa5c9 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/ClassBands.java
@@ -19,6 +19,7 @@ package org.apache.commons.compress.harmony.unpack200;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import org.apache.commons.compress.harmony.pack200.Codec;
@@ -427,9 +428,7 @@ public class ClassBands extends BandSet {
// Prepare empty attribute lists
classAttributes = new ArrayList[classCount];
- for (int i = 0; i < classCount; i++) {
- classAttributes[i] = new ArrayList<>();
- }
+ Arrays.setAll(classAttributes, i -> new ArrayList<>());
classFlags = parseFlags("class_flags", in, classCount, Codec.UNSIGNED5, options.hasClassFlagsHi());
final int classAttrCount = SegmentUtils.countBit16(classFlags);
@@ -701,9 +700,7 @@ public class ClassBands extends BandSet {
final int codeFlagsCount = allCodeHasFlags ? codeCount : codeSpecialHeader;
codeAttributes = new List[codeFlagsCount];
- for (int i = 0; i < codeAttributes.length; i++) {
- codeAttributes[i] = new ArrayList<>();
- }
+ Arrays.setAll(codeAttributes, i -> new ArrayList<>());
parseCodeAttrBands(in, codeFlagsCount);
}
@@ -988,9 +985,7 @@ public class ClassBands extends BandSet {
AttributeLayout.CONTEXT_METHOD);
final AttributeLayout[] rxaLayouts = {rvaLayout, riaLayout, rvpaLayout, ripaLayout, adLayout};
- for (int i = 0; i < rxaLayouts.length; i++) {
- rxaCounts[i] = SegmentUtils.countMatches(methodFlags, rxaLayouts[i]);
- }
+ Arrays.setAll(rxaCounts, i -> SegmentUtils.countMatches(methodFlags, rxaLayouts[i]));
final int[] backwardsCalls = new int[5];
int methodAttrIndex = 0;
for (int i = 0; i < backwardsCalls.length; i++) {
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/CpBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/CpBands.java
index e9220197..c6734388 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/CpBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/CpBands.java
@@ -19,6 +19,7 @@ package org.apache.commons.compress.harmony.unpack200;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -186,9 +187,7 @@ public class CpBands extends BandSet {
final int cpDoubleCount = header.getCpDoubleCount();
final long[] band = parseFlags("cp_Double", in, cpDoubleCount, Codec.UDELTA5, Codec.DELTA5);
cpDouble = new double[band.length];
- for (int i = 0; i < band.length; i++) {
- cpDouble[i] = Double.longBitsToDouble(band[i]);
- }
+ Arrays.setAll(cpDouble, i -> Double.longBitsToDouble(band[i]));
}
/**
@@ -339,9 +338,7 @@ public class CpBands extends BandSet {
final int cpStringCount = header.getCpStringCount();
cpStringInts = decodeBandInt("cp_String", in, Codec.UDELTA5, cpStringCount);
cpString = new String[cpStringCount];
- for (int i = 0; i < cpStringCount; i++) {
- cpString[i] = cpUTF8[cpStringInts[i]];
- }
+ Arrays.setAll(cpString, i -> cpUTF8[cpStringInts[i]]);
}
private void parseCpUtf8(final InputStream in) throws IOException, Pack200Exception {
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/IcBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/IcBands.java
index 89a2a7ea..410cda79 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/IcBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/IcBands.java
@@ -224,12 +224,7 @@ public class IcBands extends BandSet {
return index1.compareTo(index2);
});
- final IcTuple[] relevantTuplesArray = new IcTuple[relevantTuples.size()];
- for (int i = 0; i < relevantTuplesArray.length; i++) {
- relevantTuplesArray[i] = relevantTuples.get(i);
- }
-
- return relevantTuplesArray;
+ return relevantTuples.toArray(IcTuple.EMPTY_ARRAY);
}
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/IcTuple.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/IcTuple.java
index df6c0b65..0ee5fc20 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/IcTuple.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/IcTuple.java
@@ -29,6 +29,7 @@ import java.util.List;
*/
public class IcTuple {
+ private static final String[] EMPTY_STRING_ARRAY = new String[] {};
private final int cIndex;
private final int c2Index;
private final int nIndex;
@@ -65,6 +66,8 @@ public class IcTuple {
}
public static final int NESTED_CLASS_FLAG = 0x00010000;
+ static final IcTuple[] EMPTY_ARRAY = {};
+
protected String C; // this class
protected int F; // flags
protected String C2; // outer class
@@ -122,11 +125,7 @@ public class IcTuple {
resultList.add(className.substring(start));
}
}
- final String[] result = new String[resultList.size()];
- for (int i = 0; i < resultList.size(); i++) {
- result[i] = resultList.get(i);
- }
- return result;
+ return resultList.toArray(EMPTY_STRING_ARRAY);
}
/**
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/MetadataBandGroup.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/MetadataBandGroup.java
index 0b2307a2..b7b13845 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/MetadataBandGroup.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/MetadataBandGroup.java
@@ -163,9 +163,7 @@ public class MetadataBandGroup {
private Attribute getAttribute(final int numAnnotations, final CPUTF8[] types, final int[] pairCounts,
final Iterator<CPUTF8> namesIterator) {
final Annotation[] annotations = new Annotation[numAnnotations];
- for (int i = 0; i < numAnnotations; i++) {
- annotations[i] = getAnnotation(types[i], pairCounts[i], namesIterator);
- }
+ Arrays.setAll(annotations, i -> getAnnotation(types[i], pairCounts[i], namesIterator));
return new RuntimeVisibleorInvisibleAnnotationsAttribute(type.equals("RVA") ? rvaUTF8 : riaUTF8, annotations);
}
@@ -175,9 +173,7 @@ public class MetadataBandGroup {
final int numAnnotations = anno_N[anno_N_Index++];
final int[] pairCounts = pair_N[pair_N_Index++];
final Annotation[] annotations = new Annotation[numAnnotations];
- for (int j = 0; j < annotations.length; j++) {
- annotations[j] = getAnnotation(type_RS[anno_N_Index - 1][j], pairCounts[j], namesIterator);
- }
+ Arrays.setAll(annotations, j -> getAnnotation(type_RS[anno_N_Index - 1][j], pairCounts[j], namesIterator));
parameter_annotations[i] = new ParameterAnnotation(annotations);
}
return new RuntimeVisibleorInvisibleParameterAnnotationsAttribute(type.equals("RVPA") ? rvpaUTF8 : ripaUTF8,
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/Segment.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/Segment.java
index 6564cc21..6ac2ee43 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/Segment.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/Segment.java
@@ -23,7 +23,9 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -326,10 +328,7 @@ public class Segment {
}
// eliminate "duplicates"
- for (int index = 0; index < duplicates.size(); index++) {
- final IcTuple tuple = duplicates.get(index);
- result.remove(tuple);
- }
+ duplicates.forEach(result::remove);
return result;
}
@@ -566,7 +565,7 @@ public class Segment {
}
public void setLogStream(final OutputStream logStream) {
- this.logStream = new PrintWriter(logStream);
+ this.logStream = new PrintWriter(new OutputStreamWriter(logStream, Charset.defaultCharset()), false);
}
public void log(final int logLevel, final String message) {
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/BCIRenumberedAttribute.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/BCIRenumberedAttribute.java
index 14941724..a9f3d75d 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/BCIRenumberedAttribute.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/BCIRenumberedAttribute.java
@@ -18,6 +18,7 @@ package org.apache.commons.compress.harmony.unpack200.bytecode;
import java.io.DataOutputStream;
import java.io.IOException;
+import java.util.Arrays;
import java.util.List;
import org.apache.commons.compress.harmony.pack200.Pack200Exception;
@@ -68,9 +69,7 @@ public abstract class BCIRenumberedAttribute extends Attribute {
}
renumbered = true;
final int[] startPCs = getStartPCs();
- for (int index = 0; index < startPCs.length; index++) {
- startPCs[index] = byteCodeOffsets.get(startPCs[index]).intValue();
- }
+ Arrays.setAll(startPCs, i -> byteCodeOffsets.get(startPCs[i]).intValue());
}
}
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/InnerClassesAttribute.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/InnerClassesAttribute.java
index 358a3944..a8a5c39a 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/InnerClassesAttribute.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/InnerClassesAttribute.java
@@ -125,11 +125,7 @@ public class InnerClassesAttribute extends Attribute {
@Override
protected ClassFileEntry[] getNestedClassFileEntries() {
- final ClassFileEntry[] result = new ClassFileEntry[nestedClassFileEntries.size()];
- for (int index = 0; index < result.length; index++) {
- result[index] = nestedClassFileEntries.get(index);
- }
- return result;
+ return nestedClassFileEntries.toArray(ClassFileEntry.NONE);
}
@Override
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleAnnotationsAttribute.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleAnnotationsAttribute.java
index 4612d451..c1c71ae7 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleAnnotationsAttribute.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleAnnotationsAttribute.java
@@ -77,10 +77,6 @@ public class RuntimeVisibleorInvisibleAnnotationsAttribute extends AnnotationsAt
for (Annotation annotation : annotations) {
nested.addAll(annotation.getClassFileEntries());
}
- final ClassFileEntry[] nestedEntries = new ClassFileEntry[nested.size()];
- for (int i = 0; i < nestedEntries.length; i++) {
- nestedEntries[i] = (ClassFileEntry) nested.get(i);
- }
- return nestedEntries;
+ return nested.toArray(ClassFileEntry.NONE);
}
}
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleParameterAnnotationsAttribute.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleParameterAnnotationsAttribute.java
index d9be8098..28537af7 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleParameterAnnotationsAttribute.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleParameterAnnotationsAttribute.java
@@ -118,11 +118,7 @@ public class RuntimeVisibleorInvisibleParameterAnnotationsAttribute extends Anno
for (ParameterAnnotation parameter_annotation : parameter_annotations) {
nested.addAll(parameter_annotation.getClassFileEntries());
}
- final ClassFileEntry[] nestedEntries = new ClassFileEntry[nested.size()];
- for (int i = 0; i < nestedEntries.length; i++) {
- nestedEntries[i] = (ClassFileEntry) nested.get(i);
- }
- return nestedEntries;
+ return nested.toArray(ClassFileEntry.NONE);
}
}
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/forms/LookupSwitchForm.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/forms/LookupSwitchForm.java
index d4def4b3..fb55a729 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/forms/LookupSwitchForm.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/forms/LookupSwitchForm.java
@@ -16,6 +16,8 @@
*/
package org.apache.commons.compress.harmony.unpack200.bytecode.forms;
+import java.util.Arrays;
+
import org.apache.commons.compress.harmony.unpack200.bytecode.ByteCode;
import org.apache.commons.compress.harmony.unpack200.bytecode.OperandManager;
@@ -39,13 +41,9 @@ public class LookupSwitchForm extends SwitchForm {
final int case_count = operandManager.nextCaseCount();
final int default_pc = operandManager.nextLabel();
final int[] case_values = new int[case_count];
- for (int index = 0; index < case_count; index++) {
- case_values[index] = operandManager.nextCaseValues();
- }
+ Arrays.setAll(case_values, i -> operandManager.nextCaseValues());
final int[] case_pcs = new int[case_count];
- for (int index = 0; index < case_count; index++) {
- case_pcs[index] = operandManager.nextLabel();
- }
+ Arrays.setAll(case_pcs, i -> operandManager.nextLabel());
final int[] labelsArray = new int[case_count + 1];
labelsArray[0] = default_pc;
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/forms/TableSwitchForm.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/forms/TableSwitchForm.java
index f28e8f97..1c77c7cb 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/forms/TableSwitchForm.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/bytecode/forms/TableSwitchForm.java
@@ -16,6 +16,8 @@
*/
package org.apache.commons.compress.harmony.unpack200.bytecode.forms;
+import java.util.Arrays;
+
import org.apache.commons.compress.harmony.unpack200.bytecode.ByteCode;
import org.apache.commons.compress.harmony.unpack200.bytecode.OperandManager;
@@ -42,9 +44,7 @@ public class TableSwitchForm extends SwitchForm {
case_value = operandManager.nextCaseValues();
final int[] case_pcs = new int[case_count];
- for (int index = 0; index < case_count; index++) {
- case_pcs[index] = operandManager.nextLabel();
- }
+ Arrays.setAll(case_pcs, i -> operandManager.nextLabel());
final int[] labelsArray = new int[case_count + 1];
labelsArray[0] = default_pc;
diff --git a/src/main/java/org/apache/commons/compress/utils/ArchiveUtils.java b/src/main/java/org/apache/commons/compress/utils/ArchiveUtils.java
index c464c8cb..2da6a2ff 100644
--- a/src/main/java/org/apache/commons/compress/utils/ArchiveUtils.java
+++ b/src/main/java/org/apache/commons/compress/utils/ArchiveUtils.java
@@ -259,9 +259,7 @@ public class ArchiveUtils {
final char[] cs = s.toCharArray();
final char[] chars = cs.length <= MAX_SANITIZED_NAME_LENGTH ? cs : Arrays.copyOf(cs, MAX_SANITIZED_NAME_LENGTH);
if (cs.length > MAX_SANITIZED_NAME_LENGTH) {
- for (int i = MAX_SANITIZED_NAME_LENGTH - 3; i < MAX_SANITIZED_NAME_LENGTH; i++) {
- chars[i] = '.';
- }
+ Arrays.fill(chars, MAX_SANITIZED_NAME_LENGTH - 3, MAX_SANITIZED_NAME_LENGTH, '.');
}
final StringBuilder sb = new StringBuilder();
for (final char c : chars) {