You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by db...@apache.org on 2018/01/01 20:52:02 UTC
commons-imaging git commit: IMAGING-212: use StandardCharsets to
avoid reflection and UnsupportedEncodingExceptions
Repository: commons-imaging
Updated Branches:
refs/heads/master 4701b9628 -> 7862d6028
IMAGING-212: use StandardCharsets to avoid reflection and UnsupportedEncodingExceptions
Project: http://git-wip-us.apache.org/repos/asf/commons-imaging/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-imaging/commit/7862d602
Tree: http://git-wip-us.apache.org/repos/asf/commons-imaging/tree/7862d602
Diff: http://git-wip-us.apache.org/repos/asf/commons-imaging/diff/7862d602
Branch: refs/heads/master
Commit: 7862d6028dafff8cd2b117b1cae0525ca655ba20
Parents: 4701b96
Author: Dave Brosius <db...@mebigfatguy.com>
Authored: Mon Jan 1 15:51:43 2018 -0500
Committer: Dave Brosius <db...@mebigfatguy.com>
Committed: Mon Jan 1 15:51:43 2018 -0500
----------------------------------------------------------------------
.../imaging/formats/gif/GifImageParser.java | 28 ++++++-------
.../commons/imaging/formats/icns/IcnsType.java | 15 ++-----
.../imaging/formats/jpeg/JpegImageParser.java | 7 +---
.../imaging/formats/jpeg/iptc/IptcParser.java | 7 ++--
.../formats/jpeg/segments/App14Segment.java | 9 +----
.../imaging/formats/jpeg/xmp/JpegXmpParser.java | 10 ++---
.../formats/jpeg/xmp/JpegXmpRewriter.java | 3 +-
.../commons/imaging/formats/png/ChunkType.java | 9 +----
.../commons/imaging/formats/png/PngWriter.java | 37 ++++++++----------
.../formats/png/chunks/PngChunkIccp.java | 3 +-
.../formats/png/chunks/PngChunkItxt.java | 11 +++---
.../formats/png/chunks/PngChunkScal.java | 5 ++-
.../formats/png/chunks/PngChunkText.java | 5 ++-
.../formats/png/chunks/PngChunkZtxt.java | 5 ++-
.../commons/imaging/formats/pnm/PamWriter.java | 13 ++++---
.../commons/imaging/formats/pnm/PbmWriter.java | 7 ++--
.../commons/imaging/formats/pnm/PgmWriter.java | 9 +++--
.../commons/imaging/formats/pnm/PpmWriter.java | 13 ++++---
.../imaging/formats/psd/ImageResourceBlock.java | 6 +--
.../imaging/formats/psd/PsdImageParser.java | 12 ++----
.../imaging/formats/tiff/TiffImageParser.java | 11 ++----
.../formats/tiff/fieldtypes/FieldTypeAscii.java | 41 +++++---------------
.../formats/tiff/taginfos/TagInfoAscii.java | 20 ++++------
.../formats/tiff/taginfos/TagInfoGpsText.java | 18 +++------
.../formats/tiff/taginfos/TagInfoXpString.java | 32 ++++++---------
.../formats/tiff/write/TiffImageWriterBase.java | 3 +-
.../imaging/formats/xbm/XbmImageParser.java | 21 +++++-----
.../imaging/formats/xpm/XpmImageParser.java | 21 +++++-----
.../org/apache/commons/imaging/icc/IccTag.java | 5 ++-
.../commons/imaging/icc/IccTagDataTypes.java | 7 ++--
30 files changed, 161 insertions(+), 232 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java b/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
index f3d4e67..32c603d 100644
--- a/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
@@ -33,8 +33,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -290,7 +290,7 @@ public class GifImageParser extends ImageParser {
if (formatCompliance != null) {
formatCompliance.addComment(
"Unknown Application Extension ("
- + new String(label, "US-ASCII") + ")",
+ + new String(label, StandardCharsets.US_ASCII) + ")",
completeCode);
}
@@ -508,7 +508,7 @@ public class GifImageParser extends ImageParser {
for (final GifBlock block : blocks) {
if (block.blockCode == code) {
final byte[] bytes = ((GenericGifBlock) block).appendSubBlocks();
- result.add(new String(bytes, "US-ASCII"));
+ result.add(new String(bytes, StandardCharsets.US_ASCII));
}
}
@@ -870,7 +870,7 @@ public class GifImageParser extends ImageParser {
bos.write(XMP_APPLICATION_ID_AND_AUTH_CODE.length); // 0x0B
bos.write(XMP_APPLICATION_ID_AND_AUTH_CODE);
- final byte[] xmpXmlBytes = xmpXml.getBytes("utf-8");
+ final byte[] xmpXmlBytes = xmpXml.getBytes(StandardCharsets.UTF_8);
bos.write(xmpXmlBytes);
// write "magic trailer"
@@ -1048,18 +1048,14 @@ public class GifImageParser extends ImageParser {
"XMP block in GIF missing magic trailer.");
}
- try {
- // XMP is UTF-8 encoded xml.
- final String xml = new String(
- blockBytes,
- XMP_APPLICATION_ID_AND_AUTH_CODE.length,
- blockBytes.length
- - (XMP_APPLICATION_ID_AND_AUTH_CODE.length + GIF_MAGIC_TRAILER.length),
- "utf-8");
- result.add(xml);
- } catch (final UnsupportedEncodingException e) {
- throw new ImageReadException("Invalid XMP Block in GIF.", e);
- }
+ // XMP is UTF-8 encoded xml.
+ final String xml = new String(
+ blockBytes,
+ XMP_APPLICATION_ID_AND_AUTH_CODE.length,
+ blockBytes.length
+ - (XMP_APPLICATION_ID_AND_AUTH_CODE.length + GIF_MAGIC_TRAILER.length),
+ StandardCharsets.UTF_8);
+ result.add(xml);
}
if (result.size() < 1) {
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.java b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.java
index 276da92..7f71b9c 100644
--- a/src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.java
+++ b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.java
@@ -16,7 +16,7 @@
*/
package org.apache.commons.imaging.formats.icns;
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
enum IcnsType {
@@ -166,12 +166,7 @@ enum IcnsType {
}
public static int typeAsInt(final String type) {
- byte[] bytes;
- try {
- bytes = type.getBytes("US-ASCII");
- } catch (final UnsupportedEncodingException unsupportedEncodingException) {
- throw new IllegalArgumentException("Your Java doesn't support US-ASCII", unsupportedEncodingException);
- }
+ byte[] bytes = type.getBytes(StandardCharsets.US_ASCII);
if (bytes.length != 4) {
throw new IllegalArgumentException("Invalid ICNS type");
}
@@ -187,10 +182,6 @@ enum IcnsType {
bytes[1] = (byte) (0xff & (type >> 16));
bytes[2] = (byte) (0xff & (type >> 8));
bytes[3] = (byte) (0xff & type);
- try {
- return new String(bytes, "US-ASCII");
- } catch (final UnsupportedEncodingException unsupportedEncodingException) {
- throw new IllegalArgumentException("Your Java doesn't support US-ASCII", unsupportedEncodingException);
- }
+ return new String(bytes, StandardCharsets.US_ASCII);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
index bcd54f2..c49a739 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
@@ -20,8 +20,8 @@ import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -796,10 +796,7 @@ public class JpegImageParser extends ImageParser {
for (final Segment commentSegment : commentSegments) {
final ComSegment comSegment = (ComSegment) commentSegment;
String comment = "";
- try {
- comment = new String(comSegment.getComment(), "UTF-8");
- } catch (final UnsupportedEncodingException cannotHappen) { // NOPMD - can't happen
- }
+ comment = new String(comSegment.getComment(), StandardCharsets.UTF_8);
comments.add(comment);
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
index 7e5d687..907dc7e 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
@@ -29,6 +29,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -230,7 +231,7 @@ public class IptcParser extends BinaryFileParser {
// continue;
// }
- final String value = new String(recordData, "ISO-8859-1");
+ final String value = new String(recordData, StandardCharsets.ISO_8859_1);
final IptcType iptcType = IptcTypeLookup.getIptcType(recordType);
@@ -433,8 +434,8 @@ public class IptcParser extends BinaryFileParser {
}
bos.write(element.iptcType.getType());
- final byte[] recordData = element.getValue().getBytes("ISO-8859-1");
- if (!new String(recordData, "ISO-8859-1").equals(element.getValue())) {
+ final byte[] recordData = element.getValue().getBytes(StandardCharsets.ISO_8859_1);
+ if (!new String(recordData, StandardCharsets.ISO_8859_1).equals(element.getValue())) {
throw new ImageWriteException(
"Invalid record value, not ISO-8859-1");
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java
index 2685666..b5c7a31 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java
@@ -19,7 +19,7 @@ package org.apache.commons.imaging.formats.jpeg.segments;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
import static org.apache.commons.imaging.common.BinaryFunctions.*;
@@ -33,12 +33,7 @@ public class App14Segment extends AppnSegment {
public static final int ADOBE_COLOR_TRANSFORM_YCCK = 2;
static {
- byte[] adobe = null;
- try {
- adobe = "Adobe".getBytes("US-ASCII");
- } catch (final UnsupportedEncodingException cannotHappen) { // NOPMD - can't happen
- }
- ADOBE_PREFIX = adobe;
+ ADOBE_PREFIX = "Adobe".getBytes(StandardCharsets.US_ASCII);
}
public App14Segment(final int marker, final byte[] segmentData) throws IOException {
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
index 90b28aa..38e2d47 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
@@ -17,8 +17,8 @@
package org.apache.commons.imaging.formats.jpeg.xmp;
-import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.common.BinaryFileParser;
@@ -42,12 +42,8 @@ public class JpegXmpParser extends BinaryFileParser {
}
final int index = JpegConstants.XMP_IDENTIFIER.size();
- try {
- // segment data is UTF-8 encoded xml.
- return new String(segmentData, index, segmentData.length - index, "utf-8");
- } catch (final UnsupportedEncodingException e) {
- throw new ImageReadException("Invalid JPEG XMP Segment.", e);
- }
+ // segment data is UTF-8 encoded xml.
+ return new String(segmentData, index, segmentData.length - index, StandardCharsets.UTF_8);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
index 4b3656d..d2a67eb 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
@@ -21,6 +21,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@@ -176,7 +177,7 @@ public class JpegXmpRewriter extends JpegRewriter {
pieces = removeXmpSegments(pieces);
final List<JFIFPieceSegment> newPieces = new ArrayList<>();
- final byte[] xmpXmlBytes = xmpXml.getBytes("utf-8");
+ final byte[] xmpXmlBytes = xmpXml.getBytes(StandardCharsets.UTF_8);
int index = 0;
while (index < xmpXmlBytes.length) {
final int segmentSize = Math.min(xmpXmlBytes.length, JpegConstants.MAX_SEGMENT_SIZE);
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/png/ChunkType.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/ChunkType.java b/src/main/java/org/apache/commons/imaging/formats/png/ChunkType.java
index cd48648..1346808 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/ChunkType.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/ChunkType.java
@@ -16,7 +16,7 @@
*/
package org.apache.commons.imaging.formats.png;
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.common.BinaryFunctions;
@@ -89,12 +89,7 @@ public enum ChunkType {
private ChunkType() {
final char[] chars = name().toCharArray();
- try {
- array = name().getBytes("UTF-8");
- } catch (final UnsupportedEncodingException e) {
- // will not happen since UTF-8 is one of the StandardCharsets of the Java platform
- throw new RuntimeException(e);
- }
+ array = name().getBytes(StandardCharsets.UTF_8);
value = BinaryFunctions.charsToQuad(chars[0], chars[1], chars[2], chars[3]);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java b/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
index f08f882..0d5869d 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
@@ -20,7 +20,7 @@ import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -134,21 +134,21 @@ class PngWriter {
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
// keyword
- baos.write(text.keyword.getBytes("ISO-8859-1"));
+ baos.write(text.keyword.getBytes(StandardCharsets.ISO_8859_1));
baos.write(0);
baos.write(1); // compressed flag, true
baos.write(PngConstants.COMPRESSION_DEFLATE_INFLATE); // compression method
// language tag
- baos.write(text.languageTag.getBytes("ISO-8859-1"));
+ baos.write(text.languageTag.getBytes(StandardCharsets.ISO_8859_1));
baos.write(0);
// translated keyword
- baos.write(text.translatedKeyword.getBytes("utf-8"));
+ baos.write(text.translatedKeyword.getBytes(StandardCharsets.UTF_8));
baos.write(0);
- baos.write(deflate(text.text.getBytes("utf-8")));
+ baos.write(deflate(text.text.getBytes(StandardCharsets.UTF_8)));
writeChunk(os, ChunkType.iTXt, baos.toByteArray());
}
@@ -165,14 +165,14 @@ class PngWriter {
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
// keyword
- baos.write(text.keyword.getBytes("ISO-8859-1"));
+ baos.write(text.keyword.getBytes(StandardCharsets.ISO_8859_1));
baos.write(0);
// compression method
baos.write(PngConstants.COMPRESSION_DEFLATE_INFLATE);
// text
- baos.write(deflate(text.text.getBytes("ISO-8859-1")));
+ baos.write(deflate(text.text.getBytes(StandardCharsets.ISO_8859_1)));
writeChunk(os, ChunkType.zTXt, baos.toByteArray());
}
@@ -189,11 +189,11 @@ class PngWriter {
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
// keyword
- baos.write(text.keyword.getBytes("ISO-8859-1"));
+ baos.write(text.keyword.getBytes(StandardCharsets.ISO_8859_1));
baos.write(0);
// text
- baos.write(text.text.getBytes("ISO-8859-1"));
+ baos.write(text.text.getBytes(StandardCharsets.ISO_8859_1));
writeChunk(os, ChunkType.tEXt, baos.toByteArray());
}
@@ -209,13 +209,8 @@ class PngWriter {
}
private boolean isValidISO_8859_1(final String s) {
- try {
- final String roundtrip = new String(s.getBytes("ISO-8859-1"), "ISO-8859-1");
- return s.equals(roundtrip);
- } catch (final UnsupportedEncodingException e) {
- // should never be thrown.
- throw new RuntimeException("Error parsing string.", e);
- }
+ final String roundtrip = new String(s.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.ISO_8859_1);
+ return s.equals(roundtrip);
}
private void writeChunkXmpiTXt(final OutputStream os, final String xmpXml)
@@ -224,7 +219,7 @@ class PngWriter {
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
// keyword
- baos.write(PngConstants.XMP_KEYWORD.getBytes("ISO-8859-1"));
+ baos.write(PngConstants.XMP_KEYWORD.getBytes(StandardCharsets.ISO_8859_1));
baos.write(0);
baos.write(1); // compressed flag, true
@@ -233,10 +228,10 @@ class PngWriter {
baos.write(0); // language tag (ignore). TODO
// translated keyword
- baos.write(PngConstants.XMP_KEYWORD.getBytes("utf-8"));
+ baos.write(PngConstants.XMP_KEYWORD.getBytes(StandardCharsets.UTF_8));
baos.write(0);
- baos.write(deflate(xmpXml.getBytes("utf-8")));
+ baos.write(deflate(xmpXml.getBytes(StandardCharsets.UTF_8)));
writeChunk(os, ChunkType.iTXt, baos.toByteArray());
}
@@ -301,10 +296,10 @@ class PngWriter {
baos.write(units);
// units per pixel, x-axis
- baos.write(String.valueOf(xUPP).getBytes("ISO-8859-1"));
+ baos.write(String.valueOf(xUPP).getBytes(StandardCharsets.ISO_8859_1));
baos.write(0);
- baos.write(String.valueOf(yUPP).getBytes("ISO-8859-1"));
+ baos.write(String.valueOf(yUPP).getBytes(StandardCharsets.ISO_8859_1));
writeChunk(os, ChunkType.sCAL, baos.toByteArray());
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
index 8ee50d7..21e476e 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
@@ -18,6 +18,7 @@ package org.apache.commons.imaging.formats.png.chunks;
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.zip.InflaterInputStream;
import org.apache.commons.imaging.ImageReadException;
@@ -48,7 +49,7 @@ public class PngChunkIccp extends PngChunk {
}
final byte[] nameBytes = new byte[index];
System.arraycopy(bytes, 0, nameBytes, 0, index);
- profileName = new String(nameBytes, "ISO-8859-1");
+ profileName = new String(nameBytes, StandardCharsets.ISO_8859_1);
compressionMethod = bytes[index + 1];
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
index bd16af1..73dd19b 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
@@ -18,6 +18,7 @@ package org.apache.commons.imaging.formats.png.chunks;
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.zip.InflaterInputStream;
import org.apache.commons.imaging.ImageReadException;
@@ -52,7 +53,7 @@ public class PngChunkItxt extends PngTextChunk {
"PNG iTXt chunk keyword is not terminated.");
}
- keyword = new String(bytes, 0, terminator, "ISO-8859-1");
+ keyword = new String(bytes, 0, terminator, StandardCharsets.ISO_8859_1);
int index = terminator + 1;
final int compressionFlag = bytes[index++];
@@ -74,7 +75,7 @@ public class PngChunkItxt extends PngTextChunk {
throw new ImageReadException("PNG iTXt chunk language tag is not terminated.");
}
- languageTag = new String(bytes, index, terminator - index, "ISO-8859-1");
+ languageTag = new String(bytes, index, terminator - index, StandardCharsets.ISO_8859_1);
index = terminator + 1;
terminator = findNull(bytes, index);
@@ -82,7 +83,7 @@ public class PngChunkItxt extends PngTextChunk {
throw new ImageReadException("PNG iTXt chunk translated keyword is not terminated.");
}
- translatedKeyword = new String(bytes, index, terminator - index, "utf-8");
+ translatedKeyword = new String(bytes, index, terminator - index, StandardCharsets.UTF_8);
index = terminator + 1;
if (compressed) {
@@ -92,10 +93,10 @@ public class PngChunkItxt extends PngTextChunk {
System.arraycopy(bytes, index, compressedText, 0, compressedTextLength);
text = new String(getStreamBytes(
- new InflaterInputStream(new ByteArrayInputStream(compressedText))), "utf-8");
+ new InflaterInputStream(new ByteArrayInputStream(compressedText))), StandardCharsets.UTF_8);
} else {
- text = new String(bytes, index, bytes.length - index, "utf-8");
+ text = new String(bytes, index, bytes.length - index, StandardCharsets.UTF_8);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java
index f4c8823..56f5d4b 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java
@@ -19,6 +19,7 @@ package org.apache.commons.imaging.formats.png.chunks;
import org.apache.commons.imaging.ImageReadException;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import static org.apache.commons.imaging.common.BinaryFunctions.findNull;
@@ -42,7 +43,7 @@ public class PngChunkScal extends PngChunk {
}
final int xIndex = 1;
- final String xStr = new String(bytes, xIndex, separator - 1, "ISO-8859-1");
+ final String xStr = new String(bytes, xIndex, separator - 1, StandardCharsets.ISO_8859_1);
unitsPerPixelXAxis = toDouble(xStr);
final int yIndex = separator + 1;
@@ -50,7 +51,7 @@ public class PngChunkScal extends PngChunk {
throw new ImageReadException("PNG sCAL chunk missing the y axis value.");
}
- final String yStr = new String(bytes, yIndex, length - yIndex, "ISO-8859-1");
+ final String yStr = new String(bytes, yIndex, length - yIndex, StandardCharsets.ISO_8859_1);
unitsPerPixelYAxis = toDouble(yStr);
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
index 271b237..fd6d9b8 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
@@ -17,6 +17,7 @@
package org.apache.commons.imaging.formats.png.chunks;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.formats.png.PngText;
@@ -36,10 +37,10 @@ public class PngChunkText extends PngTextChunk {
"PNG tEXt chunk keyword is not terminated.");
}
- keyword = new String(bytes, 0, index, "ISO-8859-1");
+ keyword = new String(bytes, 0, index, StandardCharsets.ISO_8859_1);
final int textLength = bytes.length - (index + 1);
- text = new String(bytes, index + 1, textLength, "ISO-8859-1");
+ text = new String(bytes, index + 1, textLength, StandardCharsets.ISO_8859_1);
if (getDebug()) {
System.out.println("Keyword: " + keyword);
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
index a7afd43..6a90a3f 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
@@ -18,6 +18,7 @@ package org.apache.commons.imaging.formats.png.chunks;
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.zip.InflaterInputStream;
import org.apache.commons.imaging.ImageReadException;
@@ -41,7 +42,7 @@ public class PngChunkZtxt extends PngTextChunk {
"PNG zTXt chunk keyword is unterminated.");
}
- keyword = new String(bytes, 0, index, "ISO-8859-1");
+ keyword = new String(bytes, 0, index, StandardCharsets.ISO_8859_1);
index++;
final int compressionMethod = bytes[index++];
@@ -55,7 +56,7 @@ public class PngChunkZtxt extends PngTextChunk {
final byte[] compressedText = new byte[compressedTextLength];
System.arraycopy(bytes, index, compressedText, 0, compressedTextLength);
- text = new String(getStreamBytes(new InflaterInputStream(new ByteArrayInputStream(compressedText))), "ISO-8859-1");
+ text = new String(getStreamBytes(new InflaterInputStream(new ByteArrayInputStream(compressedText))), StandardCharsets.ISO_8859_1);
}
/**
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/pnm/PamWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/pnm/PamWriter.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PamWriter.java
index e7c34b4..31429aa 100644
--- a/src/main/java/org/apache/commons/imaging/formats/pnm/PamWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PamWriter.java
@@ -20,6 +20,7 @@ package org.apache.commons.imaging.formats.pnm;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import org.apache.commons.imaging.ImageWriteException;
@@ -37,22 +38,22 @@ class PamWriter implements PnmWriter {
final int width = src.getWidth();
final int height = src.getHeight();
- os.write(("WIDTH " + width).getBytes("US-ASCII"));
+ os.write(("WIDTH " + width).getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_NEWLINE);
- os.write(("HEIGHT " + height).getBytes("US-ASCII"));
+ os.write(("HEIGHT " + height).getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_NEWLINE);
- os.write(("DEPTH 4").getBytes("US-ASCII"));
+ os.write(("DEPTH 4").getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_NEWLINE);
- os.write(("MAXVAL 255").getBytes("US-ASCII"));
+ os.write(("MAXVAL 255").getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_NEWLINE);
- os.write(("TUPLTYPE RGB_ALPHA").getBytes("US-ASCII"));
+ os.write(("TUPLTYPE RGB_ALPHA").getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_NEWLINE);
- os.write(("ENDHDR").getBytes("US-ASCII"));
+ os.write(("ENDHDR").getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_NEWLINE);
for (int y = 0; y < height; y++) {
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java
index 088a038..05df172 100644
--- a/src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java
@@ -19,6 +19,7 @@ package org.apache.commons.imaging.formats.pnm;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import org.apache.commons.imaging.ImageWriteException;
@@ -41,10 +42,10 @@ class PbmWriter implements PnmWriter {
final int width = src.getWidth();
final int height = src.getHeight();
- os.write(Integer.toString(width).getBytes("US-ASCII"));
+ os.write(Integer.toString(width).getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_SEPARATOR);
- os.write(Integer.toString(height).getBytes("US-ASCII"));
+ os.write(Integer.toString(height).getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_NEWLINE);
int bitcache = 0;
@@ -73,7 +74,7 @@ class PbmWriter implements PnmWriter {
bitsInCache = 0;
}
} else {
- os.write(Integer.toString(sample).getBytes("US-ASCII")); // max
+ os.write(Integer.toString(sample).getBytes(StandardCharsets.US_ASCII)); // max
// component
// value
os.write(PnmConstants.PNM_SEPARATOR);
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java
index caed6a7..97563a0 100644
--- a/src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java
@@ -19,6 +19,7 @@ package org.apache.commons.imaging.formats.pnm;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import org.apache.commons.imaging.ImageWriteException;
@@ -43,13 +44,13 @@ class PgmWriter implements PnmWriter {
final int width = src.getWidth();
final int height = src.getHeight();
- os.write(Integer.toString(width).getBytes("US-ASCII"));
+ os.write(Integer.toString(width).getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_SEPARATOR);
- os.write(Integer.toString(height).getBytes("US-ASCII"));
+ os.write(Integer.toString(height).getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_SEPARATOR);
- os.write(Integer.toString(255).getBytes("US-ASCII")); // max component value
+ os.write(Integer.toString(255).getBytes(StandardCharsets.US_ASCII)); // max component value
os.write(PnmConstants.PNM_NEWLINE);
for (int y = 0; y < height; y++) {
@@ -63,7 +64,7 @@ class PgmWriter implements PnmWriter {
if (rawbits) {
os.write((byte) sample);
} else {
- os.write(Integer.toString(sample).getBytes("US-ASCII")); // max component value
+ os.write(Integer.toString(sample).getBytes(StandardCharsets.US_ASCII)); // max component value
os.write(PnmConstants.PNM_SEPARATOR);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java
index 146f2eb..1bea15f 100644
--- a/src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java
@@ -19,6 +19,7 @@ package org.apache.commons.imaging.formats.pnm;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import org.apache.commons.imaging.ImageWriteException;
@@ -43,13 +44,13 @@ class PpmWriter implements PnmWriter {
final int width = src.getWidth();
final int height = src.getHeight();
- os.write(Integer.toString(width).getBytes("US-ASCII"));
+ os.write(Integer.toString(width).getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_SEPARATOR);
- os.write(Integer.toString(height).getBytes("US-ASCII"));
+ os.write(Integer.toString(height).getBytes(StandardCharsets.US_ASCII));
os.write(PnmConstants.PNM_SEPARATOR);
- os.write(Integer.toString(255).getBytes("US-ASCII")); // max component value
+ os.write(Integer.toString(255).getBytes(StandardCharsets.US_ASCII)); // max component value
os.write(PnmConstants.PNM_NEWLINE);
for (int y = 0; y < height; y++) {
@@ -64,14 +65,14 @@ class PpmWriter implements PnmWriter {
os.write((byte) green);
os.write((byte) blue);
} else {
- os.write(Integer.toString(red).getBytes("US-ASCII")); // max component
+ os.write(Integer.toString(red).getBytes(StandardCharsets.US_ASCII)); // max component
// value
os.write(PnmConstants.PNM_SEPARATOR);
- os.write(Integer.toString(green).getBytes("US-ASCII")); // max
+ os.write(Integer.toString(green).getBytes(StandardCharsets.US_ASCII)); // max
// component
// value
os.write(PnmConstants.PNM_SEPARATOR);
- os.write(Integer.toString(blue).getBytes("US-ASCII")); // max component
+ os.write(Integer.toString(blue).getBytes(StandardCharsets.US_ASCII)); // max component
// value
os.write(PnmConstants.PNM_SEPARATOR);
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceBlock.java b/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceBlock.java
index 56c41ad..73c24e7 100644
--- a/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceBlock.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceBlock.java
@@ -16,7 +16,7 @@
*/
package org.apache.commons.imaging.formats.psd;
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.util.Debug;
@@ -31,8 +31,8 @@ class ImageResourceBlock {
this.data = data;
}
- String getName() throws UnsupportedEncodingException {
+ String getName() {
Debug.debug("getName: " + nameData.length);
- return new String(nameData, "ISO-8859-1");
+ return new String(nameData, StandardCharsets.ISO_8859_1);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
index 5dc1417..3ebf877 100644
--- a/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
@@ -29,8 +29,8 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -549,7 +549,7 @@ public class PsdImageParser extends ImageParser {
final ImageResourceBlock block = blocks.get(i);
pw.println("\t" + i + " (" + Integer.toHexString(block.id)
+ ", " + "'"
- + new String(block.nameData, "ISO-8859-1")
+ + new String(block.nameData, StandardCharsets.ISO_8859_1)
+ "' ("
+ block.nameData.length
+ "), "
@@ -729,12 +729,8 @@ public class PsdImageParser extends ImageParser {
final ImageResourceBlock block = xmpBlocks.get(0);
- try {
- // segment data is UTF-8 encoded xml.
- return new String(block.data, 0, block.data.length, "utf-8");
- } catch (final UnsupportedEncodingException e) {
- throw new ImageReadException("Invalid JPEG XMP Segment.", e);
- }
+ // segment data is UTF-8 encoded xml.
+ return new String(block.data, 0, block.data.length, StandardCharsets.UTF_8);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
index 5aa653f..d706db0 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
@@ -22,8 +22,8 @@ import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -315,13 +315,8 @@ public class TiffImageParser extends ImageParser {
return null;
}
- try {
- // segment data is UTF-8 encoded xml.
- final String xml = new String(bytes, "utf-8");
- return xml;
- } catch (final UnsupportedEncodingException e) {
- throw new ImageReadException("Invalid JPEG XMP Segment.", e);
- }
+ // segment data is UTF-8 encoded xml.
+ return new String(bytes, StandardCharsets.UTF_8);
}
@Override
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java
index cc7e71d..2ab66e5 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java
@@ -16,8 +16,8 @@
*/
package org.apache.commons.imaging.formats.tiff.fieldtypes;
-import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.formats.tiff.TiffField;
@@ -47,23 +47,17 @@ public class FieldTypeAscii extends FieldType {
// Exiftool however allows you to configure the charset used.
for (int i = 0; i < bytes.length; i++) {
if (bytes[i] == 0) {
- try {
- final String string = new String(bytes, nextStringPos, i
- - nextStringPos, "UTF-8");
- strings[stringsAdded++] = string;
- } catch (final UnsupportedEncodingException unsupportedEncoding) { // NOPMD
- }
+ final String string = new String(bytes, nextStringPos, i
+ - nextStringPos, StandardCharsets.UTF_8);
+ strings[stringsAdded++] = string;
nextStringPos = i + 1;
}
}
if (nextStringPos < bytes.length) {
// Buggy file, string wasn't null terminated
- try {
- final String string = new String(bytes, nextStringPos, bytes.length
- - nextStringPos, "UTF-8");
- strings[stringsAdded++] = string;
- } catch (final UnsupportedEncodingException unsupportedEncoding) { // NOPMD
- }
+ final String string = new String(bytes, nextStringPos, bytes.length
+ - nextStringPos, StandardCharsets.UTF_8);
+ strings[stringsAdded++] = string;
}
if (strings.length == 1) {
return strings[0];
@@ -80,12 +74,7 @@ public class FieldTypeAscii extends FieldType {
result[result.length - 1] = 0;
return result;
} else if (o instanceof String) {
- byte[] bytes;
- try {
- bytes = ((String) o).getBytes("UTF-8");
- } catch (final UnsupportedEncodingException cannotHappen) {
- throw new IllegalArgumentException("Your Java doesn't support UTF-8", cannotHappen);
- }
+ byte[] bytes = ((String) o).getBytes(StandardCharsets.UTF_8);
final byte[] result = new byte[bytes.length + 1];
System.arraycopy(bytes, 0, result, 0, bytes.length);
result[result.length - 1] = 0;
@@ -94,23 +83,13 @@ public class FieldTypeAscii extends FieldType {
final String[] strings = (String[]) o;
int totalLength = 0;
for (final String string : strings) {
- byte[] bytes;
- try {
- bytes = string.getBytes("UTF-8");
- } catch (final UnsupportedEncodingException cannotHappen) {
- throw new IllegalArgumentException("Your Java doesn't support UTF-8", cannotHappen);
- }
+ byte[] bytes = string.getBytes(StandardCharsets.UTF_8);
totalLength += (bytes.length + 1);
}
final byte[] result = new byte[totalLength];
int position = 0;
for (final String string : strings) {
- byte[] bytes;
- try {
- bytes = string.getBytes("UTF-8");
- } catch (final UnsupportedEncodingException cannotHappen) {
- throw new IllegalArgumentException("Your Java doesn't support UTF-8", cannotHappen);
- }
+ byte[] bytes = string.getBytes(StandardCharsets.UTF_8);
System.arraycopy(bytes, 0, result, position, bytes.length);
position += (bytes.length + 1);
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java
index 42dc7d1..a7d7948 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java
@@ -16,8 +16,8 @@
*/
package org.apache.commons.imaging.formats.tiff.taginfos;
-import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
@@ -45,23 +45,17 @@ public class TagInfoAscii extends TagInfo {
// Exiftool however allows you to configure the charset used.
for (int i = 0; i < bytes.length; i++) {
if (bytes[i] == 0) {
- try {
- final String string = new String(bytes, nextStringPos, i
- - nextStringPos, "UTF-8");
- strings[stringsAdded++] = string;
- } catch (final UnsupportedEncodingException unsupportedEncoding) { // NOPMD
- }
+ final String string = new String(bytes, nextStringPos, i
+ - nextStringPos, StandardCharsets.UTF_8);
+ strings[stringsAdded++] = string;
nextStringPos = i + 1;
}
}
if (nextStringPos < bytes.length) {
// Buggy file, string wasn't null terminated
- try {
- final String string = new String(bytes, nextStringPos, bytes.length
- - nextStringPos, "UTF-8");
- strings[stringsAdded++] = string;
- } catch (final UnsupportedEncodingException unsupportedEncoding) { // NOPMD
- }
+ final String string = new String(bytes, nextStringPos, bytes.length
+ - nextStringPos, StandardCharsets.UTF_8);
+ strings[stringsAdded++] = string;
}
return strings;
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoGpsText.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoGpsText.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoGpsText.java
index b34e64f..8973dae 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoGpsText.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoGpsText.java
@@ -18,6 +18,7 @@ package org.apache.commons.imaging.formats.tiff.taginfos;
import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.ImageWriteException;
@@ -147,12 +148,8 @@ public final class TagInfoGpsText extends TagInfo {
final byte[] bytes = entry.getByteArrayValue();
if (bytes.length < 8) {
- try {
- // try ASCII, with NO prefix.
- return new String(bytes, "US-ASCII");
- } catch (final UnsupportedEncodingException e) {
- throw new ImageReadException("GPS text field missing encoding prefix.", e);
- }
+ // try ASCII, with NO prefix.
+ return new String(bytes, StandardCharsets.US_ASCII);
}
for (final TextEncoding encoding : TEXT_ENCODINGS) {
@@ -176,12 +173,7 @@ public final class TagInfoGpsText extends TagInfo {
}
}
- try {
- // try ASCII, with NO prefix.
- return new String(bytes, "US-ASCII");
- } catch (final UnsupportedEncodingException e) {
- throw new ImageReadException("Unknown GPS text encoding prefix.", e);
- }
-
+ // try ASCII, with NO prefix.
+ return new String(bytes, StandardCharsets.US_ASCII);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoXpString.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoXpString.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoXpString.java
index a577fd4..7291d4c 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoXpString.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoXpString.java
@@ -16,8 +16,8 @@
*/
package org.apache.commons.imaging.formats.tiff.taginfos;
-import java.io.UnsupportedEncodingException;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.ImageWriteException;
@@ -41,14 +41,10 @@ public class TagInfoXpString extends TagInfo {
throw new ImageWriteException("Text value not String", value);
}
final String s = (String) value;
- try {
- final byte[] bytes = s.getBytes("UTF-16LE");
- final byte[] paddedBytes = new byte[bytes.length + 2];
- System.arraycopy(bytes, 0, paddedBytes, 0, bytes.length);
- return paddedBytes;
- } catch (final UnsupportedEncodingException cannotHappen) {
- return null;
- }
+ final byte[] bytes = s.getBytes(StandardCharsets.UTF_16LE);
+ final byte[] paddedBytes = new byte[bytes.length + 2];
+ System.arraycopy(bytes, 0, paddedBytes, 0, bytes.length);
+ return paddedBytes;
}
@Override
@@ -56,17 +52,13 @@ public class TagInfoXpString extends TagInfo {
if (entry.getFieldType() != FieldType.BYTE) {
throw new ImageReadException("Text field not encoded as bytes.");
}
- try {
- final byte[] bytes = entry.getByteArrayValue();
- final int length;
- if (bytes.length >= 2 && bytes[bytes.length - 1] == 0 && bytes[bytes.length - 2] == 0) {
- length = bytes.length - 2;
- } else {
- length = bytes.length;
- }
- return new String(bytes, 0, length, "UTF-16LE");
- } catch (final UnsupportedEncodingException cannotHappen) {
- return null;
+ final byte[] bytes = entry.getByteArrayValue();
+ final int length;
+ if (bytes.length >= 2 && bytes[bytes.length - 1] == 0 && bytes[bytes.length - 2] == 0) {
+ length = bytes.length - 2;
+ } else {
+ length = bytes.length;
}
+ return new String(bytes, 0, length, StandardCharsets.UTF_16LE);
}
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java
index aeffa81..6c09b49 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java
@@ -20,6 +20,7 @@ import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -480,7 +481,7 @@ public abstract class TiffImageWriterBase {
}
if (null != xmpXml) {
- final byte[] xmpXmlBytes = xmpXml.getBytes("utf-8");
+ final byte[] xmpXmlBytes = xmpXml.getBytes(StandardCharsets.UTF_8);
directory.add(TiffTagConstants.TIFF_TAG_XMP, xmpXmlBytes);
}
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
index c263dbc..01c8809 100644
--- a/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
@@ -30,6 +30,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@@ -342,9 +343,9 @@ public class XbmImageParser extends ImageParser {
final String name = randomName();
- os.write(("#define " + name + "_width " + src.getWidth() + "\n").getBytes("US-ASCII"));
- os.write(("#define " + name + "_height " + src.getHeight() + "\n").getBytes("US-ASCII"));
- os.write(("static unsigned char " + name + "_bits[] = {").getBytes("US-ASCII"));
+ os.write(("#define " + name + "_width " + src.getWidth() + "\n").getBytes(StandardCharsets.US_ASCII));
+ os.write(("#define " + name + "_height " + src.getHeight() + "\n").getBytes(StandardCharsets.US_ASCII));
+ os.write(("static unsigned char " + name + "_bits[] = {").getBytes(StandardCharsets.US_ASCII));
int bitcache = 0;
int bitsInCache = 0;
@@ -365,33 +366,33 @@ public class XbmImageParser extends ImageParser {
bitcache |= (sample << bitsInCache);
++bitsInCache;
if (bitsInCache == 8) {
- os.write(separator.getBytes("US-ASCII"));
+ os.write(separator.getBytes(StandardCharsets.US_ASCII));
separator = ",";
if (written == 12) {
- os.write("\n ".getBytes("US-ASCII"));
+ os.write("\n ".getBytes(StandardCharsets.US_ASCII));
written = 0;
}
- os.write(toPrettyHex(bitcache).getBytes("US-ASCII"));
+ os.write(toPrettyHex(bitcache).getBytes(StandardCharsets.US_ASCII));
bitcache = 0;
bitsInCache = 0;
++written;
}
}
if (bitsInCache != 0) {
- os.write(separator.getBytes("US-ASCII"));
+ os.write(separator.getBytes(StandardCharsets.US_ASCII));
separator = ",";
if (written == 12) {
- os.write("\n ".getBytes("US-ASCII"));
+ os.write("\n ".getBytes(StandardCharsets.US_ASCII));
written = 0;
}
- os.write(toPrettyHex(bitcache).getBytes("US-ASCII"));
+ os.write(toPrettyHex(bitcache).getBytes(StandardCharsets.US_ASCII));
bitcache = 0;
bitsInCache = 0;
++written;
}
}
- os.write("\n};\n".getBytes("US-ASCII"));
+ os.write("\n};\n".getBytes(StandardCharsets.US_ASCII));
}
/**
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
index 291d8d2..7c78b45 100644
--- a/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
@@ -32,6 +32,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -79,7 +80,7 @@ public class XpmImageParser extends ImageParser {
throw new ImageReadException("Couldn't find rgb.txt in our resources");
}
final Map<String, Integer> colors = new HashMap<>();
- try (InputStreamReader isReader = new InputStreamReader(rgbTxtStream, "US-ASCII");
+ try (InputStreamReader isReader = new InputStreamReader(rgbTxtStream, StandardCharsets.US_ASCII);
BufferedReader reader = new BufferedReader(isReader)) {
String line;
while ((line = reader.readLine()) != null) {
@@ -676,12 +677,12 @@ public class XpmImageParser extends ImageParser {
}
String line = "/* XPM */\n";
- os.write(line.getBytes("US-ASCII"));
+ os.write(line.getBytes(StandardCharsets.US_ASCII));
line = "static char *" + randomName() + "[] = {\n";
- os.write(line.getBytes("US-ASCII"));
+ os.write(line.getBytes(StandardCharsets.US_ASCII));
line = "\"" + src.getWidth() + " " + src.getHeight() + " " + colors
+ " " + charsPerPixel + "\",\n";
- os.write(line.getBytes("US-ASCII"));
+ os.write(line.getBytes(StandardCharsets.US_ASCII));
for (int i = 0; i < colors; i++) {
String color;
@@ -692,15 +693,15 @@ public class XpmImageParser extends ImageParser {
}
line = "\"" + pixelsForIndex(i, charsPerPixel) + " c " + color
+ "\",\n";
- os.write(line.getBytes("US-ASCII"));
+ os.write(line.getBytes(StandardCharsets.US_ASCII));
}
String separator = "";
for (int y = 0; y < src.getHeight(); y++) {
- os.write(separator.getBytes("US-ASCII"));
+ os.write(separator.getBytes(StandardCharsets.US_ASCII));
separator = ",\n";
line = "\"";
- os.write(line.getBytes("US-ASCII"));
+ os.write(line.getBytes(StandardCharsets.US_ASCII));
for (int x = 0; x < src.getWidth(); x++) {
final int argb = src.getRGB(x, y);
if ((argb & 0xff000000) == 0) {
@@ -710,14 +711,14 @@ public class XpmImageParser extends ImageParser {
palette.getPaletteIndex(0xffffff & argb),
charsPerPixel);
}
- os.write(line.getBytes("US-ASCII"));
+ os.write(line.getBytes(StandardCharsets.US_ASCII));
}
line = "\"";
- os.write(line.getBytes("US-ASCII"));
+ os.write(line.getBytes(StandardCharsets.US_ASCII));
}
line = "\n};\n";
- os.write(line.getBytes("US-ASCII"));
+ os.write(line.getBytes(StandardCharsets.US_ASCII));
}
/**
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/icc/IccTag.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/icc/IccTag.java b/src/main/java/org/apache/commons/imaging/icc/IccTag.java
index 87d8dce..c22970d 100644
--- a/src/main/java/org/apache/commons/imaging/icc/IccTag.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccTag.java
@@ -23,6 +23,7 @@ import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import org.apache.commons.imaging.ImageReadException;
@@ -89,7 +90,7 @@ public class IccTag {
(byte) (0xff & (signature >> 24)),
(byte) (0xff & (signature >> 16)),
(byte) (0xff & (signature >> 8)),
- (byte) (0xff & (signature >> 0)), }, "US-ASCII")
+ (byte) (0xff & (signature >> 0)), }, StandardCharsets.US_ASCII)
+ ")");
if (data == null) {
@@ -105,7 +106,7 @@ public class IccTag {
(byte) (0xff & (dataTypeSignature >> 24)),
(byte) (0xff & (dataTypeSignature >> 16)),
(byte) (0xff & (dataTypeSignature >> 8)),
- (byte) (0xff & (dataTypeSignature >> 0)), }, "US-ASCII")
+ (byte) (0xff & (dataTypeSignature >> 0)), }, StandardCharsets.US_ASCII)
+ ")");
if (itdt == null) {
http://git-wip-us.apache.org/repos/asf/commons-imaging/blob/7862d602/src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java b/src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java
index 4c4d5d1..1c70c3a 100644
--- a/src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java
@@ -22,6 +22,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.ImageReadException;
@@ -40,7 +41,7 @@ public enum IccTagDataTypes implements IccTagDataType {
final int stringLength = read4Bytes("stringLength", bis, "ICC: corrupt tag data", ByteOrder.BIG_ENDIAN);
// bis.readByteArray("ignore", bytes.length -12, "none");
- final String s = new String(bytes, 12, stringLength - 1, "US-ASCII");
+ final String s = new String(bytes, 12, stringLength - 1, StandardCharsets.US_ASCII);
System.out.println(prefix + "s: '" + s + "'");
}
}
@@ -91,7 +92,7 @@ public enum IccTagDataTypes implements IccTagDataType {
(byte) (0xff & (thesignature >> 24)),
(byte) (0xff & (thesignature >> 16)),
(byte) (0xff & (thesignature >> 8)),
- (byte) (0xff & (thesignature >> 0)), }, "US-ASCII")
+ (byte) (0xff & (thesignature >> 0)), }, StandardCharsets.US_ASCII)
+ ")");
}
}
@@ -107,7 +108,7 @@ public enum IccTagDataTypes implements IccTagDataType {
try (InputStream bis = new ByteArrayInputStream(bytes)) {
read4Bytes("type_signature", bis, "ICC: corrupt tag data", ByteOrder.BIG_ENDIAN);
read4Bytes("ignore", bis, "ICC: corrupt tag data", ByteOrder.BIG_ENDIAN);
- final String s = new String(bytes, 8, bytes.length - 8, "US-ASCII");
+ final String s = new String(bytes, 8, bytes.length - 8, StandardCharsets.US_ASCII);
System.out.println(prefix + "s: '" + s + "'");
}
}