- Scheduler.add(new Task() { public void perform() throws IOException, JSExn {
- callback.call(N(bytesDownloaded),
- N(is instanceof KnownLength ? ((KnownLength)is).getLength() : 0), null, null, 2);
+ Scheduler.add(new Callable() {
+ public Object run(Object o) throws IOException, JSExn {
+ try {
+ int len = is instanceof KnownLength.KnownLengthInputStream ?
+ ((KnownLength.KnownLengthInputStream)is).getLength() : 0;
+ callargs[0] = JSU.N(bytesDownloaded);
+ callargs[1] = JSU.N(len);
+ callback.call(callargs);
+ } finally { callargs[0] = callargs[1] = null; }
+ return null;