< prev index next >

core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/util/ChunkReader.java

Print this page

        

@@ -197,16 +197,26 @@
                         return new DataInputStream(new BufferedInputStream(is));
                 }
 
                 @Override
                 public boolean hasNext() {
+                        boolean hasNext = false;
                         if (streamState == StreamState.NEXT_CHUNK) {
-                                return validateJFRMagic();
+                                hasNext = validateJFRMagic();
                         } else if (streamState == StreamState.JFR_CHECKED) {
-                                return true;
+                                hasNext = true;
                         }
-                        return false;
+                        if (!hasNext) {
+                                if (inputStream != null) {
+                                        try {
+                                                inputStream.close();
+                                        } catch (IOException e) {
+                                                e.printStackTrace();
+                                        }
+                                }
+                        }
+                        return hasNext;
                 }
 
                 private boolean validateJFRMagic() {
                         try {
                                 if (IOToolkit.hasMagic(inputStream, JFR_MAGIC)) {
< prev index next >