summaryrefslogtreecommitdiff
path: root/www/apache-jserv/files/patch-af
blob: 69c4bf4f09c99e6e95fc1da37a62c427a909913a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--- src/java/org/apache/java/lang/AdaptiveClassLoader.java.orig	Tue Feb  8 18:37:01 2000
+++ src/java/org/apache/java/lang/AdaptiveClassLoader.java	Tue Feb  8 20:33:18 2000
@@ -661,7 +661,18 @@
             ZipEntry entry = zipfile.getEntry(name);
 
             if (entry != null) {
-                return zipfile.getInputStream(entry);
+                InputStream stream = zipfile.getInputStream(entry);
+                byte data[] = new byte[(int)entry.getSize()];
+		for(int i = 0 ; i < data.length ;) {
+			int size = stream.read(data, i, data.length - i);
+			if(size < 0) {
+				stream.close();
+				return null;
+			}
+			i += size;
+		}
+		stream.close();
+                return new ByteArrayInputStream(data);
             } else {
                 return null;
             }
@@ -671,6 +682,7 @@
             if ( zipfile != null ) {
                 try {
                     zipfile.close();
+                    zipfile = null;
                 } catch ( IOException ignored ) {
                 }
             }