Announce a progress bar bug for file transfer

I found that when the file size is more than 2G bytes, the progress bar for file transfer would not work normally.

Fortunately, the bytes counter worked correctly.

Finally, I found the answer of this bug in the source code of Spark.

At line 185 in


and line 275


At line 235 in


and line 267


Because the maximum number of ‘int’ in java is only 2G-1, the progress bar will not work normally with larger than 2G bytes file transfered.

I think, here we should increase the progress in kilo-bytes, i.e. the source code should change to

At line 185 in

progressBar.setMaximum((int) (fileSize/1024) );

and line 275

progressBar.setValue((int) (transfer.getBytesSent()/1024) );

At line 235 in

progressBar.setMaximum((int) (request.getFileSize()/1024) );

and line 267

progressBar.setValue((int) (bytesRead/1024) );

Then, it will be OK for files with size of less than 1T bytes.

Additionally, I have a suggesstion.

It will be better that the string displayed in progress bar is as this format: bytes received(sent) @ transfer speed.

For example:

2.1M bytes received(sent) @ 200k/s.

When a large file is transferring, the bytes received(sent) number increases slowly at G bytes.

So, if speed is used, users will treat the transferring working normally, not stuck, isn’t it?

can you test revision: 12375

should work fine now

Oh, great!

Thanks a lot!

But, if the transfer speed could be displayed in the progress bar?

filed it as SPARK-1330

will be done soon