Skip to content

Commit

Permalink
fixes #3961
Browse files Browse the repository at this point in the history
  • Loading branch information
VishnuSanal committed Oct 21, 2023
1 parent 6783e4d commit f2e903a
Showing 1 changed file with 19 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
import java.nio.CharBuffer;
import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.nio.charset.CoderMalfunctionError;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
Expand All @@ -51,6 +52,7 @@
import org.apache.commons.compress.utils.ByteUtils;
import org.apache.commons.compress.utils.CRC32VerifyingInputStream;
import org.apache.commons.compress.utils.InputStreamStatistics;
import org.jetbrains.annotations.Nullable;

/**
* Reads a 7z file, using SeekableByteChannel under the covers.
Expand Down Expand Up @@ -2117,17 +2119,27 @@ public String getDefaultName() {
return lastSegment + "~";
}

@Nullable
private static byte[] utf16Decode(final char[] chars) {
if (chars == null) {
return null;
}
final ByteBuffer encoded = Charset.forName("UTF-16LE").encode(CharBuffer.wrap(chars));
if (encoded.hasArray()) {
return encoded.array();

try {
final ByteBuffer encoded = StandardCharsets.UTF_16LE.encode(CharBuffer.wrap(chars));

if (encoded.hasArray()) {
return encoded.array();
}
final byte[] e = new byte[encoded.remaining()];
encoded.get(e);

return e;

} catch (CoderMalfunctionError e) {
e.printStackTrace();
return null;
}
final byte[] e = new byte[encoded.remaining()];
encoded.get(e);
return e;
}

private static int assertFitsIntoNonNegativeInt(final String what, final long value)
Expand Down

0 comments on commit f2e903a

Please sign in to comment.