Commit c4cb37ea by Michael Koch Committed by Michael Koch

URLClassLoader.java: Whitespace cleanup.

2004-11-18  Michael Koch  <konqueror@gmx.de>

	* java/net/URLClassLoader.java: Whitespace cleanup.

From-SVN: r90877
parent fbddd18f
2004-11-18 Michael Koch <konqueror@gmx.de>
* java/net/URLClassLoader.java: Whitespace cleanup.
2004-11-18 Robert Schuster <address@bogus.example.com> 2004-11-18 Robert Schuster <address@bogus.example.com>
Complete 1.4 support Complete 1.4 support
......
...@@ -35,6 +35,7 @@ this exception to your version of the library, but you are not ...@@ -35,6 +35,7 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */ exception statement from your version. */
package java.net; package java.net;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
...@@ -248,9 +249,9 @@ public class URLClassLoader extends SecureClassLoader ...@@ -248,9 +249,9 @@ public class URLClassLoader extends SecureClassLoader
{ {
Certificate[] certs = getCertificates(); Certificate[] certs = getCertificates();
if (certs == null) if (certs == null)
return loader.noCertCodeSource; return loader.noCertCodeSource;
else else
return new CodeSource(loader.baseURL, certs); return new CodeSource(loader.baseURL, certs);
} }
/** /**
...@@ -305,15 +306,15 @@ public class URLClassLoader extends SecureClassLoader ...@@ -305,15 +306,15 @@ public class URLClassLoader extends SecureClassLoader
JarFile jarfile = null; JarFile jarfile = null;
try try
{ {
baseJarURL = baseJarURL =
new URL(null, jarURL, classloader.getURLStreamHandler("jar")); new URL(null, jarURL, classloader.getURLStreamHandler("jar"));
jarfile = jarfile =
((JarURLConnection) baseJarURL.openConnection()).getJarFile(); ((JarURLConnection) baseJarURL.openConnection()).getJarFile();
} }
catch (IOException ioe) catch (IOException ioe)
{ {
/* ignored */ /* ignored */
} }
this.baseJarURL = baseJarURL; this.baseJarURL = baseJarURL;
...@@ -324,27 +325,27 @@ public class URLClassLoader extends SecureClassLoader ...@@ -324,27 +325,27 @@ public class URLClassLoader extends SecureClassLoader
Resource getResource(String name) Resource getResource(String name)
{ {
if (jarfile == null) if (jarfile == null)
return null; return null;
if (name.startsWith("/")) if (name.startsWith("/"))
name = name.substring(1); name = name.substring(1);
JarEntry je = jarfile.getJarEntry(name); JarEntry je = jarfile.getJarEntry(name);
if (je != null) if (je != null)
return new JarURLResource(this, name, je); return new JarURLResource(this, name, je);
else else
return null; return null;
} }
Manifest getManifest() Manifest getManifest()
{ {
try try
{ {
return (jarfile == null) ? null : jarfile.getManifest(); return (jarfile == null) ? null : jarfile.getManifest();
} }
catch (IOException ioe) catch (IOException ioe)
{ {
return null; return null;
} }
} }
} }
...@@ -378,14 +379,14 @@ public class URLClassLoader extends SecureClassLoader ...@@ -378,14 +379,14 @@ public class URLClassLoader extends SecureClassLoader
{ {
try try
{ {
return new URL(((JarURLLoader) loader).baseJarURL, name, return new URL(((JarURLLoader) loader).baseJarURL, name,
loader.classloader.getURLStreamHandler("jar")); loader.classloader.getURLStreamHandler("jar"));
} }
catch (MalformedURLException e) catch (MalformedURLException e)
{ {
InternalError ie = new InternalError(); InternalError ie = new InternalError();
ie.initCause(e); ie.initCause(e);
throw ie; throw ie;
} }
} }
} }
...@@ -411,32 +412,32 @@ public class URLClassLoader extends SecureClassLoader ...@@ -411,32 +412,32 @@ public class URLClassLoader extends SecureClassLoader
{ {
try try
{ {
URL url = URL url =
new URL(baseURL, name, classloader.getURLStreamHandler(protocol)); new URL(baseURL, name, classloader.getURLStreamHandler(protocol));
URLConnection connection = url.openConnection(); URLConnection connection = url.openConnection();
// Open the connection and check the stream // Open the connection and check the stream
// just to be sure it exists. // just to be sure it exists.
int length = connection.getContentLength(); int length = connection.getContentLength();
InputStream stream = connection.getInputStream(); InputStream stream = connection.getInputStream();
// We can do some extra checking if it is a http request // We can do some extra checking if it is a http request
if (connection instanceof HttpURLConnection) if (connection instanceof HttpURLConnection)
{ {
int response = int response =
((HttpURLConnection) connection).getResponseCode(); ((HttpURLConnection) connection).getResponseCode();
if (response / 100 != 2) if (response / 100 != 2)
return null; return null;
} }
if (stream != null) if (stream != null)
return new RemoteResource(this, name, url, stream, length); return new RemoteResource(this, name, url, stream, length);
else else
return null; return null;
} }
catch (IOException ioe) catch (IOException ioe)
{ {
return null; return null;
} }
} }
} }
...@@ -551,7 +552,7 @@ public class URLClassLoader extends SecureClassLoader ...@@ -551,7 +552,7 @@ public class URLClassLoader extends SecureClassLoader
{ {
File file = new File(dir, name); File file = new File(dir, name);
if (file.exists() && ! file.isDirectory()) if (file.exists() && ! file.isDirectory())
return new FileResource(this, name, file); return new FileResource(this, name, file);
return null; return null;
} }
} }
...@@ -580,14 +581,14 @@ public class URLClassLoader extends SecureClassLoader ...@@ -580,14 +581,14 @@ public class URLClassLoader extends SecureClassLoader
{ {
try try
{ {
return new URL(loader.baseURL, name, return new URL(loader.baseURL, name,
loader.classloader.getURLStreamHandler("file")); loader.classloader.getURLStreamHandler("file"));
} }
catch (MalformedURLException e) catch (MalformedURLException e)
{ {
InternalError ie = new InternalError(); InternalError ie = new InternalError();
ie.initCause(e); ie.initCause(e);
throw ie; throw ie;
} }
} }
} }
...@@ -711,12 +712,12 @@ public class URLClassLoader extends SecureClassLoader ...@@ -711,12 +712,12 @@ public class URLClassLoader extends SecureClassLoader
addURLs(urls); addURLs(urls);
// If this factory is still not in factoryCache, add it, // If this factory is still not in factoryCache, add it,
// since we only support three protocols so far, 5 is enough // since we only support three protocols so far, 5 is enough
// for cache initial size // for cache initial size
synchronized (factoryCache) synchronized (factoryCache)
{ {
if (factory != null && factoryCache.get(factory) == null) if (factory != null && factoryCache.get(factory) == null)
factoryCache.put(factory, new HashMap(5)); factoryCache.put(factory, new HashMap(5));
} }
} }
...@@ -735,32 +736,33 @@ public class URLClassLoader extends SecureClassLoader ...@@ -735,32 +736,33 @@ public class URLClassLoader extends SecureClassLoader
{ {
synchronized (urlloaders) synchronized (urlloaders)
{ {
if (newUrl == null) if (newUrl == null)
return; // Silently ignore... return; // Silently ignore...
// Check global cache to see if there're already url loader // Check global cache to see if there're already url loader
// for this url. // for this url.
URLLoader loader = (URLLoader) urlloaders.get(newUrl); URLLoader loader = (URLLoader) urlloaders.get(newUrl);
if (loader == null) if (loader == null)
{ {
String file = newUrl.getFile(); String file = newUrl.getFile();
String protocol = newUrl.getProtocol(); String protocol = newUrl.getProtocol();
// Check that it is not a directory
// Check that it is not a directory
if ("gcjlib".equals(protocol)) if ("gcjlib".equals(protocol))
loader = new SoURLLoader(this, newUrl); loader = new SoURLLoader(this, newUrl);
else if (! (file.endsWith("/") || file.endsWith(File.separator))) else if (! (file.endsWith("/") || file.endsWith(File.separator)))
loader = new JarURLLoader(this, newUrl); loader = new JarURLLoader(this, newUrl);
else if ("file".equals(protocol)) else if ("file".equals(protocol))
loader = new FileURLLoader(this, newUrl); loader = new FileURLLoader(this, newUrl);
else else
loader = new RemoteURLLoader(this, newUrl); loader = new RemoteURLLoader(this, newUrl);
// Cache it. // Cache it.
urlloaders.put(newUrl, loader); urlloaders.put(newUrl, loader);
} }
urls.add(newUrl); urls.add(newUrl);
urlinfos.add(loader); urlinfos.add(loader);
} }
} }
...@@ -849,8 +851,8 @@ public class URLClassLoader extends SecureClassLoader ...@@ -849,8 +851,8 @@ public class URLClassLoader extends SecureClassLoader
// construct the class (and watch out for those nasty IOExceptions) // construct the class (and watch out for those nasty IOExceptions)
try try
{ {
byte[] data; byte[] data;
InputStream in = resource.getInputStream(); InputStream in = resource.getInputStream();
int length = resource.getLength(); int length = resource.getLength();
if (length != -1) if (length != -1)
{ {
...@@ -881,50 +883,50 @@ public class URLClassLoader extends SecureClassLoader ...@@ -881,50 +883,50 @@ public class URLClassLoader extends SecureClassLoader
out.write(b, 0, l); out.write(b, 0, l);
} }
data = out.toByteArray(); data = out.toByteArray();
} }
final byte[] classData = data; final byte[] classData = data;
// Now get the CodeSource // Now get the CodeSource
final CodeSource source = resource.getCodeSource(); final CodeSource source = resource.getCodeSource();
// Find out package name // Find out package name
String packageName = null; String packageName = null;
int lastDot = className.lastIndexOf('.'); int lastDot = className.lastIndexOf('.');
if (lastDot != -1) if (lastDot != -1)
packageName = className.substring(0, lastDot); packageName = className.substring(0, lastDot);
if (packageName != null && getPackage(packageName) == null) if (packageName != null && getPackage(packageName) == null)
{ {
// define the package // define the package
Manifest manifest = resource.loader.getManifest(); Manifest manifest = resource.loader.getManifest();
if (manifest == null) if (manifest == null)
definePackage(packageName, null, null, null, null, null, null, definePackage(packageName, null, null, null, null, null, null,
null); null);
else else
definePackage(packageName, manifest, resource.loader.baseURL); definePackage(packageName, manifest, resource.loader.baseURL);
} }
// And finally construct the class! // And finally construct the class!
SecurityManager sm = System.getSecurityManager(); SecurityManager sm = System.getSecurityManager();
if (sm != null && securityContext != null) if (sm != null && securityContext != null)
{ {
return (Class)AccessController.doPrivileged return (Class)AccessController.doPrivileged
(new PrivilegedAction() (new PrivilegedAction()
{ {
public Object run() public Object run()
{ {
return defineClass(className, classData, return defineClass(className, classData,
0, classData.length, 0, classData.length,
source); source);
} }
}, securityContext); }, securityContext);
} }
else else
return defineClass(className, classData, 0, classData.length, source); return defineClass(className, classData, 0, classData.length, source);
} }
catch (IOException ioe) catch (IOException ioe)
{ {
throw new ClassNotFoundException(className, ioe); throw new ClassNotFoundException(className, ioe);
} }
} }
...@@ -940,13 +942,13 @@ public class URLClassLoader extends SecureClassLoader ...@@ -940,13 +942,13 @@ public class URLClassLoader extends SecureClassLoader
int max = urls.size(); int max = urls.size();
for (int i = 0; i < max; i++) for (int i = 0; i < max; i++)
{ {
URLLoader loader = (URLLoader) urlinfos.elementAt(i); URLLoader loader = (URLLoader) urlinfos.elementAt(i);
if (loader == null) if (loader == null)
continue; continue;
Resource resource = loader.getResource(resourceName); Resource resource = loader.getResource(resourceName);
if (resource != null) if (resource != null)
return resource; return resource;
} }
return null; return null;
} }
...@@ -982,15 +984,15 @@ public class URLClassLoader extends SecureClassLoader ...@@ -982,15 +984,15 @@ public class URLClassLoader extends SecureClassLoader
URLStreamHandler handler; URLStreamHandler handler;
synchronized (factoryCache) synchronized (factoryCache)
{ {
// Check if there're handler for the same protocol in cache. // Check if there're handler for the same protocol in cache.
HashMap cache = (HashMap) factoryCache.get(factory); HashMap cache = (HashMap) factoryCache.get(factory);
handler = (URLStreamHandler) cache.get(protocol); handler = (URLStreamHandler) cache.get(protocol);
if (handler == null) if (handler == null)
{ {
// Add it to cache. // Add it to cache.
handler = factory.createURLStreamHandler(protocol); handler = factory.createURLStreamHandler(protocol);
cache.put(protocol, handler); cache.put(protocol, handler);
} }
} }
return handler; return handler;
} }
...@@ -1011,10 +1013,10 @@ public class URLClassLoader extends SecureClassLoader ...@@ -1011,10 +1013,10 @@ public class URLClassLoader extends SecureClassLoader
int max = urls.size(); int max = urls.size();
for (int i = 0; i < max; i++) for (int i = 0; i < max; i++)
{ {
URLLoader loader = (URLLoader) urlinfos.elementAt(i); URLLoader loader = (URLLoader) urlinfos.elementAt(i);
Resource resource = loader.getResource(resourceName); Resource resource = loader.getResource(resourceName);
if (resource != null) if (resource != null)
resources.add(resource.getURL()); resources.add(resource.getURL());
} }
return resources.elements(); return resources.elements();
} }
...@@ -1051,28 +1053,28 @@ public class URLClassLoader extends SecureClassLoader ...@@ -1051,28 +1053,28 @@ public class URLClassLoader extends SecureClassLoader
String protocol = url.getProtocol(); String protocol = url.getProtocol();
if (protocol.equals("file")) if (protocol.equals("file"))
{ {
String file = url.getFile(); String file = url.getFile();
// If the file end in / it must be an directory. // If the file end in / it must be an directory.
if (file.endsWith("/") || file.endsWith(File.separator)) if (file.endsWith("/") || file.endsWith(File.separator))
{ {
// Grant permission to read everything in that directory and // Grant permission to read everything in that directory and
// all subdirectories. // all subdirectories.
permissions.add(new FilePermission(file + "-", "read")); permissions.add(new FilePermission(file + "-", "read"));
} }
else else
{ {
// It is a 'normal' file. // It is a 'normal' file.
// Grant permission to access that file. // Grant permission to access that file.
permissions.add(new FilePermission(file, "read")); permissions.add(new FilePermission(file, "read"));
} }
} }
else else
{ {
// Grant permission to connect to and accept connections from host // Grant permission to connect to and accept connections from host
String host = url.getHost(); String host = url.getHost();
if (host != null) if (host != null)
permissions.add(new SocketPermission(host, "connect,accept")); permissions.add(new SocketPermission(host, "connect,accept"));
} }
return permissions; return permissions;
...@@ -1130,24 +1132,24 @@ public class URLClassLoader extends SecureClassLoader ...@@ -1130,24 +1132,24 @@ public class URLClassLoader extends SecureClassLoader
return new URLClassLoader(urls, parent); return new URLClassLoader(urls, parent);
else else
{ {
final Object securityContext = sm.getSecurityContext(); final Object securityContext = sm.getSecurityContext();
// XXX - What to do with anything else then an AccessControlContext? // XXX - What to do with anything else then an AccessControlContext?
if (! (securityContext instanceof AccessControlContext)) if (! (securityContext instanceof AccessControlContext))
throw new SecurityException("securityContext must be AccessControlContext: " throw new SecurityException("securityContext must be AccessControlContext: "
+ securityContext); + securityContext);
URLClassLoader loader = URLClassLoader loader =
(URLClassLoader) AccessController.doPrivileged(new PrivilegedAction() (URLClassLoader) AccessController.doPrivileged(new PrivilegedAction()
{ {
public Object run() public Object run()
{ {
return new URLClassLoader(parent, return new URLClassLoader(parent,
(AccessControlContext) securityContext); (AccessControlContext) securityContext);
} }
}); });
loader.addURLs(urls); loader.addURLs(urls);
return loader; return loader;
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment