Merged gcj-eclipse branch to trunk.

From-SVN: r120621
This commit is contained in:
Tom Tromey 2007-01-09 19:58:05 +00:00
parent c648dedbde
commit 97b8365caf
17478 changed files with 606493 additions and 100744 deletions

View file

@ -322,7 +322,8 @@ public final class URL implements Serializable
*/
public URL(String spec) throws MalformedURLException
{
this((URL) null, spec != null ? spec : "", (URLStreamHandler) null);
this((URL) null, spec != null ? spec : "", (URLStreamHandler) null,
false);
}
/**
@ -343,7 +344,9 @@ public final class URL implements Serializable
*/
public URL(URL context, String spec) throws MalformedURLException
{
this(context, spec, (context == null) ? (URLStreamHandler)null : context.ph);
this(context, spec,
(context == null) ? (URLStreamHandler) null : context.ph,
false);
}
/**
@ -376,6 +379,23 @@ public final class URL implements Serializable
*/
public URL(URL context, String spec, URLStreamHandler ph)
throws MalformedURLException
{
this(context, spec, ph, true);
}
/**
* Private constructor called by all other constructors taking
* a context and spec.
*
* @param context The context in which to parse the specification
* @param spec The string to parse as an URL
* @param ph The stream handler for the URL
* @param phFromUser Whether or not the user supplied the URLStreamHandler
*
*/
private URL(URL context, String spec, URLStreamHandler ph,
boolean phFromUser)
throws MalformedURLException
{
/* A protocol is defined by the doc as the substring before a ':'
* as long as the ':' occurs before any '/'.
@ -397,7 +417,11 @@ public final class URL implements Serializable
if ((colon = spec.indexOf("://", 1)) > 0
&& ((colon < slash || slash < 0))
&& ! spec.regionMatches(colon, "://:", 0, 4))
context = null;
{
context = null;
if (! phFromUser)
ph = null;
}
boolean protocolSpecified = false;
@ -458,7 +482,7 @@ public final class URL implements Serializable
if (ph != null)
{
SecurityManager s = System.getSecurityManager();
if (s != null)
if (s != null && phFromUser)
s.checkPermission(new NetPermission("specifyStreamHandler"));
this.ph = ph;