From f7944a823e6abf6116b2c6be5b6439c29afb5842 Mon Sep 17 00:00:00 2001 From: emmanuel lecharny Date: Thu, 24 Dec 2020 14:44:06 +0100 Subject: [PATCH] Close the InputStream properly --- .../api/ldap/model/ldif/LdifAttributesReader.java | 1 + .../directory/api/ldap/model/ldif/LdifReader.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReader.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReader.java index 0f493fef45..4671e5abd5 100644 --- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReader.java +++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReader.java @@ -158,6 +158,7 @@ public class LdifAttributesReader extends LdifReader */ public LdifAttributesReader() { + super(); lines = new ArrayList(); position = 0; version = DEFAULT_VERSION; diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifReader.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifReader.java index a18e2037b5..1b8d4c5870 100644 --- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifReader.java +++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifReader.java @@ -216,6 +216,9 @@ public class LdifReader implements Iterable, Closeable /** The ldif Reader */ protected Reader reader; + + /** The internal inputStream */ + private InputStream is; /** A flag set if the ldif contains entries */ protected boolean containsEntries; @@ -351,7 +354,7 @@ public LdifReader( File file, SchemaManager schemaManager ) throws LdapLdifExcep try { - InputStream is = Files.newInputStream( Paths.get( file.getPath() ) ); + is = Files.newInputStream( Paths.get( file.getPath() ) ); initReader( new BufferedReader( new InputStreamReader( is, Charset.defaultCharset() ) ) ); } @@ -2232,6 +2235,12 @@ public void close() throws IOException offset = 0; entryOffset = 0; lineNumber = 0; + + // Close the inner inputStream if needed + if ( is != null ) + { + is.close(); + } } } }