test_class.file: agent/embedded/src/test/java/org/glowroot/agent/embedded/sql/SQLExceptionTest.java
test_class.identifier: SQLExceptionTest
test_case.body: @Test
      public void testCallSetNextExceptionMultipleTimesOnSameSQLException() {
          Throwable t1 = new Throwable();
          Throwable t2 = new Throwable();
          Throwable t3 = new Throwable();
          SQLException e1 = new SQLException(t1);
          SQLException e2 = new SQLException(t2);
          SQLException e3 = new SQLException(t3);
          e1.setNextException(e2);
          e1.setNextException(e3);
  
          List<Throwable> list = Lists.newArrayList(e1);
          assertThat(list.get(0)).isEqualTo(e1);
          assertThat(list.get(1)).isEqualTo(t1);
          assertThat(list.get(2)).isEqualTo(e2);
          assertThat(list.get(3)).isEqualTo(t2);
          assertThat(list.get(4)).isEqualTo(e3);
          assertThat(list.get(5)).isEqualTo(t3);
      }
test_case.class_method_signature: SQLExceptionTest.testCallSetNextExceptionMultipleTimesOnSameSQLException()
test_case.full_signature: @Test public void testCallSetNextExceptionMultipleTimesOnSameSQLException()
test_case.identifier: testCallSetNextExceptionMultipleTimesOnSameSQLException
test_case.invocations: setNextException setNextException newArrayList isEqualTo assertThat get isEqualTo assertThat get isEqualTo assertThat get isEqualTo assertThat get isEqualTo assertThat get isEqualTo assertThat get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCallSetNextExceptionMultipleTimesOnSameSQLException()
focal_class.declarator: sqlState
focal_class.modifier: private final @Nullable
focal_class.original_string: private final @Nullable String sqlState;
focal_class.type: String
focal_class.var_name: sqlState
focal_class.declarator: errorCode
focal_class.modifier: private final
focal_class.original_string: private final int errorCode;
focal_class.type: int
focal_class.var_name: errorCode
focal_class.declarator: next
focal_class.modifier: private volatile @Nullable
focal_class.original_string: private volatile @Nullable SQLException next;
focal_class.type: SQLException
focal_class.var_name: next
focal_class.file: agent/embedded/src/main/java/org/glowroot/agent/embedded/sql/SQLException.java
focal_class.identifier: SQLException
focal_class.interfaces: implements Iterable<Throwable>
focal_class.class_method_signature: SQLException.SQLException(String message, @Nullable String sqlState, int errorCode)
focal_class.full_signature: public  SQLException(String message, @Nullable String sqlState, int errorCode)
focal_class.identifier: SQLException
focal_class.modifiers: public
focal_class.parameters: (String message, @Nullable String sqlState, int errorCode)
focal_class.signature:  SQLException(String message, @Nullable String sqlState, int errorCode)
focal_class.class_method_signature: SQLException.SQLException(String message, @Nullable String sqlState)
focal_class.full_signature: public  SQLException(String message, @Nullable String sqlState)
focal_class.identifier: SQLException
focal_class.modifiers: public
focal_class.parameters: (String message, @Nullable String sqlState)
focal_class.signature:  SQLException(String message, @Nullable String sqlState)
focal_class.class_method_signature: SQLException.SQLException(String message)
focal_class.full_signature: public  SQLException(String message)
focal_class.identifier: SQLException
focal_class.modifiers: public
focal_class.parameters: (String message)
focal_class.signature:  SQLException(String message)
focal_class.class_method_signature: SQLException.SQLException()
focal_class.full_signature: public  SQLException()
focal_class.identifier: SQLException
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  SQLException()
focal_class.class_method_signature: SQLException.SQLException(@Nullable Throwable cause)
focal_class.full_signature: public  SQLException(@Nullable Throwable cause)
focal_class.identifier: SQLException
focal_class.modifiers: public
focal_class.parameters: (@Nullable Throwable cause)
focal_class.signature:  SQLException(@Nullable Throwable cause)
focal_class.class_method_signature: SQLException.SQLException(String message, @Nullable Throwable cause)
focal_class.full_signature: public  SQLException(String message, @Nullable Throwable cause)
focal_class.identifier: SQLException
focal_class.modifiers: public
focal_class.parameters: (String message, @Nullable Throwable cause)
focal_class.signature:  SQLException(String message, @Nullable Throwable cause)
focal_class.class_method_signature: SQLException.SQLException(String message, @Nullable String sqlState, @Nullable Throwable cause)
focal_class.full_signature: public  SQLException(String message, @Nullable String sqlState, @Nullable Throwable cause)
focal_class.identifier: SQLException
focal_class.modifiers: public
focal_class.parameters: (String message, @Nullable String sqlState, @Nullable Throwable cause)
focal_class.signature:  SQLException(String message, @Nullable String sqlState, @Nullable Throwable cause)
focal_class.class_method_signature: SQLException.SQLException(String message, @Nullable String sqlState, int errorCode,
              @Nullable Throwable cause)
focal_class.full_signature: public  SQLException(String message, @Nullable String sqlState, int errorCode,
              @Nullable Throwable cause)
focal_class.identifier: SQLException
focal_class.modifiers: public
focal_class.parameters: (String message, @Nullable String sqlState, int errorCode,
              @Nullable Throwable cause)
focal_class.signature:  SQLException(String message, @Nullable String sqlState, int errorCode,
              @Nullable Throwable cause)
focal_class.class_method_signature: SQLException.getSQLState()
focal_class.full_signature: public @Nullable String getSQLState()
focal_class.identifier: getSQLState
focal_class.modifiers: public @Nullable
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getSQLState()
focal_class.class_method_signature: SQLException.getErrorCode()
focal_class.full_signature: public int getErrorCode()
focal_class.identifier: getErrorCode
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getErrorCode()
focal_class.class_method_signature: SQLException.getNextException()
focal_class.full_signature: public @Nullable SQLException getNextException()
focal_class.identifier: getNextException
focal_class.modifiers: public @Nullable
focal_class.parameters: ()
focal_class.return: SQLException
focal_class.signature: SQLException getNextException()
focal_class.class_method_signature: SQLException.setNextException(SQLException exception)
focal_class.full_signature: public void setNextException(SQLException exception)
focal_class.identifier: setNextException
focal_class.modifiers: public
focal_class.parameters: (SQLException exception)
focal_class.return: void
focal_class.signature: void setNextException(SQLException exception)
focal_class.class_method_signature: SQLException.iterator()
focal_class.full_signature: @Override public Iterator<Throwable> iterator()
focal_class.identifier: iterator
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Iterator<Throwable>
focal_class.signature: Iterator<Throwable> iterator()
focal_class.superclass: extends Exception
focal_method.body: public void setNextException(SQLException exception) {
          SQLException curr = this;
          while (true) {
              SQLException next = curr.next;
              if (next == null) {
                  curr.next = exception;
                  return;
              }
              curr = next;
          }
      }
focal_method.class_method_signature: SQLException.setNextException(SQLException exception)
focal_method.full_signature: public void setNextException(SQLException exception)
focal_method.identifier: setNextException
focal_method.modifiers: public
focal_method.parameters: (SQLException exception)
focal_method.return: void
focal_method.signature: void setNextException(SQLException exception)