output: #fixed code
                                  @Test
      public void agentLoads() throws IOException, InterruptedException {
          // If not starting the testcase via Maven, set the buildDirectory and finalName system properties manually.
          final String buildDirectory = (String) System.getProperties().get("buildDirectory");
          final String finalName = (String) System.getProperties().get("finalName");
          final int port = Integer.parseInt((String) System.getProperties().get("it.port"));
          final String config = resolveRelativePathToResource("test.yml");
          final String javaagent = "-javaagent:" + buildDirectory + "/" + finalName + ".jar=" + port + ":" + config;
          final String java = buildJavaPath(System.getenv("JAVA_HOME"));
  
          final Process app = new ProcessBuilder()
              .command(java, javaagent, "-cp", buildClasspath(), "io.prometheus.jmx.TestApplication")
              .start();
          try {
              // Wait for application to start
              app.getInputStream().read();
  
              InputStream stream = new URL("http://localhost:" + port + "/metrics").openStream();
              BufferedReader contents = new BufferedReader(new InputStreamReader(stream));
              boolean found = false;
              while (!found) {
                  String line = contents.readLine();
                  if (line == null) {
                      break;
                  }
                  if (line.contains("jmx_scrape_duration_seconds")) {
                      found = true;
                  }
              }
  
              assertThat("Expected metric not found", found);
  
              // Tell application to stop
              app.getOutputStream().write('\n');
              try {
                  app.getOutputStream().flush();
              } catch (IOException ignored) {
              }
          } finally {
              final int exitcode = app.waitFor();
              // Log any errors printed
              int len;
              byte[] buffer = new byte[100];
              while ((len = app.getErrorStream().read(buffer)) != -1) {
                  System.out.write(buffer, 0, len);
              }
  
              assertThat("Application did not exit cleanly", exitcode == 0);
          }
      }
input: #vulnerable code 
                                  @Test
      public void agentLoads() throws IOException, InterruptedException {
          // If not starting the testcase via Maven, set the buildDirectory and finalName system properties manually.
          final String buildDirectory = (String) System.getProperties().get("buildDirectory");
          final String finalName = (String) System.getProperties().get("finalName");
          final int port = Integer.parseInt((String) System.getProperties().get("it.port"));
          final String config = resolveRelativePathToResource("test.yml");
          final String javaagent = "-javaagent:" + buildDirectory + "/" + finalName + ".jar=" + port + ":" + config;
  
          final String javaHome = System.getenv("JAVA_HOME");
          final String java;
          if (javaHome != null && javaHome.equals("")) {
              java = javaHome + "/bin/java";
          } else {
              java = "java";
          }
  
          final Process app = new ProcessBuilder()
              .command(java, javaagent, "-cp", buildClasspath(), "io.prometheus.jmx.TestApplication")
              .start();
          try {
              // Wait for application to start
              app.getInputStream().read();
  
              InputStream stream = new URL("http://localhost:" + port + "/metrics").openStream();
              BufferedReader contents = new BufferedReader(new InputStreamReader(stream));
              boolean found = false;
              while (!found) {
                  String line = contents.readLine();
                  if (line == null) {
                      break;
                  }
                  if (line.contains("jmx_scrape_duration_seconds")) {
                      found = true;
                  }
              }
  
              assertThat("Expected metric not found", found);
  
              // Tell application to stop
              app.getOutputStream().write('\n');
              try {
                  app.getOutputStream().flush();
              } catch (IOException ignored) {
              }
          } finally {
              final int exitcode = app.waitFor();
              // Log any errors printed
              int len;
              byte[] buffer = new byte[100];
              while ((len = app.getErrorStream().read(buffer)) != -1) {
                  System.out.write(buffer, 0, len);
              }
  
              assertThat("Application did not exit cleanly", exitcode == 0);
          }
      } 
                              #location 28 
                              #vulnerability type RESOURCE_LEAK