test_class.file: rxjava/src/test/java/io/reactivex/internal/util/ExceptionHelperTest.java
test_class.identifier: ExceptionHelperTest
test_case.body: @Test
      public void addRace() {
          for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
  
              final AtomicReference<Throwable> error = new AtomicReference<Throwable>();
  
              final TestException ex = new TestException();
  
              Runnable r = new Runnable() {
                  @Override
                  public void run() {
                      assertTrue(ExceptionHelper.addThrowable(error, ex));
                  }
              };
  
              TestHelper.race(r, r);
          }
      }
test_case.class_method_signature: ExceptionHelperTest.addRace()
test_case.full_signature: @Test public void addRace()
test_case.identifier: addRace
test_case.invocations: assertTrue addThrowable race
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void addRace()
focal_class.declarator: TERMINATED = new Termination()
focal_class.modifier: public static final
focal_class.original_string: public static final Throwable TERMINATED = new Termination();
focal_class.type: Throwable
focal_class.var_name: TERMINATED
focal_class.file: rxjava/src/main/java/io/reactivex/internal/util/ExceptionHelper.java
focal_class.identifier: ExceptionHelper
focal_class.class_method_signature: ExceptionHelper.ExceptionHelper()
focal_class.full_signature: private  ExceptionHelper()
focal_class.identifier: ExceptionHelper
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  ExceptionHelper()
focal_class.class_method_signature: ExceptionHelper.wrapOrThrow(Throwable error)
focal_class.full_signature: public static RuntimeException wrapOrThrow(Throwable error)
focal_class.identifier: wrapOrThrow
focal_class.modifiers: public static
focal_class.parameters: (Throwable error)
focal_class.return: RuntimeException
focal_class.signature: RuntimeException wrapOrThrow(Throwable error)
focal_class.class_method_signature: ExceptionHelper.addThrowable(AtomicReference<Throwable> field, Throwable exception)
focal_class.full_signature: public static boolean addThrowable(AtomicReference<Throwable> field, Throwable exception)
focal_class.identifier: addThrowable
focal_class.modifiers: public static
focal_class.parameters: (AtomicReference<Throwable> field, Throwable exception)
focal_class.return: boolean
focal_class.signature: boolean addThrowable(AtomicReference<Throwable> field, Throwable exception)
focal_class.class_method_signature: ExceptionHelper.terminate(AtomicReference<Throwable> field)
focal_class.full_signature: public static Throwable terminate(AtomicReference<Throwable> field)
focal_class.identifier: terminate
focal_class.modifiers: public static
focal_class.parameters: (AtomicReference<Throwable> field)
focal_class.return: Throwable
focal_class.signature: Throwable terminate(AtomicReference<Throwable> field)
focal_class.class_method_signature: ExceptionHelper.flatten(Throwable t)
focal_class.full_signature: public static List<Throwable> flatten(Throwable t)
focal_class.identifier: flatten
focal_class.modifiers: public static
focal_class.parameters: (Throwable t)
focal_class.return: List<Throwable>
focal_class.signature: List<Throwable> flatten(Throwable t)
focal_class.class_method_signature: ExceptionHelper.throwIfThrowable(Throwable e)
focal_class.full_signature: @SuppressWarnings("unchecked") public static Exception throwIfThrowable(Throwable e)
focal_class.identifier: throwIfThrowable
focal_class.modifiers: @SuppressWarnings("unchecked") public static
focal_class.parameters: (Throwable e)
focal_class.return: Exception
focal_class.signature: Exception throwIfThrowable(Throwable e)
focal_method.body: public static <T> boolean addThrowable(AtomicReference<Throwable> field, Throwable exception) {
          for (;;) {
              Throwable current = field.get();
  
              if (current == TERMINATED) {
                  return false;
              }
  
              Throwable update;
              if (current == null) {
                  update = exception;
              } else {
                  update = new CompositeException(current, exception);
              }
  
              if (field.compareAndSet(current, update)) {
                  return true;
              }
          }
      }
focal_method.class_method_signature: ExceptionHelper.addThrowable(AtomicReference<Throwable> field, Throwable exception)
focal_method.full_signature: public static boolean addThrowable(AtomicReference<Throwable> field, Throwable exception)
focal_method.identifier: addThrowable
focal_method.invocations: get compareAndSet
focal_method.modifiers: public static
focal_method.parameters: (AtomicReference<Throwable> field, Throwable exception)
focal_method.return: boolean
focal_method.signature: boolean addThrowable(AtomicReference<Throwable> field, Throwable exception)