Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-09-08 Thread Jayathirth D V
Hi Brian,

 

Thanks for the review.

 

Regards,

Jay

 

From: Brian Burkhalter 
Sent: Friday, September 09, 2016 2:56 AM
To: Philip Race
Cc: Jayathirth D V; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

 

I perused it before and did not notice any problems. Provided all the tests 
still pass I am OK with it.

 

Brian

 

On Sep 8, 2016, at 1:46 PM, Philip Race mailto:philip.r...@oracle.com"philip.r...@oracle.com> wrote:





I wondered what happened to that comment.
I am OK with this so long as Brian is OK with the TIFF changes.

On 8/31/16, 11:55 PM, Jayathirth D V wrote:


@Brian : In case of TIFFImageReader, clearAbortRequest() was not called before 
every read operation, I have added the same. Also I have removed 
processImageProgress(0.0f) call which I feel is not needed as we have 
processImageStarted() which will take care of it(Also to maintain callbacks at 
same intervals as they are in other readers).

 


Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-09-08 Thread Philip Race

I wondered what happened to that comment.
I am OK with this so long as Brian is OK with the TIFF changes.

-phil.

On 8/31/16, 11:55 PM, Jayathirth D V wrote:

Hi Phil&  Brian,

Before this code change there was no check for abortRequested() right after 
processImagestarted() callback in GIFImageReader.java.
After code change we are checking for abortRequested() right after 
processImagestarted(). So after this call there is no need to verify for 
abortRequested() before processImageProgress() so I have moved the logic from 
while(abortRequested()) { ... } to do {...} while(abortRequested()). I have 
just removed redundant check for abortRequested().

Also as discussed offline I have made small change in JPEGImageReader.java to remove 
initialization of "boolean aborted" variable which is not used.
Also I noticed that previously I was overriding comment present in same file 
with new comment , I have corrected that mistake.
Please find updated webrev with the changes in JPEGImageReader.java:
http://cr.openjdk.java.net/~jdv/4924727/webrev.03/

@Brian : In case of TIFFImageReader, clearAbortRequest() was not called before 
every read operation, I have added the same. Also I have removed 
processImageProgress(0.0f) call which I feel is not needed as we have 
processImageStarted() which will take care of it(Also to maintain callbacks at 
same intervals as they are in other readers).

Thanks,
Jay

-Original Message-
From: Philip Race
Sent: Thursday, September 01, 2016 4:48 AM
To: Sergey Bylokhov
Cc: Jayathirth D V; 2d-dev; brian Burkhalter
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

I don't understand why the change from while() { .. } to do { .. }
while(..) was
needed in GIFImageReader but then I don't see any harm in it either.
Can you explain that one ?

Also I'd like Brian to sign off on the TIFF change.

Other than that all seems fine.

-phil.

On 8/31/16, 5:37 AM, Sergey Bylokhov wrote:

On 31.08.16 14:48, Jayathirth D V wrote:

Hi Sergey,

