/* * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ package codetoanalyze.java.checkers; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Leaks { void basicLeakBad() throws FileNotFoundException { new FileInputStream("file.txt"); } void doubleLeakBad() throws FileNotFoundException { new FileInputStream("file1.txt"); new FileInputStream("file2.txt"); } void basicReleaseOk() throws IOException, FileNotFoundException { FileInputStream stream = new FileInputStream("file.txt"); stream.close(); } void acquireTwoForgetOneBad() throws IOException, FileNotFoundException { FileInputStream stream1 = new FileInputStream("file.txt"); FileInputStream stream2 = new FileInputStream("file.txt"); stream1.close(); } void acquireTwoThenReleaseOk() throws IOException, FileNotFoundException { FileInputStream stream1 = new FileInputStream("file.txt"); FileInputStream stream2 = new FileInputStream("file.txt"); stream1.close(); stream2.close(); } }