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.

-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

Reply via email to