test_class.file: rxjava/src/test/java/io/reactivex/internal/schedulers/InstantPeriodicTaskTest.java
test_class.identifier: InstantPeriodicTaskTest
test_case.body: @Test
      public void taskCrash() throws Exception {
          ExecutorService exec = Executors.newSingleThreadExecutor();
          List<Throwable> errors = TestHelper.trackPluginErrors();
          try {
  
              InstantPeriodicTask task = new InstantPeriodicTask(new Runnable() {
                  @Override
                  public void run() {
                      throw new TestException();
                  }
              }, exec);
  
              assertNull(task.call());
  
              TestHelper.assertUndeliverable(errors, 0, TestException.class);
          } finally {
              exec.shutdownNow();
              RxJavaPlugins.reset();
          }
      }
test_case.class_method_signature: InstantPeriodicTaskTest.taskCrash()
test_case.full_signature: @Test public void taskCrash()
test_case.identifier: taskCrash
test_case.invocations: newSingleThreadExecutor trackPluginErrors assertNull call assertUndeliverable shutdownNow reset
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void taskCrash()
focal_class.declarator: task
focal_class.modifier: final
focal_class.original_string: final Runnable task;
focal_class.type: Runnable
focal_class.var_name: task
focal_class.declarator: rest
focal_class.modifier: final
focal_class.original_string: final AtomicReference<Future<?>> rest;
focal_class.type: AtomicReference<Future<?>>
focal_class.var_name: rest
focal_class.declarator: first
focal_class.modifier: final
focal_class.original_string: final AtomicReference<Future<?>> first;
focal_class.type: AtomicReference<Future<?>>
focal_class.var_name: first
focal_class.declarator: executor
focal_class.modifier: final
focal_class.original_string: final ExecutorService executor;
focal_class.type: ExecutorService
focal_class.var_name: executor
focal_class.declarator: runner
focal_class.original_string: Thread runner;
focal_class.type: Thread
focal_class.var_name: runner
focal_class.declarator: CANCELLED = new FutureTask<Void>(Functions.EMPTY_RUNNABLE, null)
focal_class.modifier: static final
focal_class.original_string: static final FutureTask<Void> CANCELLED = new FutureTask<Void>(Functions.EMPTY_RUNNABLE, null);
focal_class.type: FutureTask<Void>
focal_class.var_name: CANCELLED
focal_class.file: rxjava/src/main/java/io/reactivex/internal/schedulers/InstantPeriodicTask.java
focal_class.identifier: InstantPeriodicTask
focal_class.interfaces: implements Callable<Void>, Disposable
focal_class.class_method_signature: InstantPeriodicTask.InstantPeriodicTask(Runnable task, ExecutorService executor)
focal_class.full_signature:   InstantPeriodicTask(Runnable task, ExecutorService executor)
focal_class.identifier: InstantPeriodicTask
focal_class.parameters: (Runnable task, ExecutorService executor)
focal_class.signature:  InstantPeriodicTask(Runnable task, ExecutorService executor)
focal_class.class_method_signature: InstantPeriodicTask.call()
focal_class.full_signature: @Override public Void call()
focal_class.identifier: call
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Void
focal_class.signature: Void call()
focal_class.class_method_signature: InstantPeriodicTask.dispose()
focal_class.full_signature: @Override public void dispose()
focal_class.identifier: dispose
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void dispose()
focal_class.class_method_signature: InstantPeriodicTask.isDisposed()
focal_class.full_signature: @Override public boolean isDisposed()
focal_class.identifier: isDisposed
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isDisposed()
focal_class.class_method_signature: InstantPeriodicTask.setFirst(Future<?> f)
focal_class.full_signature:  void setFirst(Future<?> f)
focal_class.identifier: setFirst
focal_class.parameters: (Future<?> f)
focal_class.return: void
focal_class.signature: void setFirst(Future<?> f)
focal_class.class_method_signature: InstantPeriodicTask.setRest(Future<?> f)
focal_class.full_signature:  void setRest(Future<?> f)
focal_class.identifier: setRest
focal_class.parameters: (Future<?> f)
focal_class.return: void
focal_class.signature: void setRest(Future<?> f)
focal_method.body: @Override
      public Void call() throws Exception {
          runner = Thread.currentThread();
          try {
              task.run();
              setRest(executor.submit(this));
              runner = null;
          } catch (Throwable ex) {
              runner = null;
              RxJavaPlugins.onError(ex);
          }
          return null;
      }
focal_method.class_method_signature: InstantPeriodicTask.call()
focal_method.full_signature: @Override public Void call()
focal_method.identifier: call
focal_method.invocations: currentThread run setRest submit onError
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: Void
focal_method.signature: Void call()