In case of JPEG whole read process is under a ThreadLock.
 public BufferedImage read(int imageIndex, ImageReadParam param)
 throws IOException {
 setThreadLock();
 try {
 cbLock.check();
 try {
 readInternal(imageIndex, param, false);

Then the fix looks fine.


By others processXXX() do you mean processXXX() in other plugins or
processXXX() in case of JPEG?
Please clarify.

I meant only the code related to jpeg.


Thanks,
Jay

-Original Message-
From: Sergey Bylokhov
Sent: Wednesday, August 31, 2016 4:22 PM
To: Jayathirth D V; Philip Race
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

I have only one question: should we call the new
clearNativeReadAbortFlag(and probably the others processXXX()) under
the ThreadLock?

On 31.08.16 13:07, Jayathirth D V wrote:

Hi Sergey,

Thanks for the clarification.
I have updated the test case to use Files.delete().
Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.02/

Regards,
Jay

-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:52 PM
To: Jayathirth D V
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

On 29.08.16 18:07, Jayathirth D V wrote:

Hi Sergey,

I am not getting the usage of Files.delete() from its
specification. Can you please elaborate what special case it will
handle in my test case?
I am creating temporary file separately for all the readers and
deleting them.

Files.delete() will throw an exception if the file cannot be
deleted, and File.delete() will return false in such case.

Also I am closing the ImageInputStream associated after read operation.

But plugin itself can leak some streams and lock a temporary file,
so
Files.delete() will catch this.



-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:25 PM
To: Jayathirth D V; Philip Race
Cc: Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

Hi, Jay.
Please delete the temporary file via Files.delete(), which will
throw an exception if the file is locked by some reader.

On 29.08.16 11:42, Jayathirth D V wrote:

Hi Phil&  Sergey,

Thanks for your inputs.

I have verified reader.abort() request for IIOReadProgressListener
for all available plugins.

Apart from PNG although all readers were able to abort read when
we call reader.abort() from IIOReadProgressListener callbacks,
they were not calling processReadAborted() right after
IIOReadProgressListener callbacks. So I have made changes for the
same.

And in some readers before every read call they were not calling
clearAbortRequest(), which is impor

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-09-01 Thread Jayathirth D V
Hi Phil & Brian,

Before this code change there was no check for abortRequested() right after 
processImagestarted() callback in GIFImageReader.java.
After code change we are checking for abortRequested() right after 
processImagestarted(). So after this call there is no need to verify for 
abortRequested() before processImageProgress() so I have moved the logic from 
while(abortRequested()) { ... } to do {...} while(abortRequested()). I have 
just removed redundant check for abortRequested().

Also as discussed offline I have made small change in JPEGImageReader.java to 
remove initialization of "boolean aborted" variable which is not used.
Also I noticed that previously I was overriding comment present in same file 
with new comment , I have corrected that mistake. 
Please find updated webrev with the changes in JPEGImageReader.java:
http://cr.openjdk.java.net/~jdv/4924727/webrev.03/ 

@Brian : In case of TIFFImageReader, clearAbortRequest() was not called before 
every read operation, I have added the same. Also I have removed 
processImageProgress(0.0f) call which I feel is not needed as we have 
processImageStarted() which will take care of it(Also to maintain callbacks at 
same intervals as they are in other readers).

Thanks,
Jay

-Original Message-
From: Philip Race 
Sent: Thursday, September 01, 2016 4:48 AM
To: Sergey Bylokhov
Cc: Jayathirth D V; 2d-dev; brian Burkhalter
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

I don't understand why the change from while() { .. } to do { .. }
while(..) was
needed in GIFImageReader but then I don't see any harm in it either.
Can you explain that one ?

Also I'd like Brian to sign off on the TIFF change.

Other than that all seems fine.

-phil.

On 8/31/16, 5:37 AM, Sergey Bylokhov wrote:
> On 31.08.16 14:48, Jayathirth D V wrote:
>> Hi Sergey,
>>
>> In case of JPEG whole read process is under a ThreadLock.
>> public BufferedImage read(int imageIndex, ImageReadParam param)
>> throws IOException {
>> setThreadLock();
>> try {
>> cbLock.check();
>> try {
>> readInternal(imageIndex, param, false);
>
> Then the fix looks fine.
>
>>
>> By others processXXX() do you mean processXXX() in other plugins or
>> processXXX() in case of JPEG?
>> Please clarify.
>
> I meant only the code related to jpeg.
>
>>
>> Thanks,
>> Jay
>>
>> -Original Message-----
>> From: Sergey Bylokhov
>> Sent: Wednesday, August 31, 2016 4:22 PM
>> To: Jayathirth D V; Philip Race
>> Cc: 2d-dev
>> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
>> method does not work when called inside imageStarted for PNG
>>
>> I have only one question: should we call the new 
>> clearNativeReadAbortFlag(and probably the others processXXX()) under 
>> the ThreadLock?
>>
>> On 31.08.16 13:07, Jayathirth D V wrote:
>>> Hi Sergey,
>>>
>>> Thanks for the clarification.
>>> I have updated the test case to use Files.delete().
>>> Please find updated webrev for review:
>>> http://cr.openjdk.java.net/~jdv/4924727/webrev.02/
>>>
>>> Regards,
>>> Jay
>>>
>>> -Original Message-
>>> From: Sergey Bylokhov
>>> Sent: Monday, August 29, 2016 8:52 PM
>>> To: Jayathirth D V
>>> Cc: 2d-dev
>>> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
>>> method does not work when called inside imageStarted for PNG
>>>
>>> On 29.08.16 18:07, Jayathirth D V wrote:
>>>> Hi Sergey,
>>>>
>>>> I am not getting the usage of Files.delete() from its 
>>>> specification. Can you please elaborate what special case it will 
>>>> handle in my test case?
>>>> I am creating temporary file separately for all the readers and 
>>>> deleting them.
>>>
>>> Files.delete() will throw an exception if the file cannot be 
>>> deleted, and File.delete() will return false in such case.
>>>
>>> Also I am closing the ImageInputStream associated after read operation.
>>>
>>> But plugin itself can leak some streams and lock a temporary file, 
>>> so
>>> Files.delete() will catch this.
>>>
>>>
>>>> -Original Message-
>>>> From: Sergey Bylokhov
>>>> Sent: Monday, August 29, 2016 8:25 PM
>>>> To: Jayathirth D V; Philip Race
>>>> Cc: Prasanta Sadhukhan; 2d-dev
>>>> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : read

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-31 Thread Philip Race
I don't understand why the change from while() { .. } to do { .. } 
while(..) was

needed in GIFImageReader but then I don't see any harm in it either.
Can you explain that one ?

Also I'd like Brian to sign off on the TIFF change.

Other than that all seems fine.

-phil.

On 8/31/16, 5:37 AM, Sergey Bylokhov wrote:

On 31.08.16 14:48, Jayathirth D V wrote:

Hi Sergey,

In case of JPEG whole read process is under a ThreadLock.
public BufferedImage read(int imageIndex, ImageReadParam param)
throws IOException {
setThreadLock();
try {
cbLock.check();
try {
readInternal(imageIndex, param, false);


Then the fix looks fine.



By others processXXX() do you mean processXXX() in other plugins or 
processXXX() in case of JPEG?

Please clarify.


I meant only the code related to jpeg.



Thanks,
Jay

-Original Message-
From: Sergey Bylokhov
Sent: Wednesday, August 31, 2016 4:22 PM
To: Jayathirth D V; Philip Race
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
method does not work when called inside imageStarted for PNG


I have only one question: should we call the new 
clearNativeReadAbortFlag(and probably the others processXXX()) under 
the ThreadLock?


On 31.08.16 13:07, Jayathirth D V wrote:

Hi Sergey,

Thanks for the clarification.
I have updated the test case to use Files.delete().
Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.02/

Regards,
Jay

-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:52 PM
To: Jayathirth D V
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

On 29.08.16 18:07, Jayathirth D V wrote:

Hi Sergey,

I am not getting the usage of Files.delete() from its 
specification. Can you please elaborate what special case it will 
handle in my test case?
I am creating temporary file separately for all the readers and 
deleting them.


Files.delete() will throw an exception if the file cannot be 
deleted, and File.delete() will return false in such case.


Also I am closing the ImageInputStream associated after read operation.

But plugin itself can leak some streams and lock a temporary file, so
Files.delete() will catch this.



-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:25 PM
To: Jayathirth D V; Philip Race
Cc: Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

Hi, Jay.
Please delete the temporary file via Files.delete(), which will 
throw an exception if the file is locked by some reader.


On 29.08.16 11:42, Jayathirth D V wrote:

Hi Phil & Sergey,

Thanks for your inputs.

I have verified reader.abort() request for IIOReadProgressListener 
for all available plugins.


Apart from PNG although all readers were able to abort read when 
we call reader.abort() from IIOReadProgressListener callbacks, 
they were not calling processReadAborted() right after 
IIOReadProgressListener callbacks. So I have made changes for the 
same.


And in some readers before every read call they were not calling 
clearAbortRequest(), which is important because if we use same 
reader for another read() call it will be invalid unless we clear 
previous abort request.


In case of JPEG since we are using native IJG library we need to 
update abortFlag present in imageioJPEG.c before every call as we 
are doing for other readers using clearAbortRequest().


Since this has native and make changes I have verified changes
through JPRT also which is successfully building on all platforms
(http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay. 


client_commit//JobStatus.txt )

Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.01/

I noticed that in case on WBMP I was not getting ImageReader 
object to call setInput() in test case to verify the behavior of 
reader.abort(). So I have created separate bug for the same 
(https://bugs.openjdk.java.net/browse/JDK-8164930 ). And in case 
of WBMP we already have clearAbortRequest() call and also we are 
returning from IIOReadProgressListener callbacks properly, only 
thing here is we are not returning right after callbacks as we 
have updated other plugins.


I want to verify writer plugins in separate bug as we already have 
lot of changes in this bug. So I have created 
https://bugs.openjdk.java.net/browse/JDK-8164931 and will be 
working on this bug.


Thanks,
Jay

-Original Message-
From: Phil Race
Sent: Thursday, August 18, 2016 1:42 AM
To: Sergey Bylokhov
Cc: Jayathirth D V; Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

I think we can
- get all plugins,and for each
- write a file in that format
- 

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-31 Thread Jayathirth D V
Thanks for the review Sergey.

-Original Message-
From: Sergey Bylokhov 
Sent: Wednesday, August 31, 2016 6:08 PM
To: Jayathirth D V
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

On 31.08.16 14:48, Jayathirth D V wrote:
> Hi Sergey,
>
> In case of JPEG whole read process is under a ThreadLock.
> public BufferedImage read(int imageIndex, ImageReadParam param)
> throws IOException {
> setThreadLock();
> try {
> cbLock.check();
> try {
> readInternal(imageIndex, param, false);

Then the fix looks fine.

>
> By others processXXX() do you mean processXXX() in other plugins or 
> processXXX() in case of JPEG?
> Please clarify.

I meant only the code related to jpeg.

>
> Thanks,
> Jay
>
> -Original Message-
> From: Sergey Bylokhov
> Sent: Wednesday, August 31, 2016 4:22 PM
> To: Jayathirth D V; Philip Race
> Cc: 2d-dev
> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
> method does not work when called inside imageStarted for PNG
>
> I have only one question: should we call the new clearNativeReadAbortFlag(and 
> probably the others processXXX()) under the ThreadLock?
>
> On 31.08.16 13:07, Jayathirth D V wrote:
>> Hi Sergey,
>>
>> Thanks for the clarification.
>> I have updated the test case to use Files.delete().
>> Please find updated webrev for review:
>> http://cr.openjdk.java.net/~jdv/4924727/webrev.02/
>>
>> Regards,
>> Jay
>>
>> -----Original Message-
>> From: Sergey Bylokhov
>> Sent: Monday, August 29, 2016 8:52 PM
>> To: Jayathirth D V
>> Cc: 2d-dev
>> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
>> method does not work when called inside imageStarted for PNG
>>
>> On 29.08.16 18:07, Jayathirth D V wrote:
>>> Hi Sergey,
>>>
>>> I am not getting the usage of Files.delete() from its specification. Can 
>>> you please elaborate what special case it will handle in my test case?
>>> I am creating temporary file separately for all the readers and deleting 
>>> them.
>>
>> Files.delete() will throw an exception if the file cannot be deleted, and 
>> File.delete() will return false in such case.
>>
>> Also I am closing the ImageInputStream associated after read operation.
>>
>> But plugin itself can leak some streams and lock a temporary file, so
>> Files.delete() will catch this.
>>
>>
>>> -Original Message-
>>> From: Sergey Bylokhov
>>> Sent: Monday, August 29, 2016 8:25 PM
>>> To: Jayathirth D V; Philip Race
>>> Cc: Prasanta Sadhukhan; 2d-dev
>>> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
>>> method does not work when called inside imageStarted for PNG
>>>
>>> Hi, Jay.
>>> Please delete the temporary file via Files.delete(), which will throw an 
>>> exception if the file is locked by some reader.
>>>
>>> On 29.08.16 11:42, Jayathirth D V wrote:
>>>> Hi Phil & Sergey,
>>>>
>>>> Thanks for your inputs.
>>>>
>>>> I have verified reader.abort() request for IIOReadProgressListener for all 
>>>> available plugins.
>>>>
>>>> Apart from PNG although all readers were able to abort read when we call 
>>>> reader.abort() from IIOReadProgressListener callbacks, they were not 
>>>> calling processReadAborted() right after IIOReadProgressListener 
>>>> callbacks. So I have made changes for the same.
>>>>
>>>> And in some readers before every read call they were not calling 
>>>> clearAbortRequest(), which is important because if we use same reader for 
>>>> another read() call it will be invalid unless we clear previous abort 
>>>> request.
>>>>
>>>> In case of JPEG since we are using native IJG library we need to update 
>>>> abortFlag present in imageioJPEG.c before every call as we are doing for 
>>>> other readers using clearAbortRequest().
>>>>
>>>> Since this has native and make changes I have verified changes 
>>>> through JPRT also which is successfully building on all platforms 
>>>> (http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay.
>>>> client_commit//JobStatus.txt )
>>>>
>>>> Please find updated webrev for review:
>>>> http://cr.openjdk.java.net/~jdv/4924727/we

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-31 Thread Sergey Bylokhov

On 31.08.16 14:48, Jayathirth D V wrote:

Hi Sergey,

In case of JPEG whole read process is under a ThreadLock.
public BufferedImage read(int imageIndex, ImageReadParam param)
throws IOException {
setThreadLock();
try {
cbLock.check();
try {
readInternal(imageIndex, param, false);


Then the fix looks fine.



By others processXXX() do you mean processXXX() in other plugins or 
processXXX() in case of JPEG?
Please clarify.


I meant only the code related to jpeg.



Thanks,
Jay

-Original Message-
From: Sergey Bylokhov
Sent: Wednesday, August 31, 2016 4:22 PM
To: Jayathirth D V; Philip Race
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

I have only one question: should we call the new clearNativeReadAbortFlag(and 
probably the others processXXX()) under the ThreadLock?

On 31.08.16 13:07, Jayathirth D V wrote:

Hi Sergey,

Thanks for the clarification.
I have updated the test case to use Files.delete().
Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.02/

Regards,
Jay

-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:52 PM
To: Jayathirth D V
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

On 29.08.16 18:07, Jayathirth D V wrote:

Hi Sergey,

I am not getting the usage of Files.delete() from its specification. Can you 
please elaborate what special case it will handle in my test case?
I am creating temporary file separately for all the readers and deleting them.


Files.delete() will throw an exception if the file cannot be deleted, and 
File.delete() will return false in such case.

Also I am closing the ImageInputStream associated after read operation.

But plugin itself can leak some streams and lock a temporary file, so
Files.delete() will catch this.



-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:25 PM
To: Jayathirth D V; Philip Race
Cc: Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

Hi, Jay.
Please delete the temporary file via Files.delete(), which will throw an 
exception if the file is locked by some reader.

On 29.08.16 11:42, Jayathirth D V wrote:

Hi Phil & Sergey,

Thanks for your inputs.

I have verified reader.abort() request for IIOReadProgressListener for all 
available plugins.

Apart from PNG although all readers were able to abort read when we call 
reader.abort() from IIOReadProgressListener callbacks, they were not calling 
processReadAborted() right after IIOReadProgressListener callbacks. So I have 
made changes for the same.

And in some readers before every read call they were not calling 
clearAbortRequest(), which is important because if we use same reader for 
another read() call it will be invalid unless we clear previous abort request.

In case of JPEG since we are using native IJG library we need to update 
abortFlag present in imageioJPEG.c before every call as we are doing for other 
readers using clearAbortRequest().

Since this has native and make changes I have verified changes
through JPRT also which is successfully building on all platforms
(http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay.
client_commit//JobStatus.txt )

Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.01/

I noticed that in case on WBMP I was not getting ImageReader object to call 
setInput() in test case to verify the behavior of reader.abort(). So I have 
created separate bug for the same 
(https://bugs.openjdk.java.net/browse/JDK-8164930 ). And in case of WBMP we 
already have clearAbortRequest() call and also we are returning from 
IIOReadProgressListener callbacks properly, only thing here is we are not 
returning right after callbacks as we have updated other plugins.

I want to verify writer plugins in separate bug as we already have lot of 
changes in this bug. So I have created 
https://bugs.openjdk.java.net/browse/JDK-8164931 and will be working on this 
bug.

Thanks,
Jay

-Original Message-
From: Phil Race
Sent: Thursday, August 18, 2016 1:42 AM
To: Sergey Bylokhov
Cc: Jayathirth D V; Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

I think we can
- get all plugins,and for each
- write a file in that format
- read it back and apply the test

It is also worth verifying that the writer abort checks are in sync with the 
reader aborts, ie happen at such equivalent points as might exist.

-phil.

On 08/15/2016 11:30 AM, Sergey Bylokhov wrote:

Is it possible to unify the test for all our plugins? I assume they
should work in the same way. I am not 

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-31 Thread Jayathirth D V
Hi Sergey,

In case of JPEG whole read process is under a ThreadLock.
public BufferedImage read(int imageIndex, ImageReadParam param)
throws IOException {
setThreadLock();
try {
cbLock.check();
try {
readInternal(imageIndex, param, false);

By others processXXX() do you mean processXXX() in other plugins or 
processXXX() in case of JPEG?
Please clarify.

Thanks,
Jay

-Original Message-
From: Sergey Bylokhov 
Sent: Wednesday, August 31, 2016 4:22 PM
To: Jayathirth D V; Philip Race
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

I have only one question: should we call the new clearNativeReadAbortFlag(and 
probably the others processXXX()) under the ThreadLock?

On 31.08.16 13:07, Jayathirth D V wrote:
> Hi Sergey,
>
> Thanks for the clarification.
> I have updated the test case to use Files.delete().
> Please find updated webrev for review:
> http://cr.openjdk.java.net/~jdv/4924727/webrev.02/
>
> Regards,
> Jay
>
> -Original Message-
> From: Sergey Bylokhov
> Sent: Monday, August 29, 2016 8:52 PM
> To: Jayathirth D V
> Cc: 2d-dev
> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
> method does not work when called inside imageStarted for PNG
>
> On 29.08.16 18:07, Jayathirth D V wrote:
>> Hi Sergey,
>>
>> I am not getting the usage of Files.delete() from its specification. Can you 
>> please elaborate what special case it will handle in my test case?
>> I am creating temporary file separately for all the readers and deleting 
>> them.
>
> Files.delete() will throw an exception if the file cannot be deleted, and 
> File.delete() will return false in such case.
>
> Also I am closing the ImageInputStream associated after read operation.
>
> But plugin itself can leak some streams and lock a temporary file, so
> Files.delete() will catch this.
>
>
>> -Original Message-
>> From: Sergey Bylokhov
>> Sent: Monday, August 29, 2016 8:25 PM
>> To: Jayathirth D V; Philip Race
>> Cc: Prasanta Sadhukhan; 2d-dev
>> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
>> method does not work when called inside imageStarted for PNG
>>
>> Hi, Jay.
>> Please delete the temporary file via Files.delete(), which will throw an 
>> exception if the file is locked by some reader.
>>
>> On 29.08.16 11:42, Jayathirth D V wrote:
>>> Hi Phil & Sergey,
>>>
>>> Thanks for your inputs.
>>>
>>> I have verified reader.abort() request for IIOReadProgressListener for all 
>>> available plugins.
>>>
>>> Apart from PNG although all readers were able to abort read when we call 
>>> reader.abort() from IIOReadProgressListener callbacks, they were not 
>>> calling processReadAborted() right after IIOReadProgressListener callbacks. 
>>> So I have made changes for the same.
>>>
>>> And in some readers before every read call they were not calling 
>>> clearAbortRequest(), which is important because if we use same reader for 
>>> another read() call it will be invalid unless we clear previous abort 
>>> request.
>>>
>>> In case of JPEG since we are using native IJG library we need to update 
>>> abortFlag present in imageioJPEG.c before every call as we are doing for 
>>> other readers using clearAbortRequest().
>>>
>>> Since this has native and make changes I have verified changes 
>>> through JPRT also which is successfully building on all platforms 
>>> (http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay.
>>> client_commit//JobStatus.txt )
>>>
>>> Please find updated webrev for review:
>>> http://cr.openjdk.java.net/~jdv/4924727/webrev.01/
>>>
>>> I noticed that in case on WBMP I was not getting ImageReader object to call 
>>> setInput() in test case to verify the behavior of reader.abort(). So I have 
>>> created separate bug for the same 
>>> (https://bugs.openjdk.java.net/browse/JDK-8164930 ). And in case of WBMP we 
>>> already have clearAbortRequest() call and also we are returning from 
>>> IIOReadProgressListener callbacks properly, only thing here is we are not 
>>> returning right after callbacks as we have updated other plugins.
>>>
>>> I want to verify writer plugins in separate bug as we already have lot of 
>>> changes in this bug. So I have created 
>>> https://bugs.openjdk.java.net/browse/JDK-8164931 and will be working on 
>>> this bug

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-31 Thread Sergey Bylokhov
I have only one question: should we call the new 
clearNativeReadAbortFlag(and probably the others processXXX()) under the 
ThreadLock?


On 31.08.16 13:07, Jayathirth D V wrote:

Hi Sergey,

Thanks for the clarification.
I have updated the test case to use Files.delete().
Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.02/

Regards,
Jay

-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:52 PM
To: Jayathirth D V
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

On 29.08.16 18:07, Jayathirth D V wrote:

Hi Sergey,

I am not getting the usage of Files.delete() from its specification. Can you 
please elaborate what special case it will handle in my test case?
I am creating temporary file separately for all the readers and deleting them.


Files.delete() will throw an exception if the file cannot be deleted, and 
File.delete() will return false in such case.

Also I am closing the ImageInputStream associated after read operation.

But plugin itself can leak some streams and lock a temporary file, so
Files.delete() will catch this.



-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:25 PM
To: Jayathirth D V; Philip Race
Cc: Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

Hi, Jay.
Please delete the temporary file via Files.delete(), which will throw an 
exception if the file is locked by some reader.

On 29.08.16 11:42, Jayathirth D V wrote:

Hi Phil & Sergey,

Thanks for your inputs.

I have verified reader.abort() request for IIOReadProgressListener for all 
available plugins.

Apart from PNG although all readers were able to abort read when we call 
reader.abort() from IIOReadProgressListener callbacks, they were not calling 
processReadAborted() right after IIOReadProgressListener callbacks. So I have 
made changes for the same.

And in some readers before every read call they were not calling 
clearAbortRequest(), which is important because if we use same reader for 
another read() call it will be invalid unless we clear previous abort request.

In case of JPEG since we are using native IJG library we need to update 
abortFlag present in imageioJPEG.c before every call as we are doing for other 
readers using clearAbortRequest().

Since this has native and make changes I have verified changes through
JPRT also which is successfully building on all platforms
(http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay.
client_commit//JobStatus.txt )

Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.01/

I noticed that in case on WBMP I was not getting ImageReader object to call 
setInput() in test case to verify the behavior of reader.abort(). So I have 
created separate bug for the same 
(https://bugs.openjdk.java.net/browse/JDK-8164930 ). And in case of WBMP we 
already have clearAbortRequest() call and also we are returning from 
IIOReadProgressListener callbacks properly, only thing here is we are not 
returning right after callbacks as we have updated other plugins.

I want to verify writer plugins in separate bug as we already have lot of 
changes in this bug. So I have created 
https://bugs.openjdk.java.net/browse/JDK-8164931 and will be working on this 
bug.

Thanks,
Jay

-Original Message-
From: Phil Race
Sent: Thursday, August 18, 2016 1:42 AM
To: Sergey Bylokhov
Cc: Jayathirth D V; Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

I think we can
- get all plugins,and for each
- write a file in that format
- read it back and apply the test

It is also worth verifying that the writer abort checks are in sync with the 
reader aborts, ie happen at such equivalent points as might exist.

-phil.

On 08/15/2016 11:30 AM, Sergey Bylokhov wrote:

Is it possible to unify the test for all our plugins? I assume they
should work in the same way. I am not sure but probably the image can
be generated at runtime?

On 11.08.16 21:59, Jayathirth D V wrote:

Hi,



Please review the following fix in JDK9 at your convenience:



Bug : https://bugs.openjdk.java.net/browse/JDK-4924727



Webrev : http://cr.openjdk.java.net/~jdv/4924727/webrev.00/



Issue : When we issue ImageReader.abort() in
IIOReadProgressListener.imageStarted(), reading is not aborted and
it is continued.



Root cause : After IIOReadProgressListener.imageStarted() call in
PNGImageReader.java when we enter decodeImage() we call
clearAbortRequest() which will clear the abort request from
IIOReadProgressListener.imageStarted().



Solution : clearAbortRequest() documentation mentions that it should
be called before reading of image starts, so it should be called
be

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-29 Thread Sergey Bylokhov

On 29.08.16 18:07, Jayathirth D V wrote:

Hi Sergey,

I am not getting the usage of Files.delete() from its specification. Can you 
please elaborate what special case it will handle in my test case?
I am creating temporary file separately for all the readers and deleting them.


Files.delete() will throw an exception if the file cannot be deleted, 
and File.delete() will return false in such case.


Also I am closing the ImageInputStream associated after read operation.

But plugin itself can leak some streams and lock a temporary file, so 
Files.delete() will catch this.




-Original Message-
From: Sergey Bylokhov
Sent: Monday, August 29, 2016 8:25 PM
To: Jayathirth D V; Philip Race
Cc: Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

Hi, Jay.
Please delete the temporary file via Files.delete(), which will throw an 
exception if the file is locked by some reader.

On 29.08.16 11:42, Jayathirth D V wrote:

Hi Phil & Sergey,

Thanks for your inputs.

I have verified reader.abort() request for IIOReadProgressListener for all 
available plugins.

Apart from PNG although all readers were able to abort read when we call 
reader.abort() from IIOReadProgressListener callbacks, they were not calling 
processReadAborted() right after IIOReadProgressListener callbacks. So I have 
made changes for the same.

And in some readers before every read call they were not calling 
clearAbortRequest(), which is important because if we use same reader for 
another read() call it will be invalid unless we clear previous abort request.

In case of JPEG since we are using native IJG library we need to update 
abortFlag present in imageioJPEG.c before every call as we are doing for other 
readers using clearAbortRequest().

Since this has native and make changes I have verified changes through
JPRT also which is successfully building on all platforms
(http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay.
client_commit//JobStatus.txt )

Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.01/

I noticed that in case on WBMP I was not getting ImageReader object to call 
setInput() in test case to verify the behavior of reader.abort(). So I have 
created separate bug for the same 
(https://bugs.openjdk.java.net/browse/JDK-8164930 ). And in case of WBMP we 
already have clearAbortRequest() call and also we are returning from 
IIOReadProgressListener callbacks properly, only thing here is we are not 
returning right after callbacks as we have updated other plugins.

I want to verify writer plugins in separate bug as we already have lot of 
changes in this bug. So I have created 
https://bugs.openjdk.java.net/browse/JDK-8164931 and will be working on this 
bug.

Thanks,
Jay

-Original Message-
From: Phil Race
Sent: Thursday, August 18, 2016 1:42 AM
To: Sergey Bylokhov
Cc: Jayathirth D V; Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort()
method does not work when called inside imageStarted for PNG

I think we can
- get all plugins,and for each
- write a file in that format
- read it back and apply the test

It is also worth verifying that the writer abort checks are in sync with the 
reader aborts, ie happen at such equivalent points as might exist.

-phil.

On 08/15/2016 11:30 AM, Sergey Bylokhov wrote:

Is it possible to unify the test for all our plugins? I assume they
should work in the same way. I am not sure but probably the image can
be generated at runtime?

On 11.08.16 21:59, Jayathirth D V wrote:

Hi,



Please review the following fix in JDK9 at your convenience:



Bug : https://bugs.openjdk.java.net/browse/JDK-4924727



Webrev : http://cr.openjdk.java.net/~jdv/4924727/webrev.00/



Issue : When we issue ImageReader.abort() in
IIOReadProgressListener.imageStarted(), reading is not aborted and
it is continued.



Root cause : After IIOReadProgressListener.imageStarted() call in
PNGImageReader.java when we enter decodeImage() we call
clearAbortRequest() which will clear the abort request from
IIOReadProgressListener.imageStarted().



Solution : clearAbortRequest() documentation mentions that it should
be called before reading of image starts, so it should be called
before IIOReadProgressListener.imageStarted()(In PNGImageReader.java
it is
processImageStarted(0) in readImage()). So moved clearAbortRequest()
call from decodeImage() to readImage(). Also we should call
abortRequested() in PNGImageReader.java at places mapping to
IIOReadProgressListener and not randomly at end of functions or at
places related to IIOReadUpdateListener, updated the code for the same.





Observation not related to this issue : We don't have call similar
to
IIOReadProgressListener.readAborted() in IIOReadUpdateListener, but
user can call ImageReader.abort() from IIOReadUpdateListener methods.
Is there a need to add similar me

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-29 Thread Jayathirth D V
Hi Sergey,

I am not getting the usage of Files.delete() from its specification. Can you 
please elaborate what special case it will handle in my test case?
I am creating temporary file separately for all the readers and deleting them. 
Also I am closing the ImageInputStream associated after read operation.
 
Thanks,
Jay

-Original Message-
From: Sergey Bylokhov 
Sent: Monday, August 29, 2016 8:25 PM
To: Jayathirth D V; Philip Race
Cc: Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

Hi, Jay.
Please delete the temporary file via Files.delete(), which will throw an 
exception if the file is locked by some reader.

On 29.08.16 11:42, Jayathirth D V wrote:
> Hi Phil & Sergey,
>
> Thanks for your inputs.
>
> I have verified reader.abort() request for IIOReadProgressListener for all 
> available plugins.
>
> Apart from PNG although all readers were able to abort read when we call 
> reader.abort() from IIOReadProgressListener callbacks, they were not calling 
> processReadAborted() right after IIOReadProgressListener callbacks. So I have 
> made changes for the same.
>
> And in some readers before every read call they were not calling 
> clearAbortRequest(), which is important because if we use same reader for 
> another read() call it will be invalid unless we clear previous abort request.
>
> In case of JPEG since we are using native IJG library we need to update 
> abortFlag present in imageioJPEG.c before every call as we are doing for 
> other readers using clearAbortRequest().
>
> Since this has native and make changes I have verified changes through 
> JPRT also which is successfully building on all platforms 
> (http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay.
> client_commit//JobStatus.txt )
>
> Please find updated webrev for review:
> http://cr.openjdk.java.net/~jdv/4924727/webrev.01/
>
> I noticed that in case on WBMP I was not getting ImageReader object to call 
> setInput() in test case to verify the behavior of reader.abort(). So I have 
> created separate bug for the same 
> (https://bugs.openjdk.java.net/browse/JDK-8164930 ). And in case of WBMP we 
> already have clearAbortRequest() call and also we are returning from 
> IIOReadProgressListener callbacks properly, only thing here is we are not 
> returning right after callbacks as we have updated other plugins.
>
> I want to verify writer plugins in separate bug as we already have lot of 
> changes in this bug. So I have created 
> https://bugs.openjdk.java.net/browse/JDK-8164931 and will be working on this 
> bug.
>
> Thanks,
> Jay
>
> -Original Message-
> From: Phil Race
> Sent: Thursday, August 18, 2016 1:42 AM
> To: Sergey Bylokhov
> Cc: Jayathirth D V; Prasanta Sadhukhan; 2d-dev
> Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() 
> method does not work when called inside imageStarted for PNG
>
> I think we can
> - get all plugins,and for each
> - write a file in that format
> - read it back and apply the test
>
> It is also worth verifying that the writer abort checks are in sync with the 
> reader aborts, ie happen at such equivalent points as might exist.
>
> -phil.
>
> On 08/15/2016 11:30 AM, Sergey Bylokhov wrote:
>> Is it possible to unify the test for all our plugins? I assume they 
>> should work in the same way. I am not sure but probably the image can 
>> be generated at runtime?
>>
>> On 11.08.16 21:59, Jayathirth D V wrote:
>>> Hi,
>>>
>>>
>>>
>>> Please review the following fix in JDK9 at your convenience:
>>>
>>>
>>>
>>> Bug : https://bugs.openjdk.java.net/browse/JDK-4924727
>>>
>>>
>>>
>>> Webrev : http://cr.openjdk.java.net/~jdv/4924727/webrev.00/
>>>
>>>
>>>
>>> Issue : When we issue ImageReader.abort() in 
>>> IIOReadProgressListener.imageStarted(), reading is not aborted and 
>>> it is continued.
>>>
>>>
>>>
>>> Root cause : After IIOReadProgressListener.imageStarted() call in 
>>> PNGImageReader.java when we enter decodeImage() we call
>>> clearAbortRequest() which will clear the abort request from 
>>> IIOReadProgressListener.imageStarted().
>>>
>>>
>>>
>>> Solution : clearAbortRequest() documentation mentions that it should 
>>> be called before reading of image starts, so it should be called 
>>> before IIOReadProgressListener.imageStarted()(In PNGImageReader.java 
>>> it is
>>> processImageStarted(0) in readImage()). So moved clearA

Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-29 Thread Sergey Bylokhov

Hi, Jay.
Please delete the temporary file via Files.delete(), which will throw an 
exception if the file is locked by some reader.


On 29.08.16 11:42, Jayathirth D V wrote:

Hi Phil & Sergey,

Thanks for your inputs.

I have verified reader.abort() request for IIOReadProgressListener for all 
available plugins.

Apart from PNG although all readers were able to abort read when we call 
reader.abort() from IIOReadProgressListener callbacks, they were not calling 
processReadAborted() right after IIOReadProgressListener callbacks. So I have 
made changes for the same.

And in some readers before every read call they were not calling 
clearAbortRequest(), which is important because if we use same reader for 
another read() call it will be invalid unless we clear previous abort request.

In case of JPEG since we are using native IJG library we need to update 
abortFlag present in imageioJPEG.c before every call as we are doing for other 
readers using clearAbortRequest().

Since this has native and make changes I have verified changes through JPRT 
also which is successfully building on all platforms 
(http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay.client_commit//JobStatus.txt
 )

Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.01/

I noticed that in case on WBMP I was not getting ImageReader object to call 
setInput() in test case to verify the behavior of reader.abort(). So I have 
created separate bug for the same 
(https://bugs.openjdk.java.net/browse/JDK-8164930 ). And in case of WBMP we 
already have clearAbortRequest() call and also we are returning from 
IIOReadProgressListener callbacks properly, only thing here is we are not 
returning right after callbacks as we have updated other plugins.

I want to verify writer plugins in separate bug as we already have lot of 
changes in this bug. So I have created 
https://bugs.openjdk.java.net/browse/JDK-8164931 and will be working on this 
bug.

Thanks,
Jay

-Original Message-
From: Phil Race
Sent: Thursday, August 18, 2016 1:42 AM
To: Sergey Bylokhov
Cc: Jayathirth D V; Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

I think we can
- get all plugins,and for each
- write a file in that format
- read it back and apply the test

It is also worth verifying that the writer abort checks are in sync with the 
reader aborts, ie happen at such equivalent points as might exist.

-phil.

On 08/15/2016 11:30 AM, Sergey Bylokhov wrote:

Is it possible to unify the test for all our plugins? I assume they
should work in the same way. I am not sure but probably the image can
be generated at runtime?

On 11.08.16 21:59, Jayathirth D V wrote:

Hi,



Please review the following fix in JDK9 at your convenience:



Bug : https://bugs.openjdk.java.net/browse/JDK-4924727



Webrev : http://cr.openjdk.java.net/~jdv/4924727/webrev.00/



Issue : When we issue ImageReader.abort() in
IIOReadProgressListener.imageStarted(), reading is not aborted and it
is continued.



Root cause : After IIOReadProgressListener.imageStarted() call in
PNGImageReader.java when we enter decodeImage() we call
clearAbortRequest() which will clear the abort request from
IIOReadProgressListener.imageStarted().



Solution : clearAbortRequest() documentation mentions that it should
be called before reading of image starts, so it should be called
before IIOReadProgressListener.imageStarted()(In PNGImageReader.java
it is
processImageStarted(0) in readImage()). So moved clearAbortRequest()
call from decodeImage() to readImage(). Also we should call
abortRequested() in PNGImageReader.java at places mapping to
IIOReadProgressListener and not randomly at end of functions or at
places related to IIOReadUpdateListener, updated the code for the same.





Observation not related to this issue : We don't have call similar to
IIOReadProgressListener.readAborted() in IIOReadUpdateListener, but
user can call ImageReader.abort() from IIOReadUpdateListener methods.
Is there a need to add similar method in IIOReadUpdateListener? Any
inputs on this also would be helpful.



Thanks,

Jay









--
Best regards, Sergey.


Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-29 Thread Jayathirth D V
Hi Phil & Sergey,

Thanks for your inputs.

I have verified reader.abort() request for IIOReadProgressListener for all 
available plugins.

Apart from PNG although all readers were able to abort read when we call 
reader.abort() from IIOReadProgressListener callbacks, they were not calling 
processReadAborted() right after IIOReadProgressListener callbacks. So I have 
made changes for the same.

And in some readers before every read call they were not calling 
clearAbortRequest(), which is important because if we use same reader for 
another read() call it will be invalid unless we clear previous abort request.

In case of JPEG since we are using native IJG library we need to update 
abortFlag present in imageioJPEG.c before every call as we are doing for other 
readers using clearAbortRequest().

Since this has native and make changes I have verified changes through JPRT 
also which is successfully building on all platforms 
(http://scaaa637.us.oracle.com//archive/2016/08/2016-08-29-065104.jay.client_commit//JobStatus.txt
 )

Please find updated webrev for review:
http://cr.openjdk.java.net/~jdv/4924727/webrev.01/ 

I noticed that in case on WBMP I was not getting ImageReader object to call 
setInput() in test case to verify the behavior of reader.abort(). So I have 
created separate bug for the same 
(https://bugs.openjdk.java.net/browse/JDK-8164930 ). And in case of WBMP we 
already have clearAbortRequest() call and also we are returning from 
IIOReadProgressListener callbacks properly, only thing here is we are not 
returning right after callbacks as we have updated other plugins. 

I want to verify writer plugins in separate bug as we already have lot of 
changes in this bug. So I have created 
https://bugs.openjdk.java.net/browse/JDK-8164931 and will be working on this 
bug.

Thanks,
Jay

-Original Message-
From: Phil Race 
Sent: Thursday, August 18, 2016 1:42 AM
To: Sergey Bylokhov
Cc: Jayathirth D V; Prasanta Sadhukhan; 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does 
not work when called inside imageStarted for PNG

I think we can
- get all plugins,and for each
- write a file in that format
- read it back and apply the test

It is also worth verifying that the writer abort checks are in sync with the 
reader aborts, ie happen at such equivalent points as might exist.

-phil.

On 08/15/2016 11:30 AM, Sergey Bylokhov wrote:
> Is it possible to unify the test for all our plugins? I assume they 
> should work in the same way. I am not sure but probably the image can 
> be generated at runtime?
>
> On 11.08.16 21:59, Jayathirth D V wrote:
>> Hi,
>>
>>
>>
>> Please review the following fix in JDK9 at your convenience:
>>
>>
>>
>> Bug : https://bugs.openjdk.java.net/browse/JDK-4924727
>>
>>
>>
>> Webrev : http://cr.openjdk.java.net/~jdv/4924727/webrev.00/
>>
>>
>>
>> Issue : When we issue ImageReader.abort() in 
>> IIOReadProgressListener.imageStarted(), reading is not aborted and it 
>> is continued.
>>
>>
>>
>> Root cause : After IIOReadProgressListener.imageStarted() call in 
>> PNGImageReader.java when we enter decodeImage() we call
>> clearAbortRequest() which will clear the abort request from 
>> IIOReadProgressListener.imageStarted().
>>
>>
>>
>> Solution : clearAbortRequest() documentation mentions that it should 
>> be called before reading of image starts, so it should be called 
>> before IIOReadProgressListener.imageStarted()(In PNGImageReader.java 
>> it is
>> processImageStarted(0) in readImage()). So moved clearAbortRequest() 
>> call from decodeImage() to readImage(). Also we should call
>> abortRequested() in PNGImageReader.java at places mapping to 
>> IIOReadProgressListener and not randomly at end of functions or at 
>> places related to IIOReadUpdateListener, updated the code for the same.
>>
>>
>>
>>
>>
>> Observation not related to this issue : We don't have call similar to
>> IIOReadProgressListener.readAborted() in IIOReadUpdateListener, but 
>> user can call ImageReader.abort() from IIOReadUpdateListener methods. 
>> Is there a need to add similar method in IIOReadUpdateListener? Any 
>> inputs on this also would be helpful.
>>
>>
>>
>> Thanks,
>>
>> Jay
>>
>
>



Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-17 Thread Phil Race

I think we can
- get all plugins,and for each
- write a file in that format
- read it back and apply the test

It is also worth verifying that the writer abort checks are in sync with 
the reader aborts,

ie happen at such equivalent points as might exist.

-phil.

On 08/15/2016 11:30 AM, Sergey Bylokhov wrote:
Is it possible to unify the test for all our plugins? I assume they 
should work in the same way. I am not sure but probably the image can 
be generated at runtime?


On 11.08.16 21:59, Jayathirth D V wrote:

Hi,



Please review the following fix in JDK9 at your convenience:



Bug : https://bugs.openjdk.java.net/browse/JDK-4924727



Webrev : http://cr.openjdk.java.net/~jdv/4924727/webrev.00/



Issue : When we issue ImageReader.abort() in
IIOReadProgressListener.imageStarted(), reading is not aborted and it is
continued.



Root cause : After IIOReadProgressListener.imageStarted() call in
PNGImageReader.java when we enter decodeImage() we call
clearAbortRequest() which will clear the abort request from
IIOReadProgressListener.imageStarted().



Solution : clearAbortRequest() documentation mentions that it should be
called before reading of image starts, so it should be called before
IIOReadProgressListener.imageStarted()(In PNGImageReader.java it is
processImageStarted(0) in readImage()). So moved clearAbortRequest()
call from decodeImage() to readImage(). Also we should call
abortRequested() in PNGImageReader.java at places mapping to
IIOReadProgressListener and not randomly at end of functions or at
places related to IIOReadUpdateListener, updated the code for the same.





Observation not related to this issue : We don’t have call similar to
IIOReadProgressListener.readAborted() in IIOReadUpdateListener, but user
can call ImageReader.abort() from IIOReadUpdateListener methods. Is
there a need to add similar method in IIOReadUpdateListener? Any inputs
on this also would be helpful.



Thanks,

Jay








Re: [OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-15 Thread Sergey Bylokhov
Is it possible to unify the test for all our plugins? I assume they 
should work in the same way. I am not sure but probably the image can be 
generated at runtime?


On 11.08.16 21:59, Jayathirth D V wrote:

Hi,



Please review the following fix in JDK9 at your convenience:



Bug : https://bugs.openjdk.java.net/browse/JDK-4924727



Webrev : http://cr.openjdk.java.net/~jdv/4924727/webrev.00/



Issue : When we issue ImageReader.abort() in
IIOReadProgressListener.imageStarted(), reading is not aborted and it is
continued.



Root cause : After IIOReadProgressListener.imageStarted() call in
PNGImageReader.java when we enter decodeImage() we call
clearAbortRequest() which will clear the abort request from
IIOReadProgressListener.imageStarted().



Solution : clearAbortRequest() documentation mentions that it should be
called before reading of image starts, so it should be called before
IIOReadProgressListener.imageStarted()(In PNGImageReader.java it is
processImageStarted(0) in readImage()). So moved clearAbortRequest()
call from decodeImage() to readImage(). Also we should call
abortRequested() in PNGImageReader.java at places mapping to
IIOReadProgressListener and not randomly at end of functions or at
places related to IIOReadUpdateListener, updated the code for the same.





Observation not related to this issue : We don’t have call similar to
IIOReadProgressListener.readAborted() in IIOReadUpdateListener, but user
can call ImageReader.abort() from IIOReadUpdateListener methods. Is
there a need to add similar method in IIOReadUpdateListener? Any inputs
on this also would be helpful.



Thanks,

Jay




--
Best regards, Sergey.


[OpenJDK 2D-Dev] [9] RFR JDK-4924727 : reader.abort() method does not work when called inside imageStarted for PNG

2016-08-11 Thread Jayathirth D V
Hi,

 

Please review the following fix in JDK9 at your convenience:

 

Bug : https://bugs.openjdk.java.net/browse/JDK-4924727 

 

Webrev : http://cr.openjdk.java.net/~jdv/4924727/webrev.00/ 

 

Issue : When we issue ImageReader.abort() in 
IIOReadProgressListener.imageStarted(), reading is not aborted and it is 
continued.

 

Root cause : After IIOReadProgressListener.imageStarted() call in 
PNGImageReader.java when we enter decodeImage() we call clearAbortRequest() 
which will clear the abort request from IIOReadProgressListener.imageStarted().

 

Solution : clearAbortRequest() documentation mentions that it should be called 
before reading of image starts, so it should be called before 
IIOReadProgressListener.imageStarted()(In PNGImageReader.java it is 
processImageStarted(0) in readImage()). So moved clearAbortRequest() call from 
decodeImage() to readImage(). Also we should call abortRequested() in 
PNGImageReader.java at places mapping to IIOReadProgressListener and not 
randomly at end of functions or at places related to IIOReadUpdateListener, 
updated the code for the same.

 

 

Observation not related to this issue : We don't have call similar to 
IIOReadProgressListener.readAborted() in IIOReadUpdateListener, but user can 
call ImageReader.abort() from IIOReadUpdateListener methods. Is there a need to 
add similar method in IIOReadUpdateListener? Any inputs on this also would be 
helpful.

 

Thanks,

Jay