diff options
Diffstat (limited to 'fop-core/src/main')
13 files changed, 60 insertions, 72 deletions
diff --git a/fop-core/src/main/codegen/unicode/java/org/apache/fop/hyphenation/UnicodeClasses.java b/fop-core/src/main/codegen/unicode/java/org/apache/fop/hyphenation/UnicodeClasses.java index df25831ea..7550bbabc 100644 --- a/fop-core/src/main/codegen/unicode/java/org/apache/fop/hyphenation/UnicodeClasses.java +++ b/fop-core/src/main/codegen/unicode/java/org/apache/fop/hyphenation/UnicodeClasses.java @@ -87,7 +87,7 @@ public final class UnicodeClasses { } f.createNewFile(); FileOutputStream fw = new FileOutputStream(f); - OutputStreamWriter ow = new OutputStreamWriter(fw, "utf-8"); + OutputStreamWriter ow = new OutputStreamWriter(fw, StandardCharsets.UTF_8); int maxChar; maxChar = Character.MAX_VALUE; @@ -189,7 +189,7 @@ public final class UnicodeClasses { } f.createNewFile(); FileOutputStream fw = new FileOutputStream(f); - OutputStreamWriter ow = new OutputStreamWriter(fw, "utf-8"); + OutputStreamWriter ow = new OutputStreamWriter(fw, StandardCharsets.UTF_8); URI inuri = unidata.resolve("Blocks.txt"); InputStream inis = null; @@ -199,7 +199,7 @@ public final class UnicodeClasses { } else if (scheme.equals("http")) { inis = inuri.toURL().openStream(); } - InputStreamReader insr = new InputStreamReader(inis, "utf-8"); + InputStreamReader insr = new InputStreamReader(inis, StandardCharsets.UTF_8); BufferedReader inbr = new BufferedReader(insr); Map blocks = new HashMap(); for (String line = inbr.readLine(); line != null; line = inbr.readLine()) { @@ -221,7 +221,7 @@ public final class UnicodeClasses { } else if (scheme.equals("http")) { inis = inuri.toURL().openStream(); } - insr = new InputStreamReader(inis, "utf-8"); + insr = new InputStreamReader(inis, StandardCharsets.UTF_8); inbr = new BufferedReader(insr); int maxChar; maxChar = Character.MAX_VALUE; @@ -306,10 +306,10 @@ public final class UnicodeClasses { } f.createNewFile(); FileOutputStream fw = new FileOutputStream(f); - OutputStreamWriter ow = new OutputStreamWriter(fw, "utf-8"); + OutputStreamWriter ow = new OutputStreamWriter(fw, StandardCharsets.UTF_8); FileInputStream inis = new FileInputStream(in); - InputStreamReader insr = new InputStreamReader(inis, "utf-8"); + InputStreamReader insr = new InputStreamReader(inis, StandardCharsets.UTF_8); BufferedReader inbr = new BufferedReader(insr); ow.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); diff --git a/fop-core/src/main/java/org/apache/fop/datatypes/URISpecification.java b/fop-core/src/main/java/org/apache/fop/datatypes/URISpecification.java index b82dbee97..3e56bdd13 100644 --- a/fop-core/src/main/java/org/apache/fop/datatypes/URISpecification.java +++ b/fop-core/src/main/java/org/apache/fop/datatypes/URISpecification.java @@ -19,7 +19,7 @@ package org.apache.fop.datatypes; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; /** @@ -130,13 +130,9 @@ public final class URISpecification { //Note: this may not be accurate for some very special cases. sb.append(ch); } else { - try { - byte[] utf8 = Character.toString(ch).getBytes("UTF-8"); - for (byte anUtf8 : utf8) { - appendEscape(sb, anUtf8); - } - } catch (UnsupportedEncodingException e) { - throw new Error("Incompatible JVM. UTF-8 not supported."); + byte[] utf8 = Character.toString(ch).getBytes(StandardCharsets.UTF_8); + for (byte anUtf8 : utf8) { + appendEscape(sb, anUtf8); } } } diff --git a/fop-core/src/main/java/org/apache/fop/fonts/truetype/FontFileReader.java b/fop-core/src/main/java/org/apache/fop/fonts/truetype/FontFileReader.java index 790e885bc..5e85e926a 100644 --- a/fop-core/src/main/java/org/apache/fop/fonts/truetype/FontFileReader.java +++ b/fop-core/src/main/java/org/apache/fop/fonts/truetype/FontFileReader.java @@ -21,6 +21,7 @@ package org.apache.fop.fonts.truetype; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import org.apache.commons.io.IOUtils; @@ -292,9 +293,8 @@ public class FontFileReader { byte[] tmp = new byte[len]; System.arraycopy(file, current, tmp, 0, len); current += len; - final String encoding; - encoding = "UTF-16BE"; //Use this for all known encoding IDs for now - return new String(tmp, encoding); + //Use this for all known encoding IDs for now + return new String(tmp, StandardCharsets.UTF_16BE); } /** diff --git a/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java b/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java index 2ea2ed823..40185abed 100644 --- a/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java +++ b/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java @@ -24,6 +24,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -203,7 +204,7 @@ public class OTFSubSetFile extends OTFSubSetWriter { writeBytes(cffReader.getHeader()); //Name Index - writeIndex(Arrays.asList(embedFontName.getBytes("UTF-8"))); + writeIndex(Arrays.asList(embedFontName.getBytes(StandardCharsets.UTF_8))); Offsets offsets = new Offsets(); @@ -355,7 +356,7 @@ public class OTFSubSetFile extends OTFSubSetWriter { int sidAStringIndex = stringIndexData.size() + 390; int sidB = dictEntry.getOperands().get(1).intValue(); if (sidB > 390) { - stringIndexData.add("Identity".getBytes("UTF-8")); + stringIndexData.add("Identity".getBytes(StandardCharsets.UTF_8)); } int sidBStringIndex = stringIndexData.size() + 390; byte[] cidEntryByteData = dictEntry.getByteData(); @@ -407,7 +408,7 @@ public class OTFSubSetFile extends OTFSubSetWriter { if (index < cffReader.getStringIndex().getNumObjects()) { byte[] value = cffReader.getStringIndex().getValue(index); if (mbFont != null) { - mbFont.mapUsedGlyphName(v, new String(value, "UTF-8")); + mbFont.mapUsedGlyphName(v, new String(value, StandardCharsets.UTF_8)); } gidToSID.put(v, stringIndexData.size() + 391); stringIndexData.add(value); diff --git a/fop-core/src/main/java/org/apache/fop/fonts/truetype/SVGGlyphData.java b/fop-core/src/main/java/org/apache/fop/fonts/truetype/SVGGlyphData.java index d018f5bf2..9bc248331 100644 --- a/fop-core/src/main/java/org/apache/fop/fonts/truetype/SVGGlyphData.java +++ b/fop-core/src/main/java/org/apache/fop/fonts/truetype/SVGGlyphData.java @@ -22,6 +22,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; +import java.nio.charset.StandardCharsets; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -54,7 +55,8 @@ public class SVGGlyphData { public String getDataURL(int height) { try { String modifiedSVG = updateTransform(svg, height); - return DataURLUtil.createDataURL(new ByteArrayInputStream(modifiedSVG.getBytes("UTF-8")), "image/svg"); + return DataURLUtil.createDataURL( + new ByteArrayInputStream(modifiedSVG.getBytes(StandardCharsets.UTF_8)), "image/svg"); } catch (IOException | TransformerException | SAXException | ParserConfigurationException e) { throw new RuntimeException(e); } diff --git a/fop-core/src/main/java/org/apache/fop/hyphenation/PatternParser.java b/fop-core/src/main/java/org/apache/fop/hyphenation/PatternParser.java index 6bf3391e6..4a8a30086 100644 --- a/fop-core/src/main/java/org/apache/fop/hyphenation/PatternParser.java +++ b/fop-core/src/main/java/org/apache/fop/hyphenation/PatternParser.java @@ -26,6 +26,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; import java.net.MalformedURLException; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import javax.xml.parsers.SAXParserFactory; @@ -489,7 +490,7 @@ public class PatternParser extends DefaultHandler implements PatternConsumer { PrintStream p = null; if (args.length > 1) { FileOutputStream f = new FileOutputStream(args[1]); - p = new PrintStream(f, false, "utf-8"); + p = new PrintStream(f, false, StandardCharsets.UTF_8.name()); pp.setTestOut(p); } pp.parse(args[0]); diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java index 7ebb0ffd6..c2080f0d0 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java @@ -23,6 +23,7 @@ package org.apache.fop.pdf; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; @@ -847,13 +848,13 @@ public class PDFDocument { } try { MessageDigest md = MessageDigest.getInstance("MD5"); - byte[] thedigest = md.digest(key.getBytes("UTF-8")); + byte[] thedigest = md.digest(key.getBytes(StandardCharsets.UTF_8)); StringBuilder hex = new StringBuilder(); for (byte b : thedigest) { hex.append(String.format("%02x", b)); } return hex.toString(); - } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { + } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFEncryptionJCE.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFEncryptionJCE.java index edebbb23a..7517646e5 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFEncryptionJCE.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFEncryptionJCE.java @@ -21,7 +21,7 @@ package org.apache.fop.pdf; import java.io.IOException; import java.io.OutputStream; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.MessageDigest; @@ -332,19 +332,15 @@ public final class PDFEncryptionJCE extends PDFObject implements PDFEncryption { protected byte[] preparePassword(String password) { int finalLength = 32; byte[] preparedPassword = new byte[finalLength]; - try { - byte[] passwordBytes = password.getBytes("UTF-8"); - if (passwordBytes.length >= finalLength) { - System.arraycopy(passwordBytes, 0, preparedPassword, 0, finalLength); - } else { - System.arraycopy(passwordBytes, 0, preparedPassword, 0, passwordBytes.length); - System.arraycopy(padding, 0, preparedPassword, passwordBytes.length, finalLength - - passwordBytes.length); - } - return preparedPassword; - } catch (UnsupportedEncodingException e) { - throw new UnsupportedOperationException(e); + byte[] passwordBytes = password.getBytes(StandardCharsets.UTF_8); + if (passwordBytes.length >= finalLength) { + System.arraycopy(passwordBytes, 0, preparedPassword, 0, finalLength); + } else { + System.arraycopy(passwordBytes, 0, preparedPassword, 0, passwordBytes.length); + System.arraycopy(padding, 0, preparedPassword, passwordBytes.length, finalLength + - passwordBytes.length); } + return preparedPassword; } void run() { @@ -548,20 +544,16 @@ public final class PDFEncryptionJCE extends PDFObject implements PDFEncryption { protected byte[] preparePassword(String password) { byte[] passwordBytes; byte[] preparedPassword; - try { - // the password needs to be normalized first but we are bypassing that step for now - passwordBytes = password.getBytes("UTF-8"); - if (passwordBytes.length > 127) { - preparedPassword = new byte[127]; - System.arraycopy(passwordBytes, 0, preparedPassword, 0, 127); - } else { - preparedPassword = new byte[passwordBytes.length]; - System.arraycopy(passwordBytes, 0, preparedPassword, 0, passwordBytes.length); - } - return preparedPassword; - } catch (UnsupportedEncodingException e) { - throw new UnsupportedOperationException(e.getMessage()); + // the password needs to be normalized first but we are bypassing that step for now + passwordBytes = password.getBytes(StandardCharsets.UTF_8); + if (passwordBytes.length > 127) { + preparedPassword = new byte[127]; + System.arraycopy(passwordBytes, 0, preparedPassword, 0, 127); + } else { + preparedPassword = new byte[passwordBytes.length]; + System.arraycopy(passwordBytes, 0, preparedPassword, 0, passwordBytes.length); } + return preparedPassword; } /** diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFLinearization.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFLinearization.java index f071c6250..dc294b307 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFLinearization.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFLinearization.java @@ -21,6 +21,7 @@ package org.apache.fop.pdf; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -312,7 +313,7 @@ public class PDFLinearization { private static void writePadding(int padding, OutputStream stream) throws IOException { for (int i = 0; i < padding; i++) { - stream.write(" ".getBytes("UTF-8")); + stream.write(" ".getBytes(StandardCharsets.UTF_8)); } } diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFSignature.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFSignature.java index f5384be53..bdcc07bc0 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFSignature.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFSignature.java @@ -25,6 +25,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; import java.security.GeneralSecurityException; import java.security.KeyStore; import java.security.PrivateKey; @@ -208,8 +209,8 @@ public class PDFSignature { .replace("\0", " "); try (OutputStream editedPDF = getTempOS()) { IOUtils.copyLarge(pdfIS, editedPDF, 0, startOfContents); - editedPDF.write(byteRange.getBytes("UTF-8")); - editedPDF.write(byteRangePadding.getBytes("UTF-8")); + editedPDF.write(byteRange.getBytes(StandardCharsets.UTF_8)); + editedPDF.write(byteRangePadding.getBytes(StandardCharsets.UTF_8)); IOUtils.copyLarge(pdfIS, editedPDF, offsetToPDFEnd - startOfContents, Long.MAX_VALUE); } pdfIS.reset(); @@ -219,10 +220,10 @@ public class PDFSignature { String signedHexPadding = new String(new char[SIZE_OF_CONTENTS - (signed.length * 2)]) .replace("\0", "0"); String signedHex = "<" + PDFText.toHex(signed, false) + signedHexPadding + ">"; - os.write(signedHex.getBytes("UTF-8")); + os.write(signedHex.getBytes(StandardCharsets.UTF_8)); } - os.write(byteRange.getBytes("UTF-8")); - os.write(byteRangePadding.getBytes("UTF-8")); + os.write(byteRange.getBytes(StandardCharsets.UTF_8)); + os.write(byteRangePadding.getBytes(StandardCharsets.UTF_8)); IOUtils.copyLarge(pdfIS, os, offsetToPDFEnd - startOfContents, Long.MAX_VALUE); } } diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFText.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFText.java index 749bf5a30..d088f355f 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFText.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFText.java @@ -21,6 +21,7 @@ package org.apache.fop.pdf; import java.io.ByteArrayOutputStream; +import java.nio.charset.StandardCharsets; import java.util.Locale; import org.apache.fop.util.CharUtilities; @@ -99,12 +100,7 @@ public class PDFText extends PDFObject { } if (hexMode) { - final byte[] uniBytes; - try { - uniBytes = text.getBytes("UTF-16"); - } catch (java.io.UnsupportedEncodingException uee) { - throw new RuntimeException("Incompatible VM", uee); - } + final byte[] uniBytes = text.getBytes(StandardCharsets.UTF_16); return toHex(uniBytes); } else { final StringBuffer result = new StringBuffer(text.length() * 2); @@ -192,13 +188,8 @@ public class PDFText extends PDFObject { */ public static final String toUnicodeHex(char c) { final StringBuffer buf = new StringBuffer(4); - final byte[] uniBytes; - try { - final char[] a = {c}; - uniBytes = new String(a).getBytes("UTF-16BE"); - } catch (java.io.UnsupportedEncodingException uee) { - throw new RuntimeException("Incompatible VM", uee); - } + final char[] a = {c}; + final byte[] uniBytes = new String(a).getBytes(StandardCharsets.UTF_16BE); for (byte uniByte : uniBytes) { buf.append(DIGITS[(uniByte >>> 4) & 0x0F]); diff --git a/fop-core/src/main/java/org/apache/fop/render/txt/TXTStream.java b/fop-core/src/main/java/org/apache/fop/render/txt/TXTStream.java index 44a237b34..85639e29c 100644 --- a/fop-core/src/main/java/org/apache/fop/render/txt/TXTStream.java +++ b/fop-core/src/main/java/org/apache/fop/render/txt/TXTStream.java @@ -21,13 +21,14 @@ package org.apache.fop.render.txt; import java.io.IOException; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; /** * Helper class for text streams. */ public class TXTStream { - private static final String DEFAULT_ENCODING = "UTF-8"; + private static final String DEFAULT_ENCODING = StandardCharsets.UTF_8.name(); private OutputStream out; private boolean doOutput = true; @@ -68,7 +69,7 @@ public class TXTStream { /** * Set the encoding for the text stream. - * @param encoding the encoding, if null, "UTF-8" is chosen as default + * @param encoding the encoding, if null, StandardCharsets.UTF_8 is chosen as default */ public void setEncoding(String encoding) { if (encoding != null) { diff --git a/fop-core/src/main/java/org/apache/fop/render/txt/TxtRendererConfig.java b/fop-core/src/main/java/org/apache/fop/render/txt/TxtRendererConfig.java index 76128d42b..a8afffc06 100644 --- a/fop-core/src/main/java/org/apache/fop/render/txt/TxtRendererConfig.java +++ b/fop-core/src/main/java/org/apache/fop/render/txt/TxtRendererConfig.java @@ -19,6 +19,7 @@ package org.apache.fop.render.txt; +import java.nio.charset.StandardCharsets; import java.util.EnumMap; import org.apache.fop.apps.FOPException; @@ -37,7 +38,7 @@ import org.apache.fop.render.RendererConfigOption; public final class TxtRendererConfig implements RendererConfig { public enum TxtRendererOption implements RendererConfigOption { - ENCODING("encoding", "UTF-8"); + ENCODING("encoding", StandardCharsets.UTF_8.name()); private final String name; private final Object defaultValue; |