You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by py...@apache.org on 2006/10/16 19:40:59 UTC

svn commit: r464582 - in /incubator/harmony/enhanced/classlib/trunk/modules/luni/src: main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java test/java/tests/api/java/net/JarURLConnectionTest.java

Author: pyang
Date: Mon Oct 16 10:40:59 2006
New Revision: 464582

URL: http://svn.apache.org/viewvc?view=rev&rev=464582
Log:
source code tidyup: generific, fix unexpected NPE, remove console output in tests, etc

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/JarURLConnectionTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java?view=diff&rev=464582&r1=464581&r2=464582
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java Mon Oct 16 10:40:59 2006
@@ -50,7 +50,7 @@
  * 
  */
 public class JarURLConnection extends java.net.JarURLConnection {
-	static Hashtable<Object,CacheEntry> jarCache = new Hashtable<Object,CacheEntry>();
+	static Hashtable<String,CacheEntry<? extends JarFile>> jarCache = new Hashtable<String,CacheEntry<?>>();
 
 	InputStream jarInput;
 
@@ -58,24 +58,24 @@
 
 	private JarEntry jarEntry;
 
-	ReferenceQueue cacheQueue = new ReferenceQueue();
+	ReferenceQueue<JarFile> cacheQueue = new ReferenceQueue<JarFile>();
 
-	static TreeSet lru = new TreeSet(new LRUComparitor());
+	static TreeSet<LRUKey> lru = new TreeSet<LRUKey>(new LRUComparitor<LRUKey>());
 
 	static int Limit;
 	static {
 		Limit = AccessController.doPrivileged(new PrivilegedAction<Integer>() {
 					public Integer run() {
-						return Integer.getInteger("jar.cacheSize", 500);
+						return Integer.getInteger("jar.cacheSize", 500); //$NON-NLS-1$
 					}
 				});
 		VM.closeJars();
 	}
 
-	static final class CacheEntry extends WeakReference {
+	static final class CacheEntry<T extends JarFile> extends WeakReference<T>{
 		Object key;
 
-		CacheEntry(Object jar, String key, ReferenceQueue queue) {
+        CacheEntry(T jar, String key, ReferenceQueue<JarFile> queue) {
 			super(jar, queue);
 			this.key = key;
 		}
@@ -99,14 +99,14 @@
 		}
 	}
 
-	static final class LRUComparitor implements Comparator {
+	static final class LRUComparitor<T> implements Comparator<LRUKey> {
 		LRUComparitor() {
 		}
 
 		/**
 		 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
 		 */
-		public int compare(Object o1, Object o2) {
+		public int compare(LRUKey o1, LRUKey o2) {
 			if (((LRUKey) o1).ts > ((LRUKey) o2).ts) {
 				return 1;
 			}
@@ -170,11 +170,11 @@
 	 */
 	private void findJarFile() throws IOException {
 		URL jarFileURL = getJarFileURL();
-		if (jarFileURL.getProtocol().equals("file")) {
+		if (jarFileURL.getProtocol().equals("file")) { //$NON-NLS-1$
 			String fileName = jarFileURL.getFile();
 			String host = jarFileURL.getHost();
 			if (host != null && host.length() > 0)
-				fileName = "//" + host + fileName;
+				fileName = "//" + host + fileName; //$NON-NLS-1$
 			jarFile = openJarFile(fileName, fileName, false);
 			return;
 		}
@@ -199,8 +199,8 @@
 			jarFile = AccessController.doPrivileged(new PrivilegedAction<JarFile>() {
 						public JarFile run() {
 							try {
-								File tempJar = File.createTempFile("hyjar_",
-										".tmp", null);
+								File tempJar = File.createTempFile("hyjar_", //$NON-NLS-1$
+										".tmp", null); //$NON-NLS-1$
 								FileOutputStream fos = new FileOutputStream(
 										tempJar);
 								byte[] buf = new byte[4096];
@@ -227,10 +227,10 @@
 
 		JarFile jar = null;
 		if(useCaches){
-		    CacheEntry entry;
-            while ((entry = (CacheEntry) cacheQueue.poll()) != null)
+		    CacheEntry<? extends JarFile> entry;
+            while ((entry = (CacheEntry<? extends JarFile>)cacheQueue.poll()) != null)
                 jarCache.remove(entry.key);
-            entry = (CacheEntry) jarCache.get(key);
+            entry = jarCache.get(key);
             if (entry != null)
                 jar = (JarFile) entry.get();
             if (jar == null && fileString != null) {
@@ -238,7 +238,7 @@
                         + (temp ? ZipFile.OPEN_DELETE : 0);
                 jar = new JarFile(new File(Util.decode(fileString, false)),
                         true, flags);
-                jarCache.put(key, new CacheEntry(jar, key, cacheQueue));
+                jarCache.put(key, new CacheEntry<JarFile>(jar, key, cacheQueue));
             } else {
                 SecurityManager security = System.getSecurityManager();
                 if (security != null)
@@ -246,7 +246,7 @@
                 if (temp)
                     lru.remove(new LRUKey(jar, 0));
             }
-		}else{
+		}else if(fileString != null){
 		    int flags = ZipFile.OPEN_READ + (temp ? ZipFile.OPEN_DELETE : 0);
 		    jar = new JarFile(new File(Util.decode(fileString, false)), true, flags);
 		}
@@ -301,7 +301,7 @@
 		if (jarInput != null)
 			return jarInput;
 		if (jarEntry == null)
-			throw new IOException(Msg.getString("K00fc"));
+			throw new IOException(Msg.getString("K00fc")); //$NON-NLS-1$
 		return jarInput = jarFile.getInputStream(jarEntry);
 	}
 
@@ -316,7 +316,7 @@
 		// it could also return "x-java/jar" which jdk returns but here, we get
 		// it from the URLConnection
 		try {
-			if (url.getFile().endsWith("!/"))
+			if (url.getFile().endsWith("!/")) //$NON-NLS-1$
 				return getJarFileURL().openConnection().getContentType();
 		} catch (IOException ioe) {
 		}
@@ -333,7 +333,7 @@
 	 */
 	public int getContentLength() {
 		try {
-			if (url.getFile().endsWith("!/"))
+			if (url.getFile().endsWith("!/")) //$NON-NLS-1$
 				return getJarFileURL().openConnection().getContentLength();
 		} catch (IOException e) {
 		}
@@ -386,7 +386,7 @@
 	 * Closes the cached files.
 	 */
 	public static void closeCachedFiles() {
-		Enumeration<CacheEntry> elemEnum = jarCache.elements();
+		Enumeration<CacheEntry<? extends JarFile>> elemEnum = jarCache.elements();
 		while (elemEnum.hasMoreElements()) {
 			try {
 				ZipFile zip = (ZipFile) ((CacheEntry) elemEnum.nextElement())

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/JarURLConnectionTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/JarURLConnectionTest.java?view=diff&rev=464582&r1=464581&r2=464582
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/JarURLConnectionTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/JarURLConnectionTest.java Mon Oct 16 10:40:59 2006
@@ -45,7 +45,6 @@
 		URL u = new URL("jar:"
                 + BASE.toString()+"/lf.jar!/swt.dll");
         juc = (JarURLConnection) u.openConnection();
-        System.out.println(juc.getClass());
         java.util.jar.Attributes a = juc.getJarEntry().getAttributes();
         assertEquals("Returned incorrect Attributes", "SHA MD5", a
                 .get(new java.util.jar.Attributes.Name("Digest-Algorithms")));