Looks good.
-phil.
On 6/3/2014 11:42 AM, Joe Darcy wrote:
On 06/03/2014 11:34 AM, Phil Race wrote:
Both of these came in via an IBM contributed fix :-
http://mail.openjdk.java.net/pipermail/2d-dev/2011-October/002206.html
He [it appears] wanted to be very sure the throw was executed but it
seems
like it could just be moved after the finally block which might be
better
than suppressing the warning.
That approach would be fine with me. New webrev uploaded to
http://cr.openjdk.java.net/~darcy/8044694.1
Patch below.
Thanks,
-Joe
diff -r 6d4b3a9ca33d src/share/classes/sun/print/PSPrinterJob.java
--- a/src/share/classes/sun/print/PSPrinterJob.java Tue Jun 03
09:22:59 2014 -0700
+++ b/src/share/classes/sun/print/PSPrinterJob.java Tue Jun 03
11:41:38 2014 -0700
@@ -708,8 +708,8 @@
}
} finally {
pw.flush();
- throw new IOException(sw.toString());
}
+ throw new IOException(sw.toString());
}
}
diff -r 6d4b3a9ca33d src/solaris/classes/sun/print/UnixPrintJob.java
--- a/src/solaris/classes/sun/print/UnixPrintJob.java Tue Jun 03
09:22:59 2014 -0700
+++ b/src/solaris/classes/sun/print/UnixPrintJob.java Tue Jun 03
11:41:38 2014 -0700
@@ -992,8 +992,8 @@
}
} finally {
pw.flush();
- throw new IOException(sw.toString());
}
+ throw new IOException(sw.toString());
}
}
-phil.
On 6/3/2014 10:11 AM, Joe Darcy wrote:
Hello,
Please review a fix for
JDK-8044694: Fix finally lint warnings in sun.print
http://cr.openjdk.java.net/~darcy/8044694.0/
One of javac's lint warnings is for a finally block that cannot
complete normally. The printing code has two instances with a
finally block like
} finally {
pw.flush();
throw new IOException(sw.toString());
}
This cannot complete normally, since an exception is unconditionally
thrown, but it very much seems to be the intended behavior. The fix
is to add @SuppressWarnings("finally") annotations:
--- old/src/share/classes/sun/print/PSPrinterJob.java 2014-06-03
10:07:16.000000000 -0700
+++ new/src/share/classes/sun/print/PSPrinterJob.java 2014-06-03
10:07:16.000000000 -0700
@@ -687,6 +687,7 @@
// Inner class to run "privileged" to invoke the system print
command
+ @SuppressWarnings("finally") // Exception always thrown in
finally block
private class PrinterSpooler implements
java.security.PrivilegedAction {
PrinterException pex;
--- old/src/solaris/classes/sun/print/UnixPrintJob.java 2014-06-03
10:07:16.000000000 -0700
+++ new/src/solaris/classes/sun/print/UnixPrintJob.java 2014-06-03
10:07:16.000000000 -0700
@@ -971,6 +971,7 @@
// Inner class to run "privileged" to invoke the system print
command
+ @SuppressWarnings("finally") // Exception always thrown in
finally block
private class PrinterSpooler implements
java.security.PrivilegedAction {
PrintException pex;
Thanks,
-Joe