提交 2ba77393 编写于 作者: M martin

6671834: (str) Eliminate StringCoding.java compile warnings

Reviewed-by: iris
上级 3fcbfb5f
...@@ -53,22 +53,23 @@ class StringCoding { ...@@ -53,22 +53,23 @@ class StringCoding {
private StringCoding() { } private StringCoding() { }
/* The cached coders for each thread /** The cached coders for each thread */
*/ private final static ThreadLocal<SoftReference<StringDecoder>> decoder =
private static ThreadLocal decoder = new ThreadLocal(); new ThreadLocal<SoftReference<StringDecoder>>();
private static ThreadLocal encoder = new ThreadLocal(); private final static ThreadLocal<SoftReference<StringEncoder>> encoder =
new ThreadLocal<SoftReference<StringEncoder>>();
private static boolean warnUnsupportedCharset = true; private static boolean warnUnsupportedCharset = true;
private static Object deref(ThreadLocal tl) { private static <T> T deref(ThreadLocal<SoftReference<T>> tl) {
SoftReference sr = (SoftReference)tl.get(); SoftReference<T> sr = tl.get();
if (sr == null) if (sr == null)
return null; return null;
return sr.get(); return sr.get();
} }
private static void set(ThreadLocal tl, Object ob) { private static <T> void set(ThreadLocal<SoftReference<T>> tl, T ob) {
tl.set(new SoftReference(ob)); tl.set(new SoftReference<T>(ob));
} }
// Trim the given byte array to the given length // Trim the given byte array to the given length
...@@ -174,7 +175,7 @@ class StringCoding { ...@@ -174,7 +175,7 @@ class StringCoding {
static char[] decode(String charsetName, byte[] ba, int off, int len) static char[] decode(String charsetName, byte[] ba, int off, int len)
throws UnsupportedEncodingException throws UnsupportedEncodingException
{ {
StringDecoder sd = (StringDecoder)deref(decoder); StringDecoder sd = deref(decoder);
String csn = (charsetName == null) ? "ISO-8859-1" : charsetName; String csn = (charsetName == null) ? "ISO-8859-1" : charsetName;
if ((sd == null) || !(csn.equals(sd.requestedCharsetName()) if ((sd == null) || !(csn.equals(sd.requestedCharsetName())
|| csn.equals(sd.charsetName()))) { || csn.equals(sd.charsetName()))) {
...@@ -273,7 +274,7 @@ class StringCoding { ...@@ -273,7 +274,7 @@ class StringCoding {
static byte[] encode(String charsetName, char[] ca, int off, int len) static byte[] encode(String charsetName, char[] ca, int off, int len)
throws UnsupportedEncodingException throws UnsupportedEncodingException
{ {
StringEncoder se = (StringEncoder)deref(encoder); StringEncoder se = deref(encoder);
String csn = (charsetName == null) ? "ISO-8859-1" : charsetName; String csn = (charsetName == null) ? "ISO-8859-1" : charsetName;
if ((se == null) || !(csn.equals(se.requestedCharsetName()) if ((se == null) || !(csn.equals(se.requestedCharsetName())
|| csn.equals(se.charsetName()))) { || csn.equals(se.charsetName()))) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册