[OpenJDK 2D-Dev] [9] RFR JDK-6218397:Printing to file does not throw a PrinterException if the file cannot be created

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Thu Jun 30 09:49:26 UTC 2016


Hi Jay,

Yes, we can do that.
Updated webrev:
http://cr.openjdk.java.net/~psadhukhan/6218397/webrev.05/

Regards
Prasanta
On 6/30/2016 3:09 PM, Jayathirth D V wrote:
>
> Hi Prasanta,
>
> I think we can use same abortDoc() functionality in “endDoc() -> 
> mPSStream.checkError()” case as it is used in startDoc().
>
> In abortDoc() we are closing mPSStream and deleting the spoolfile. 
> Otherwise it will be a redundant code.
>
> Like :
>
> if (mPSStream.checkError()) {
>
> abortDoc();
>
> throw new PrinterException("Error while writing to file");
>
> }
>
> Thanks,
>
> Jay
>
> *From:*Prasanta Sadhukhan
> *Sent:* Thursday, June 30, 2016 10:35 AM
> *To:* Philip Race; Jayathirth D V
> *Cc:* 2d-dev at openjdk.java.net
> *Subject:* Re: [OpenJDK 2D-Dev] [9] RFR JDK-6218397:Printing to file 
> does not throw a PrinterException if the file cannot be created
>
> Thanks Phil.
> @Jay, can you please review this updated webrev 
> http://cr.openjdk.java.net/~psadhukhan/6218397/webrev.04/ 
> <http://cr.openjdk.java.net/%7Epsadhukhan/6218397/webrev.04/>
> that takes care of this syntactic changes?
>
> Regards
> Prasanta
>
> On 6/29/2016 11:01 PM, Philip Race wrote:
>
>     if (f.exists()) f.delete();
>
>     should use { ... } for the body - 2 cases of this one in each
>
>     of the modified files.
>
>     Other than that OK. I don't need to see an updated webrev
>
>     so long as you make those syntactic changes.
>
>     -phil
>
>
>
>     On 6/23/16, 3:40 AM, Prasanta Sadhukhan wrote:
>
>         Hi Phil, All,
>
>         Based on the offline discussion, I added the case when disk
>         gets filled while writing to the file.
>         Since PrintStream does not throw IOException, I added check
>         for checkError() to do the corresponding error handling. I
>         added it after flush() as that is where the stream will be
>         written to the file.
>         http://cr.openjdk.java.net/~psadhukhan/6218397/webrev.03/
>         <http://cr.openjdk.java.net/%7Epsadhukhan/6218397/webrev.03/>
>
>         Regards
>         Prasanta
>
>         On 6/20/2016 12:01 PM, prasanta sadhukhan wrote:
>
>             Hi Phil,All,
>
>             Added file delete in another case where we throw
>             PrinterException.
>             http://cr.openjdk.java.net/~psadhukhan/6218397/webrev.02/
>             <http://cr.openjdk.java.net/%7Epsadhukhan/6218397/webrev.02/>
>
>             Regards
>             Prasanta
>
>             On 6/16/2016 1:40 PM, prasanta sadhukhan wrote:
>
>                 Modified webrev to close output stream.
>
>                 http://cr.openjdk.java.net/~psadhukhan/6218397/webrev.01/
>                 <http://cr.openjdk.java.net/%7Epsadhukhan/6218397/webrev.01/>
>
>                 Regards
>                 Prasanta
>
>                 On 6/15/2016 9:52 PM, Philip Race wrote:
>
>                     If this is executed on Windows (shared Postscript
>                     stream printer could do this)
>                     then since the output stream is still open I
>                     expect the delete will fail.
>                     Attempt to close the open stream first (in a try
>                     .. catch I suppose).
>
>                     -phil.
>
>                     On 6/15/16, 3:25 AM, prasanta sadhukhan wrote:
>
>                         Hi All,
>
>                         Bug:
>                         https://bugs.openjdk.java.net/browse/JDK-6218397
>
>                         The issue was if the linux disk is full and we
>                         are trying to "print to file" then
>                         PrinterException is not thrown and a 0 byte
>                         file is created.
>
>                         Although I am not able to reproduce this
>                         behaviour, because when I make my disk full
>                         and try to run "java", I get
>
>                         /Java HotSpot(TM) Server VM warning:
>                         Insufficient space for shared memory file:
>                            13783
>                         Try using the -Djava.io.tmpdir= option to
>                         select an alternate temp location./
>
>                         but on investigating this, I see that we are
>                         calling f.createNewFile() in
>                         RasterPrinterJob#validateDestination() which
>                         creates a new, empty file
>
>                         but if there is any exception in
>                         PSPrinterJob#startDoc this file is not deleted.
>
>                         Modified the code to make sure if there is any
>                         exception, delete the file.
>
>                         http://cr.openjdk.java.net/~psadhukhan/6218397/webrev.00/
>                         <http://cr.openjdk.java.net/%7Epsadhukhan/6218397/webrev.00/>
>
>                         Regards
>                         Prasanta
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20160630/b57634fd/attachment.html>


More information about the 2d-dev mailing list