Author: ssmiweve
Date: 2008-12-28 22:07:38 +0100 (Sun, 28 Dec 2008)
New Revision: 7115

Modified:
   
branches/2.18/httpclient-api/src/main/java/no/sesat/search/http/HTTPClient.java
   
branches/2.18/httpclient-api/src/main/java/no/sesat/search/http/protocol/jar/JarURLConnection.java
Log:
remove nio stuff from r7111


Modified: 
branches/2.18/httpclient-api/src/main/java/no/sesat/search/http/HTTPClient.java
===================================================================
--- 
branches/2.18/httpclient-api/src/main/java/no/sesat/search/http/HTTPClient.java 
    2008-12-23 14:11:56 UTC (rev 7114)
+++ 
branches/2.18/httpclient-api/src/main/java/no/sesat/search/http/HTTPClient.java 
    2008-12-28 21:07:38 UTC (rev 7115)
@@ -26,6 +26,7 @@
 import javax.xml.parsers.ParserConfigurationException;
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -40,7 +41,6 @@
 import java.net.URL;
 import java.net.URLConnection;
 import java.net.URLStreamHandler;
-import java.net.JarURLConnection;
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 import java.security.AccessController;
@@ -53,6 +53,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import no.sesat.search.http.protocol.jar.JarURLConnection;
 import no.sesat.search.http.protocol.jar.URLJarFile;
 import no.sesat.search.http.protocol.jar.URLJarFile.URLJarFileCloseController;
 import no.sesat.search.http.protocol.jar.URLJarFileCallBack;
@@ -314,7 +315,7 @@
         boolean success = false;
         loadUrlConnection(path);
 
-        if (urlConn instanceof HttpURLConnection  || urlConn instanceof 
JarURLConnection) {
+        if (urlConn instanceof HttpURLConnection  || urlConn instanceof 
java.net.JarURLConnection) {
             try {
 
                 if (urlConn instanceof HttpURLConnection) {
@@ -481,7 +482,7 @@
                 // EndOfHACK
 
                 // HACK Third solution. Use own URLStreamHandler
-                connection = url.openConnection();//new JarURLConnection(url, 
null);
+                connection = new JarURLConnection(url, null);
                 // EndOfHACK
 
             } else {
@@ -534,40 +535,22 @@
                 try {
 
                 result = (JarFile)
-                        // the following anonymous class is modified from 
URLJarFile to use java.nio
                     AccessController.doPrivileged(new 
PrivilegedExceptionAction() {
                         public Object run() throws IOException {
-
+                            OutputStream out = null;
                             File tmpFile = null;
                             try {
-                                tmpFile = 
File.createTempFile("jar_sesat-httpclient_cache", null);
+                                tmpFile = 
File.createTempFile("jar_sesat_cache", null);
                                 tmpFile.deleteOnExit();
-
-                                RandomAccessFile fileAccess = null;
-                                FileChannel channel = null;
-
-                                try{
-
-                                    fileAccess = new RandomAccessFile(tmpFile, 
"rws");
-                                    channel = fileAccess.getChannel();
-
-                                    channel.lock();
-
-                                    final byte[] buf = new byte[BUF_SIZE];
-                                    final ByteBuffer nioBuf = 
ByteBuffer.wrap(buf);
-
-                                    while (in.read(buf) != -1) {
-                                        channel.write(nioBuf);
-                                    }
-
-                                }finally{
-                                    if(null != channel){ channel.close(); }
-                                    if(null != fileAccess){ 
fileAccess.close(); }
-                                    if(null != in){ in.close(); }
+                                out  = new FileOutputStream(tmpFile);
+                                int read = 0;
+                                byte[] buf = new byte[BUF_SIZE];
+                                while ((read = in.read(buf)) != -1) {
+                                    out.write(buf, 0, read);
                                 }
-
+                                out.close();
+                                out = null;
                                 return new URLJarFile(tmpFile, 
closeController);
-
                             } catch (IOException e) {
                                 if (tmpFile != null) {
                                     tmpFile.delete();
@@ -577,8 +560,15 @@
                                 if (tmpFile != null) {
                                     tmpFile.delete();
                                 }
-                                LOG.error("failed writing 
jar_sesat-httpclient_cache file", rte);
+                                LOG.error("failed writing jar_sesat_cache 
file", rte);
                                 throw rte;
+                            } finally {
+                                if (in != null) {
+                                    in.close();
+                                }
+                                if (out != null) {
+                                    out.close();
+                                }
                             }
                         }
                     });

Modified: 
branches/2.18/httpclient-api/src/main/java/no/sesat/search/http/protocol/jar/JarURLConnection.java
===================================================================
--- 
branches/2.18/httpclient-api/src/main/java/no/sesat/search/http/protocol/jar/JarURLConnection.java
  2008-12-23 14:11:56 UTC (rev 7114)
+++ 
branches/2.18/httpclient-api/src/main/java/no/sesat/search/http/protocol/jar/JarURLConnection.java
  2008-12-28 21:07:38 UTC (rev 7115)
@@ -26,7 +26,6 @@
  */
 
 package no.sesat.search.http.protocol.jar;
-import sun.net.www.protocol.jar.*;
 
 import java.io.InputStream;
 import java.io.IOException;
@@ -43,6 +42,7 @@
 import java.util.jar.JarFile;
 import java.util.jar.Manifest;
 import java.security.Permission;
+import sun.net.www.protocol.jar.Handler;
 
 /**
  * @author Benjamin Renaud

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to