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
