[OpenJDK 2D-Dev] JDK 9 RFR of JDK-8044694: Fix finally lint warnings in sun.print

Phil Race philip.race at oracle.com
Tue Jun 3 18:49:46 UTC 2014


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
>>
>




More information about the 2d-dev mailing list