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/core/src/test/java/org/glowroot/agent/AgentPremainTest.java
test_class.identifier: AgentPremainTest
test_case.body: @Test
      public void testNullCodeSourceWithDelegateJavaagent() throws Exception {
          System.setProperty("glowroot.test.dir", ".");
          try {
              assertThat(AgentPremain.getGlowrootJarFile(null)).isNull();
          } finally {
              System.clearProperty("glowroot.test.dir");
          }
      }
test_case.class_method_signature: AgentPremainTest.testNullCodeSourceWithDelegateJavaagent()
test_case.full_signature: @Test public void testNullCodeSourceWithDelegateJavaagent()
test_case.identifier: testNullCodeSourceWithDelegateJavaagent
test_case.invocations: setProperty isNull assertThat getGlowrootJarFile clearProperty
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNullCodeSourceWithDelegateJavaagent()
focal_class.declarator: PRE_CHECK_LOADED_CLASSES =
              Boolean.getBoolean("glowroot.debug.preCheckLoadedClasses")
focal_class.modifier: private static final
focal_class.original_string: private static final boolean PRE_CHECK_LOADED_CLASSES =
              Boolean.getBoolean("glowroot.debug.preCheckLoadedClasses");
focal_class.type: boolean
focal_class.var_name: PRE_CHECK_LOADED_CLASSES
focal_class.file: agent/core/src/main/java/org/glowroot/agent/AgentPremain.java
focal_class.identifier: AgentPremain
focal_class.class_method_signature: AgentPremain.AgentPremain()
focal_class.full_signature: private  AgentPremain()
focal_class.identifier: AgentPremain
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  AgentPremain()
focal_class.class_method_signature: AgentPremain.premain(@SuppressWarnings("unused") String agentArgs,
              Instrumentation instrumentation)
focal_class.full_signature: public static void premain(@SuppressWarnings("unused") String agentArgs,
              Instrumentation instrumentation)
focal_class.identifier: premain
focal_class.modifiers: public static
focal_class.parameters: (@SuppressWarnings("unused") String agentArgs,
              Instrumentation instrumentation)
focal_class.return: void
focal_class.signature: void premain(@SuppressWarnings("unused") String agentArgs,
              Instrumentation instrumentation)
focal_class.class_method_signature: AgentPremain.getGlowrootJarFile(CodeSource codeSource)
focal_class.full_signature: @SuppressWarnings("return.type.incompatible") static File getGlowrootJarFile(CodeSource codeSource)
focal_class.identifier: getGlowrootJarFile
focal_class.modifiers: @SuppressWarnings("return.type.incompatible") static
focal_class.parameters: (CodeSource codeSource)
focal_class.return: File
focal_class.signature: File getGlowrootJarFile(CodeSource codeSource)
focal_method.body: @SuppressWarnings("return.type.incompatible")
      static File getGlowrootJarFile(CodeSource codeSource) throws Exception {
          if (codeSource == null) {
              if (System.getProperty("glowroot.test.dir") != null) {
                  // this is ok, running tests under delegating javaagent
                  return null;
              }
              throw new IOException("Could not determine glowroot jar location");
          }
          File codeSourceFile = new File(codeSource.getLocation().toURI());
          if (codeSourceFile.getName().endsWith(".jar")) {
              return codeSourceFile;
          }
          if (System.getProperty("glowroot.test.dir") != null) {
              // this is ok, running tests under delegating javaagent
              return null;
          }
          throw new IOException("Could not determine glowroot jar location");
      }
focal_method.class_method_signature: AgentPremain.getGlowrootJarFile(CodeSource codeSource)
focal_method.full_signature: @SuppressWarnings("return.type.incompatible") static File getGlowrootJarFile(CodeSource codeSource)
focal_method.identifier: getGlowrootJarFile
focal_method.invocations: getProperty toURI getLocation endsWith getName getProperty
focal_method.modifiers: @SuppressWarnings("return.type.incompatible") static
focal_method.parameters: (CodeSource codeSource)
focal_method.return: File
focal_method.signature: File getGlowrootJarFile(CodeSource codeSource)