fix: String.getBytes(Charset) is not available for Java 5
diff --git a/src/main/java/org/yaml/snakeyaml/reader/UnicodeReader.java b/src/main/java/org/yaml/snakeyaml/reader/UnicodeReader.java
index 0931023..65bfc57 100644
--- a/src/main/java/org/yaml/snakeyaml/reader/UnicodeReader.java
+++ b/src/main/java/org/yaml/snakeyaml/reader/UnicodeReader.java
@@ -49,9 +49,9 @@
* to be used. If BOM is not found then use a given default or system encoding.
*/
public class UnicodeReader extends Reader {
- public static final Charset UTF8 = Charset.forName("UTF-8");
- public static final Charset UTF16BE = Charset.forName("UTF-16BE");
- public static final Charset UTF16LE = Charset.forName("UTF-16LE");
+ private static final Charset UTF8 = Charset.forName("UTF-8");
+ private static final Charset UTF16BE = Charset.forName("UTF-16BE");
+ private static final Charset UTF16LE = Charset.forName("UTF-16LE");
PushbackInputStream internalIn;
InputStreamReader internalIn2 = null;
diff --git a/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java b/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
index 217c1d6..ea63fd3 100644
--- a/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
+++ b/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
@@ -15,6 +15,7 @@
*/
package org.yaml.snakeyaml.representer;
+import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Calendar;
@@ -28,10 +29,10 @@
import java.util.TimeZone;
import java.util.regex.Pattern;
+import org.yaml.snakeyaml.error.YAMLException;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.Tag;
-import org.yaml.snakeyaml.reader.UnicodeReader;
/**
* Represent standard Java classes
@@ -116,7 +117,11 @@
if (BINARY_PATTERN.matcher(value).find()) {
tag = Tag.BINARY;
char[] binary;
- binary = Base64Coder.encode(value.getBytes(UnicodeReader.UTF8));
+ try {
+ binary = Base64Coder.encode(value.getBytes("UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ throw new YAMLException(e);
+ }
value = String.valueOf(binary);
style = '|';
}
diff --git a/src/test/java/biz/source_code/base64Coder/Base64CoderTest.java b/src/test/java/biz/source_code/base64Coder/Base64CoderTest.java
index 9d16b74..dc937dc 100644
--- a/src/test/java/biz/source_code/base64Coder/Base64CoderTest.java
+++ b/src/test/java/biz/source_code/base64Coder/Base64CoderTest.java
@@ -20,7 +20,6 @@
import junit.framework.TestCase;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
-import org.yaml.snakeyaml.reader.UnicodeReader;
public class Base64CoderTest extends TestCase {
@@ -64,7 +63,7 @@
}
private void check(String text, String encoded) throws UnsupportedEncodingException {
- char[] s1 = Base64Coder.encode(text.getBytes(UnicodeReader.UTF8));
+ char[] s1 = Base64Coder.encode(text.getBytes("UTF-8"));
String t1 = new String(s1);
assertEquals(encoded, t1);
byte[] s2 = Base64Coder.decode(encoded.toCharArray());
diff --git a/src/test/java/examples/LoadExampleTest.java b/src/test/java/examples/LoadExampleTest.java
index 3df5a0e..dc67d91 100644
--- a/src/test/java/examples/LoadExampleTest.java
+++ b/src/test/java/examples/LoadExampleTest.java
@@ -26,7 +26,6 @@
import junit.framework.TestCase;
import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.reader.UnicodeReader;
public class LoadExampleTest extends TestCase {
@SuppressWarnings("unchecked")
@@ -52,7 +51,7 @@
Object data = yaml.load(input);
assertEquals("test", data);
//
- data = yaml.load(new ByteArrayInputStream("test2".getBytes(UnicodeReader.UTF8)));
+ data = yaml.load(new ByteArrayInputStream("test2".getBytes("UTF-8")));
assertEquals("test2", data);
input.close();
}
diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java b/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
index cb0b13f..681d3ed 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
@@ -19,6 +19,7 @@
import java.io.InputStream;
import java.io.Reader;
import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
@@ -26,7 +27,6 @@
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.introspector.BeanAccess;
-import org.yaml.snakeyaml.reader.UnicodeReader;
public class JavaBeanLoaderTest extends TestCase {
@@ -49,9 +49,9 @@
assertFalse(parsed2.isValid());
}
- public void testLoadInputStream() {
+ public void testLoadInputStream() throws UnsupportedEncodingException {
String yaml = "!!org.yaml.snakeyaml.JavaBeanParserTest$Bean {id: 3, name: Test me.}\n";
- InputStream input = new ByteArrayInputStream(yaml.getBytes(UnicodeReader.UTF8));
+ InputStream input = new ByteArrayInputStream(yaml.getBytes("UTF-8"));
Yaml loader = new Yaml();
Bean parsed = loader.loadAs(input, Bean.class);
assertEquals(3, parsed.getId());