On Wed, 27 Jul 2022 11:22:09 GMT, Prasanta Sadhukhan <[email protected]> 
wrote:

>> If ProgressMonitor has to show progress for reading file > 2GB, it goes to 
>> 100% and then again start from 0. 
>> This is because
>> it uses "int" to store bytes read (`nread`) and when it reads data from 
>> file, it adds 
>> "number-bytes-to-read "nr" to number-bytes-already-read "nread" variable 
>> [`nread += nr`] which can cause it to overflow and so "nread" becomes -ve.
>> 
>> Fix is to check if adding bytes-to-read to number-bytes-already-read will 
>> exceed MAX_INT, then set Progress to max so that ProgressMonitor can close 
>> the tracker 
>> https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/javax/swing/ProgressMonitor.java#L265
>> 
>> No regression test is added as it involves using filesize of >2GB.
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Fix

Changes requested by prr (Reviewer).

src/java.desktop/share/classes/javax/swing/ProgressMonitorInputStream.java line 
93:

> 91:         }
> 92:         parentComponent = parentComponent;
> 93:         message = message;

These are both wrong I am sure. You want to assign to this.<var> don't you ? 
Not update the local var.

-------------

PR: https://git.openjdk.org/jdk/pull/9588

Reply via email to