On 08/05/2020 17:34, Daniel Fuchs wrote:
Hi Alex,

On 08/05/2020 15:35, Alex Kashchenko wrote:
On 05/06/2020 01:11 PM, Michael McMahon wrote:
Hi,

Yes, we've had some discussion about it internally, and while others may yet have an opinion, I think this approach is a reasonable one, with a spec change
that captures the behavior.

I've created a CSR for this issue listing the "return null" variant above and "disable cache" as alternatives:

https://bugs.openjdk.java.net/browse/JDK-8244650

The wording for getJarFile() specification currently doesn't specify what happens, when entry doesn't exist. If it is better to change this wording - I would appreciate a guidance on that.

I believe some sort of spec change will be needed, if only to justify
challenging the JCK. Currently, the proposed change trips the following
test:

TestCase: [JarURLConnectionT216] FAIL->getManifest() did not throw expected IOException for jar:file:/JCK-runtime-15/tests/api/java_net/JarURLConnection//jardir/T11.jar!/NOJARENTRY.class

best regards,

-- daniel

I agree. Even though the @throws appears to say an IOException is only thrown

if the connection to the JAR file fails, I think we should make it more explicit.

Something like:

diff -r 55e9cb6b23ec src/java.base/share/classes/java/net/JarURLConnection.java --- a/src/java.base/share/classes/java/net/JarURLConnection.java Thu May 07 10:54:18 2020 -0400 +++ b/src/java.base/share/classes/java/net/JarURLConnection.java Fri May 08 18:36:06 2020 +0100
@@ -215,7 +215,8 @@
      *
      * @return the JAR file for this connection. If the connection is
      * a connection to an entry of a JAR file, the JAR file object is
-     * returned
+     * returned. The JAR file is also returned if the connection to
+     * an entry fails, but the JAR file itself is accessible.
      *
      * @throws    IOException if an IOException occurs while trying to
      * connect to the JAR file for this connection.


- Michael

Reply via email to