From 0878054f70ad8bdc86a9df2376e8980ec68f12b3 Mon Sep 17 00:00:00 2001 From: weijun Date: Mon, 5 Dec 2011 10:19:13 +0800 Subject: [PATCH] 7116857: Warnings in javax.security and some sun.misc Reviewed-by: smarks --- .../auth/kerberos/ServicePermission.java | 2 +- .../classes/sun/misc/CEFormatException.java | 8 ++- .../classes/sun/misc/CEStreamExhausted.java | 5 +- .../classes/sun/misc/ClassLoaderUtil.java | 6 +- .../classes/sun/misc/CompoundEnumeration.java | 6 +- .../misc/ExtensionInstallationException.java | 2 + .../classes/sun/misc/FloatingDecimal.java | 19 +++--- .../sun/misc/FormattedFloatingDecimal.java | 12 ++-- .../sun/misc/InvalidJarIndexException.java | 2 + src/share/classes/sun/misc/LRUCache.java | 4 +- src/share/classes/sun/misc/Queue.java | 62 +++++++++---------- .../classes/sun/misc/RequestProcessor.java | 19 +++--- .../sun/misc/ServiceConfigurationError.java | 2 + src/share/classes/sun/misc/URLClassPath.java | 9 ++- 14 files changed, 84 insertions(+), 74 deletions(-) diff --git a/src/share/classes/javax/security/auth/kerberos/ServicePermission.java b/src/share/classes/javax/security/auth/kerberos/ServicePermission.java index c79d0e11e..a22e8cc42 100644 --- a/src/share/classes/javax/security/auth/kerberos/ServicePermission.java +++ b/src/share/classes/javax/security/auth/kerberos/ServicePermission.java @@ -369,7 +369,7 @@ public final class ServicePermission extends Permission switch(a[i-matchlen]) { case ',': seencomma = true; - /*FALLTHROUGH*/ + break; case ' ': case '\r': case '\n': case '\f': case '\t': break; diff --git a/src/share/classes/sun/misc/CEFormatException.java b/src/share/classes/sun/misc/CEFormatException.java index 974a55ca1..0b3aa0514 100644 --- a/src/share/classes/sun/misc/CEFormatException.java +++ b/src/share/classes/sun/misc/CEFormatException.java @@ -28,7 +28,9 @@ package sun.misc; import java.io.IOException; public class CEFormatException extends IOException { - public CEFormatException(String s) { - super(s); - } + static final long serialVersionUID = -7139121221067081482L; + public CEFormatException(String s) { + super(s); + } } + diff --git a/src/share/classes/sun/misc/CEStreamExhausted.java b/src/share/classes/sun/misc/CEStreamExhausted.java index 28e0ffe6a..d346d5507 100644 --- a/src/share/classes/sun/misc/CEStreamExhausted.java +++ b/src/share/classes/sun/misc/CEStreamExhausted.java @@ -27,4 +27,7 @@ package sun.misc; import java.io.IOException; /** This exception is thrown when EOF is reached */ -public class CEStreamExhausted extends IOException { }; +public class CEStreamExhausted extends IOException { + static final long serialVersionUID = -5889118049525891904L; +} + diff --git a/src/share/classes/sun/misc/ClassLoaderUtil.java b/src/share/classes/sun/misc/ClassLoaderUtil.java index 61106dbb7..81f00d4ac 100644 --- a/src/share/classes/sun/misc/ClassLoaderUtil.java +++ b/src/share/classes/sun/misc/ClassLoaderUtil.java @@ -79,9 +79,9 @@ public class ClassLoaderUtil { URLClassPath ucp = SharedSecrets.getJavaNetAccess() .getURLClassPath(classLoader); - ArrayList loaders = ucp.loaders; - Stack urls = ucp.urls; - HashMap lmap = ucp.lmap; + ArrayList loaders = ucp.loaders; + Stack urls = ucp.urls; + HashMap lmap = ucp.lmap; /* *The urls variable in the URLClassPath object holds URLs that have not yet diff --git a/src/share/classes/sun/misc/CompoundEnumeration.java b/src/share/classes/sun/misc/CompoundEnumeration.java index 69de7f897..fc3ecea3e 100644 --- a/src/share/classes/sun/misc/CompoundEnumeration.java +++ b/src/share/classes/sun/misc/CompoundEnumeration.java @@ -33,10 +33,10 @@ import java.util.NoSuchElementException; * enumerations. */ public class CompoundEnumeration implements Enumeration { - private Enumeration[] enums; + private Enumeration[] enums; private int index = 0; - public CompoundEnumeration(Enumeration[] enums) { + public CompoundEnumeration(Enumeration[] enums) { this.enums = enums; } @@ -58,6 +58,6 @@ public class CompoundEnumeration implements Enumeration { if (!next()) { throw new NoSuchElementException(); } - return (E)enums[index].nextElement(); + return enums[index].nextElement(); } } diff --git a/src/share/classes/sun/misc/ExtensionInstallationException.java b/src/share/classes/sun/misc/ExtensionInstallationException.java index 61f484a78..156ba0bab 100644 --- a/src/share/classes/sun/misc/ExtensionInstallationException.java +++ b/src/share/classes/sun/misc/ExtensionInstallationException.java @@ -34,6 +34,8 @@ package sun.misc; public class ExtensionInstallationException extends Exception { + static final long serialVersionUID = 3139688306909345924L; + /* *

* Construct a new exception with an exception reason diff --git a/src/share/classes/sun/misc/FloatingDecimal.java b/src/share/classes/sun/misc/FloatingDecimal.java index 4df0487c8..478f12003 100644 --- a/src/share/classes/sun/misc/FloatingDecimal.java +++ b/src/share/classes/sun/misc/FloatingDecimal.java @@ -325,7 +325,7 @@ public class FloatingDecimal{ // can do int arithmetic rather than long! int ivalue = (int)lvalue; ndigits = 10; - digits = (char[])(perThreadBuffer.get()); + digits = perThreadBuffer.get(); digitno = ndigits-1; c = ivalue%10; ivalue /= 10; @@ -345,7 +345,7 @@ public class FloatingDecimal{ // same algorithm as above (same bugs, too ) // but using long arithmetic. ndigits = 20; - digits = (char[])(perThreadBuffer.get()); + digits = perThreadBuffer.get(); digitno = ndigits-1; c = (int)(lvalue%10L); lvalue /= 10L; @@ -477,9 +477,9 @@ public class FloatingDecimal{ } // Begin to unpack // Discover obvious special cases of NaN and Infinity. - binExp = (int)( (fBits&singleExpMask) >> singleExpShift ); + binExp = (fBits&singleExpMask) >> singleExpShift; fractBits = fBits&singleFractMask; - if ( binExp == (int)(singleExpMask>>singleExpShift) ) { + if ( binExp == (singleExpMask>>singleExpShift) ) { isExceptional = true; if ( fractBits == 0L ){ digits = infinity; @@ -900,7 +900,7 @@ public class FloatingDecimal{ } public String toJavaFormatString() { - char result[] = (char[])(perThreadBuffer.get()); + char result[] = perThreadBuffer.get(); int i = getChars(result); return new String(result, 0, i); } @@ -978,14 +978,14 @@ public class FloatingDecimal{ } // Per-thread buffer for string/stringbuffer conversion - private static ThreadLocal perThreadBuffer = new ThreadLocal() { - protected synchronized Object initialValue() { + private static ThreadLocal perThreadBuffer = new ThreadLocal() { + protected synchronized char[] initialValue() { return new char[26]; } }; public void appendTo(Appendable buf) { - char result[] = (char[])(perThreadBuffer.get()); + char result[] = perThreadBuffer.get(); int i = getChars(result); if (buf instanceof StringBuilder) ((StringBuilder) buf).append(result, 0, i); @@ -995,6 +995,7 @@ public class FloatingDecimal{ assert false; } + @SuppressWarnings("fallthrough") public static FloatingDecimal readJavaFormatString( String in ) throws NumberFormatException { boolean isNegative = false; @@ -2209,7 +2210,7 @@ public class FloatingDecimal{ // exponent correctly, even in the case of // Double.MAX_VALUE overflowing to infinity. - significand = (( ((long)exponent + + significand = (( (exponent + (long)DoubleConsts.EXP_BIAS) << (DoubleConsts.SIGNIFICAND_WIDTH-1)) & DoubleConsts.EXP_BIT_MASK) | diff --git a/src/share/classes/sun/misc/FormattedFloatingDecimal.java b/src/share/classes/sun/misc/FormattedFloatingDecimal.java index 261dbc07e..5532b92c3 100644 --- a/src/share/classes/sun/misc/FormattedFloatingDecimal.java +++ b/src/share/classes/sun/misc/FormattedFloatingDecimal.java @@ -333,7 +333,7 @@ public class FormattedFloatingDecimal{ // can do int arithmetic rather than long! int ivalue = (int)lvalue; ndigits = 10; - digits = (char[])(perThreadBuffer.get()); + digits = perThreadBuffer.get(); digitno = ndigits-1; c = ivalue%10; ivalue /= 10; @@ -353,7 +353,7 @@ public class FormattedFloatingDecimal{ // same algorithm as above (same bugs, too ) // but using long arithmetic. ndigits = 20; - digits = (char[])(perThreadBuffer.get()); + digits = perThreadBuffer.get(); digitno = ndigits-1; c = (int)(lvalue%10L); lvalue /= 10L; @@ -554,9 +554,9 @@ public class FormattedFloatingDecimal{ } // Begin to unpack // Discover obvious special cases of NaN and Infinity. - binExp = (int)( (fBits&singleExpMask) >> singleExpShift ); + binExp = (fBits&singleExpMask) >> singleExpShift; fractBits = fBits&singleFractMask; - if ( binExp == (int)(singleExpMask>>singleExpShift) ) { + if ( binExp == (singleExpMask>>singleExpShift) ) { isExceptional = true; if ( fractBits == 0L ){ digits = infinity; @@ -1140,8 +1140,8 @@ public class FormattedFloatingDecimal{ } // Per-thread buffer for string/stringbuffer conversion - private static ThreadLocal perThreadBuffer = new ThreadLocal() { - protected synchronized Object initialValue() { + private static ThreadLocal perThreadBuffer = new ThreadLocal() { + protected synchronized char[] initialValue() { return new char[26]; } }; diff --git a/src/share/classes/sun/misc/InvalidJarIndexException.java b/src/share/classes/sun/misc/InvalidJarIndexException.java index 83e81991f..4c6de5d1d 100644 --- a/src/share/classes/sun/misc/InvalidJarIndexException.java +++ b/src/share/classes/sun/misc/InvalidJarIndexException.java @@ -38,6 +38,8 @@ import java.lang.LinkageError; public class InvalidJarIndexException extends RuntimeException { + static final long serialVersionUID = -6159797516569680148L; + /** * Constructs an InvalidJarIndexException with no * detail message. diff --git a/src/share/classes/sun/misc/LRUCache.java b/src/share/classes/sun/misc/LRUCache.java index d4b95547b..f40f65a7a 100644 --- a/src/share/classes/sun/misc/LRUCache.java +++ b/src/share/classes/sun/misc/LRUCache.java @@ -52,7 +52,9 @@ public abstract class LRUCache { public V forName(N name) { if (oa == null) { - oa = (V[])new Object[size]; + @SuppressWarnings("unchecked") + V[] temp = (V[])new Object[size]; + oa = temp; } else { for (int i = 0; i < oa.length; i++) { V ob = oa[i]; diff --git a/src/share/classes/sun/misc/Queue.java b/src/share/classes/sun/misc/Queue.java index 4edc8c918..5a447a54b 100644 --- a/src/share/classes/sun/misc/Queue.java +++ b/src/share/classes/sun/misc/Queue.java @@ -35,12 +35,12 @@ import java.util.NoSuchElementException; * @author Herb Jellinek */ -public class Queue { +public class Queue { int length = 0; - QueueElement head = null; - QueueElement tail = null; + QueueElement head = null; + QueueElement tail = null; public Queue() { } @@ -48,9 +48,9 @@ public class Queue { /** * Enqueue an object. */ - public synchronized void enqueue(Object obj) { + public synchronized void enqueue(T obj) { - QueueElement newElt = new QueueElement(obj); + QueueElement newElt = new QueueElement<>(obj); if (head == null) { head = newElt; @@ -72,7 +72,7 @@ public class Queue { * @exception java.lang.InterruptedException if any thread has * interrupted this thread. */ - public Object dequeue() throws InterruptedException { + public T dequeue() throws InterruptedException { return dequeue(0L); } @@ -85,13 +85,13 @@ public class Queue { * @exception java.lang.InterruptedException if any thread has * interrupted this thread. */ - public synchronized Object dequeue(long timeOut) + public synchronized T dequeue(long timeOut) throws InterruptedException { while (tail == null) { wait(timeOut); } - QueueElement elt = tail; + QueueElement elt = tail; tail = elt.prev; if (tail == null) { head = null; @@ -115,8 +115,8 @@ public class Queue { * order. Use the Enumeration methods on the returned object to * fetch the elements sequentially. */ - public final synchronized Enumeration elements() { - return new LIFOQueueEnumerator(this); + public final synchronized Enumeration elements() { + return new LIFOQueueEnumerator<>(this); } /** @@ -124,8 +124,8 @@ public class Queue { * order. Use the Enumeration methods on the returned object to * fetch the elements sequentially. */ - public final synchronized Enumeration reverseElements() { - return new FIFOQueueEnumerator(this); + public final synchronized Enumeration reverseElements() { + return new FIFOQueueEnumerator<>(this); } public synchronized void dump(String msg) { @@ -133,8 +133,8 @@ public class Queue { System.err.println("["+length+" elt(s); head = "+ (head == null ? "null" : (head.obj)+"")+ " tail = "+(tail == null ? "null" : (tail.obj)+"")); - QueueElement cursor = head; - QueueElement last = null; + QueueElement cursor = head; + QueueElement last = null; while (cursor != null) { System.err.println(" "+cursor); last = cursor; @@ -147,11 +147,11 @@ public class Queue { } } -final class FIFOQueueEnumerator implements Enumeration { - Queue queue; - QueueElement cursor; +final class FIFOQueueEnumerator implements Enumeration { + Queue queue; + QueueElement cursor; - FIFOQueueEnumerator(Queue q) { + FIFOQueueEnumerator(Queue q) { queue = q; cursor = q.tail; } @@ -160,10 +160,10 @@ final class FIFOQueueEnumerator implements Enumeration { return (cursor != null); } - public Object nextElement() { + public T nextElement() { synchronized (queue) { if (cursor != null) { - QueueElement result = cursor; + QueueElement result = cursor; cursor = cursor.prev; return result.obj; } @@ -172,11 +172,11 @@ final class FIFOQueueEnumerator implements Enumeration { } } -final class LIFOQueueEnumerator implements Enumeration { - Queue queue; - QueueElement cursor; +final class LIFOQueueEnumerator implements Enumeration { + Queue queue; + QueueElement cursor; - LIFOQueueEnumerator(Queue q) { + LIFOQueueEnumerator(Queue q) { queue = q; cursor = q.head; } @@ -185,10 +185,10 @@ final class LIFOQueueEnumerator implements Enumeration { return (cursor != null); } - public Object nextElement() { + public T nextElement() { synchronized (queue) { if (cursor != null) { - QueueElement result = cursor; + QueueElement result = cursor; cursor = cursor.next; return result.obj; } @@ -197,13 +197,13 @@ final class LIFOQueueEnumerator implements Enumeration { } } -class QueueElement { - QueueElement next = null; - QueueElement prev = null; +class QueueElement { + QueueElement next = null; + QueueElement prev = null; - Object obj = null; + T obj = null; - QueueElement(Object obj) { + QueueElement(T obj) { this.obj = obj; } diff --git a/src/share/classes/sun/misc/RequestProcessor.java b/src/share/classes/sun/misc/RequestProcessor.java index ae9e1b9ec..51b8e99f2 100644 --- a/src/share/classes/sun/misc/RequestProcessor.java +++ b/src/share/classes/sun/misc/RequestProcessor.java @@ -36,7 +36,7 @@ package sun.misc; public class RequestProcessor implements Runnable { - private static Queue requestQueue; + private static Queue requestQueue; private static Thread dispatcher; /** @@ -55,15 +55,12 @@ public class RequestProcessor implements Runnable { lazyInitialize(); while (true) { try { - Object obj = requestQueue.dequeue(); - if (obj instanceof Request) { // ignore bogons - Request req = (Request)obj; - try { - req.execute(); - } catch (Throwable t) { - // do nothing at the moment...maybe report an error - // in the future - } + Request req = requestQueue.dequeue(); + try { + req.execute(); + } catch (Throwable t) { + // do nothing at the moment...maybe report an error + // in the future } } catch (InterruptedException e) { // do nothing at the present time. @@ -92,7 +89,7 @@ public class RequestProcessor implements Runnable { */ private static synchronized void lazyInitialize() { if (requestQueue == null) { - requestQueue = new Queue(); + requestQueue = new Queue(); } } diff --git a/src/share/classes/sun/misc/ServiceConfigurationError.java b/src/share/classes/sun/misc/ServiceConfigurationError.java index 5659b2387..74d0c846b 100644 --- a/src/share/classes/sun/misc/ServiceConfigurationError.java +++ b/src/share/classes/sun/misc/ServiceConfigurationError.java @@ -43,6 +43,8 @@ package sun.misc; public class ServiceConfigurationError extends Error { + static final long serialVersionUID = 8769866263384244465L; + /** * Constructs a new instance with the specified detail string. */ diff --git a/src/share/classes/sun/misc/URLClassPath.java b/src/share/classes/sun/misc/URLClassPath.java index cee982369..eb6b86aec 100644 --- a/src/share/classes/sun/misc/URLClassPath.java +++ b/src/share/classes/sun/misc/URLClassPath.java @@ -836,10 +836,9 @@ public class URLClassPath { Set visited) { Resource res; - Object[] jarFiles; - boolean done = false; + String[] jarFiles; int count = 0; - LinkedList jarFilesList = null; + LinkedList jarFilesList = null; /* If there no jar files in the index that can potential contain * this resource then return immediately. @@ -848,11 +847,11 @@ public class URLClassPath { return null; do { - jarFiles = jarFilesList.toArray(); int size = jarFilesList.size(); + jarFiles = jarFilesList.toArray(new String[size]); /* loop through the mapped jar file list */ while(count < size) { - String jarName = (String)jarFiles[count++]; + String jarName = jarFiles[count++]; JarLoader newLoader; final URL url; -- GitLab