mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8215008: Clear confusion between URL/URI paths and file system paths
Reviewed-by: alanb, chegar, martin
This commit is contained in:
parent
4de59847eb
commit
019a097385
2 changed files with 46 additions and 0 deletions
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
package java.net;
|
package java.net;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InvalidObjectException;
|
import java.io.InvalidObjectException;
|
||||||
import java.io.ObjectInputStream;
|
import java.io.ObjectInputStream;
|
||||||
|
@ -36,6 +37,7 @@ import java.nio.charset.CharsetDecoder;
|
||||||
import java.nio.charset.CoderResult;
|
import java.nio.charset.CoderResult;
|
||||||
import java.nio.charset.CodingErrorAction;
|
import java.nio.charset.CodingErrorAction;
|
||||||
import java.nio.charset.CharacterCodingException;
|
import java.nio.charset.CharacterCodingException;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.text.Normalizer;
|
import java.text.Normalizer;
|
||||||
import jdk.internal.access.JavaNetUriAccess;
|
import jdk.internal.access.JavaNetUriAccess;
|
||||||
import jdk.internal.access.SharedSecrets;
|
import jdk.internal.access.SharedSecrets;
|
||||||
|
@ -458,6 +460,27 @@ import java.lang.NullPointerException; // for javadoc
|
||||||
* resolution as well as the network I/O operations of looking up the host and
|
* resolution as well as the network I/O operations of looking up the host and
|
||||||
* opening a connection to the specified resource.
|
* opening a connection to the specified resource.
|
||||||
*
|
*
|
||||||
|
* @apiNote
|
||||||
|
*
|
||||||
|
* Applications working with file paths and file URIs should take great
|
||||||
|
* care to use the appropriate methods to convert between the two.
|
||||||
|
* The {@link Path#of(URI)} factory method and the {@link File#File(URI)}
|
||||||
|
* constructor can be used to create {@link Path} or {@link File}
|
||||||
|
* objects from a file URI. {@link Path#toUri()} and {@link File#toURI()}
|
||||||
|
* can be used to create a {@link URI} from a file path.
|
||||||
|
* Applications should never try to {@linkplain
|
||||||
|
* #URI(String, String, String, int, String, String, String)
|
||||||
|
* construct}, {@linkplain #URI(String) parse}, or
|
||||||
|
* {@linkplain #resolve(String) resolve} a {@code URI}
|
||||||
|
* from the direct string representation of a {@code File} or {@code Path}
|
||||||
|
* instance.
|
||||||
|
* <p>
|
||||||
|
* Some components of a URL or URI, such as <i>userinfo</i>, may
|
||||||
|
* be abused to construct misleading URLs or URIs. Applications
|
||||||
|
* that deal with URLs or URIs should take into account
|
||||||
|
* the recommendations advised in <a
|
||||||
|
* href="https://tools.ietf.org/html/rfc3986#section-7">RFC3986,
|
||||||
|
* Section 7, Security Considerations</a>.
|
||||||
*
|
*
|
||||||
* @author Mark Reinhold
|
* @author Mark Reinhold
|
||||||
* @since 1.4
|
* @since 1.4
|
||||||
|
|
|
@ -25,9 +25,11 @@
|
||||||
|
|
||||||
package java.net;
|
package java.net;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.spi.URLStreamHandlerProvider;
|
import java.net.spi.URLStreamHandlerProvider;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.security.AccessController;
|
import java.security.AccessController;
|
||||||
import java.security.PrivilegedAction;
|
import java.security.PrivilegedAction;
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
|
@ -145,6 +147,27 @@ import sun.security.action.GetPropertyAction;
|
||||||
* used, but only for HTML form encoding, which is not the same
|
* used, but only for HTML form encoding, which is not the same
|
||||||
* as the encoding scheme defined in RFC2396.
|
* as the encoding scheme defined in RFC2396.
|
||||||
*
|
*
|
||||||
|
* @apiNote
|
||||||
|
*
|
||||||
|
* Applications working with file paths and file URIs should take great
|
||||||
|
* care to use the appropriate methods to convert between the two.
|
||||||
|
* The {@link Path#of(URI)} factory method and the {@link File#File(URI)}
|
||||||
|
* constructor can be used to create {@link Path} or {@link File}
|
||||||
|
* objects from a file URI. {@link Path#toUri()} and {@link File#toURI()}
|
||||||
|
* can be used to create a {@link URI} from a file path, which can be
|
||||||
|
* converted to URL using {@link URI#toURL()}.
|
||||||
|
* Applications should never try to {@linkplain #URL(String, String, String)
|
||||||
|
* construct} or {@linkplain #URL(String) parse} a {@code URL}
|
||||||
|
* from the direct string representation of a {@code File} or {@code Path}
|
||||||
|
* instance.
|
||||||
|
* <p>
|
||||||
|
* Some components of a URL or URI, such as <i>userinfo</i>, may
|
||||||
|
* be abused to construct misleading URLs or URIs. Applications
|
||||||
|
* that deal with URLs or URIs should take into account
|
||||||
|
* the recommendations advised in <a
|
||||||
|
* href="https://tools.ietf.org/html/rfc3986#section-7">RFC3986,
|
||||||
|
* Section 7, Security Considerations</a>.
|
||||||
|
*
|
||||||
* @author James Gosling
|
* @author James Gosling
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue