This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 180386
Collapse All | Expand All

(-)a/openide.util/src/org/openide/util/RequestProcessor.java (+35 lines)
Lines 49-55 Link Here
49
import java.util.Stack;
49
import java.util.Stack;
50
import java.util.Timer;
50
import java.util.Timer;
51
import java.util.TimerTask;
51
import java.util.TimerTask;
52
import java.util.concurrent.Callable;
52
import java.util.concurrent.Executor;
53
import java.util.concurrent.Executor;
54
import java.util.concurrent.Future;
55
import java.util.concurrent.FutureTask;
56
import java.util.concurrent.TimeUnit;
53
import java.util.logging.Level;
57
import java.util.logging.Level;
54
import java.util.logging.Logger;
58
import java.util.logging.Logger;
55
59
Lines 426-431 Link Here
426
        }
430
        }
427
    }
431
    }
428
432
433
    public <T> Future<T> submit (Callable<T> callable) {
434
        return submit (callable, 0, TimeUnit.MILLISECONDS);
435
    }
436
    
437
    public <T> Future<T> submit (Callable<T> callable, int milliseconds) {
438
        return submit (callable, milliseconds, TimeUnit.MILLISECONDS);
439
    }
440
441
    public <T> Future<T> submit (Callable<T> callable, long delay, TimeUnit timeUnit) {
442
        CF<T> cf = new CF<T>(callable);
443
        Task task = this.create(cf);
444
        cf.task = task;
445
        long actualDelay = timeUnit.convert(delay, TimeUnit.MILLISECONDS);
446
        if (actualDelay > Integer.MAX_VALUE || actualDelay < 0) {
447
            throw new IllegalArgumentException ("Illegal delay " + actualDelay);
448
        }
449
        task.schedule((int) actualDelay);
450
        return cf;
451
    }
452
453
    private static final class CF<T> extends FutureTask<T> {
454
        private Task task;
455
        CF(Callable<T> c) {
456
            super (c);
457
        }
458
459
        @Override
460
        public boolean cancel(boolean mayInterruptIfRunning) {
461
            return task.cancel() & super.cancel(mayInterruptIfRunning);
462
        }
463
    }
429
    //
464
    //
430
    // Static methods communicating with default request processor
465
    // Static methods communicating with default request processor
431
    //
466
    //

Return to bug 180386