test_class.declarator: thrown = ExpectedException.none()
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public ExpectedException thrown = ExpectedException.none();
test_class.type: ExpectedException
test_class.var_name: thrown
test_class.file: agent/plugin-api/src/test/java/org/glowroot/agent/plugin/api/util/ReflectionTest.java
test_class.identifier: ReflectionTest
test_case.body: @Test
      public void shouldReturnNullMethodWhenClassIsNull() {
          assertThat(Reflection.getMethod(null, null)).isNull();
      }
test_case.class_method_signature: ReflectionTest.shouldReturnNullMethodWhenClassIsNull()
test_case.full_signature: @Test public void shouldReturnNullMethodWhenClassIsNull()
test_case.identifier: shouldReturnNullMethodWhenClassIsNull
test_case.invocations: isNull assertThat getMethod
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldReturnNullMethodWhenClassIsNull()
focal_class.declarator: logger = Logger.getLogger(Reflection.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = Logger.getLogger(Reflection.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.file: agent/plugin-api/src/main/java/org/glowroot/agent/plugin/api/util/Reflection.java
focal_class.identifier: Reflection
focal_class.class_method_signature: Reflection.Reflection()
focal_class.full_signature: private  Reflection()
focal_class.identifier: Reflection
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Reflection()
focal_class.class_method_signature: Reflection.getClass(String name, @Nullable ClassLoader loader)
focal_class.full_signature: public static @Nullable Class<?> getClass(String name, @Nullable ClassLoader loader)
focal_class.identifier: getClass
focal_class.modifiers: public static @Nullable
focal_class.parameters: (String name, @Nullable ClassLoader loader)
focal_class.return: Class<?>
focal_class.signature: Class<?> getClass(String name, @Nullable ClassLoader loader)
focal_class.class_method_signature: Reflection.getClassWithWarnIfNotFound(String name,
              @Nullable ClassLoader loader)
focal_class.full_signature: public static @Nullable Class<?> getClassWithWarnIfNotFound(String name,
              @Nullable ClassLoader loader)
focal_class.identifier: getClassWithWarnIfNotFound
focal_class.modifiers: public static @Nullable
focal_class.parameters: (String name,
              @Nullable ClassLoader loader)
focal_class.return: Class<?>
focal_class.signature: Class<?> getClassWithWarnIfNotFound(String name,
              @Nullable ClassLoader loader)
focal_class.class_method_signature: Reflection.getMethod(@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes)
focal_class.full_signature: public static @Nullable Method getMethod(@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes)
focal_class.identifier: getMethod
focal_class.modifiers: public static @Nullable
focal_class.parameters: (@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes)
focal_class.return: Method
focal_class.signature: Method getMethod(@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes)
focal_class.class_method_signature: Reflection.getDeclaredField(@Nullable Class<?> clazz, String fieldName)
focal_class.full_signature: public static @Nullable Field getDeclaredField(@Nullable Class<?> clazz, String fieldName)
focal_class.identifier: getDeclaredField
focal_class.modifiers: public static @Nullable
focal_class.parameters: (@Nullable Class<?> clazz, String fieldName)
focal_class.return: Field
focal_class.signature: Field getDeclaredField(@Nullable Class<?> clazz, String fieldName)
focal_class.class_method_signature: Reflection.invoke(@Nullable Method method, Object obj,
              @Nullable Object... args)
focal_class.full_signature: @SuppressWarnings("unchecked") public static T invoke(@Nullable Method method, Object obj,
              @Nullable Object... args)
focal_class.identifier: invoke
focal_class.modifiers: @SuppressWarnings("unchecked") public static
focal_class.parameters: (@Nullable Method method, Object obj,
              @Nullable Object... args)
focal_class.return: T
focal_class.signature: T invoke(@Nullable Method method, Object obj,
              @Nullable Object... args)
focal_class.class_method_signature: Reflection.invokeWithDefault(@Nullable Method method, Object obj, T defaultValue,
              @Nullable Object... args)
focal_class.full_signature: @SuppressWarnings("unchecked") public static T invokeWithDefault(@Nullable Method method, Object obj, T defaultValue,
              @Nullable Object... args)
focal_class.identifier: invokeWithDefault
focal_class.modifiers: @SuppressWarnings("unchecked") public static
focal_class.parameters: (@Nullable Method method, Object obj, T defaultValue,
              @Nullable Object... args)
focal_class.return: T
focal_class.signature: T invokeWithDefault(@Nullable Method method, Object obj, T defaultValue,
              @Nullable Object... args)
focal_class.class_method_signature: Reflection.getFieldValue(@Nullable Field field, Object obj)
focal_class.full_signature: public static @Nullable Object getFieldValue(@Nullable Field field, Object obj)
focal_class.identifier: getFieldValue
focal_class.modifiers: public static @Nullable
focal_class.parameters: (@Nullable Field field, Object obj)
focal_class.return: Object
focal_class.signature: Object getFieldValue(@Nullable Field field, Object obj)
focal_class.class_method_signature: Reflection.getClass(String name, @Nullable ClassLoader loader,
              boolean warnIfNotFound)
focal_class.full_signature: private static @Nullable Class<?> getClass(String name, @Nullable ClassLoader loader,
              boolean warnIfNotFound)
focal_class.identifier: getClass
focal_class.modifiers: private static @Nullable
focal_class.parameters: (String name, @Nullable ClassLoader loader,
              boolean warnIfNotFound)
focal_class.return: Class<?>
focal_class.signature: Class<?> getClass(String name, @Nullable ClassLoader loader,
              boolean warnIfNotFound)
focal_method.body: public static @Nullable Method getMethod(@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes) {
          if (clazz == null) {
              return null;
          }
          try {
              return clazz.getMethod(methodName, parameterTypes);
          } catch (NoSuchMethodException e) {
              logger.debug(e.getMessage(), e);
              return null;
          } catch (Throwable t) {
              logger.warn(t.getMessage(), t);
              return null;
          }
      }
focal_method.class_method_signature: Reflection.getMethod(@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes)
focal_method.full_signature: public static @Nullable Method getMethod(@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes)
focal_method.identifier: getMethod
focal_method.invocations: getMethod debug getMessage warn getMessage
focal_method.modifiers: public static @Nullable
focal_method.parameters: (@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes)
focal_method.return: Method
focal_method.signature: Method getMethod(@Nullable Class<?> clazz, String methodName,
              Class<?>... parameterTypes)