Using try-with-resources to properly close input streams
diff --git a/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/JarLdifSchemaLoader.java b/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/JarLdifSchemaLoader.java
index e3acb2f..0c22c80 100644
--- a/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/JarLdifSchemaLoader.java
+++ b/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/JarLdifSchemaLoader.java
@@ -183,11 +183,14 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "comparator LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    comparatorList.add( entry.getEntry() );
+                    
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+    
+                        comparatorList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -220,11 +223,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "syntaxChecker LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    syntaxCheckerList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        syntaxCheckerList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -257,11 +262,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "normalizer LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    normalizerList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        normalizerList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -294,11 +301,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "matchingRules LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    matchingRuleList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        matchingRuleList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -331,11 +340,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "syntax LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    syntaxList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        syntaxList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -370,11 +381,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "attributeType LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    attributeTypeList.add( entry.getEntry() );
+                    
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        attributeTypeList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -407,11 +420,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "matchingRuleUse LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    matchingRuleUseList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        matchingRuleUseList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -444,11 +459,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "nameForm LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    nameFormList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        nameFormList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -481,11 +498,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "ditContentRule LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    ditContentRulesList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        ditContentRulesList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -518,11 +537,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "ditStructureRule LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    ditStructureRuleList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                       ditStructureRuleList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -556,11 +577,13 @@
                 if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) )
                 {
                     URL resource = getResource( resourcePath, "objectClass LDIF file" );
-                    LdifReader reader = new LdifReader( resource.openStream() );
-                    LdifEntry entry = reader.next();
-                    reader.close();
 
-                    objectClassList.add( entry.getEntry() );
+                    try ( InputStream in = resource.openStream();
+                        LdifReader reader = new LdifReader( in ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        objectClassList.add( entry.getEntry() );
+                    }
                 }
             }
         }
diff --git a/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/LdifSchemaLoader.java b/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/LdifSchemaLoader.java
index 1501be3..424e5da 100644
--- a/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/LdifSchemaLoader.java
+++ b/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/LdifSchemaLoader.java
@@ -205,11 +205,11 @@
             {
                 for ( File ldifFile : comparators )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    comparatorList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        comparatorList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -246,11 +246,11 @@
             {
                 for ( File ldifFile : syntaxCheckerFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    syntaxCheckerList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        syntaxCheckerList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -287,11 +287,11 @@
             {
                 for ( File ldifFile : normalizerFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    normalizerList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        normalizerList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -328,11 +328,11 @@
             {
                 for ( File ldifFile : matchingRuleFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    matchingRuleList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        matchingRuleList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -369,11 +369,11 @@
             {
                 for ( File ldifFile : syntaxFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    syntaxList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        syntaxList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -412,11 +412,11 @@
             {
                 for ( File ldifFile : attributeTypeFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    attributeTypeList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        attributeTypeList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -454,11 +454,11 @@
             {
                 for ( File ldifFile : matchingRuleUseFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    matchingRuleUseList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        matchingRuleUseList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -495,11 +495,11 @@
             {
                 for ( File ldifFile : nameFormFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    nameFormList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        nameFormList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -537,11 +537,11 @@
             {
                 for ( File ldifFile : ditContentRuleFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    ditContentRuleList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        ditContentRuleList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -579,11 +579,11 @@
             {
                 for ( File ldifFile : ditStructureRuleFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    ditStructureRuleList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        ditStructureRuleList.add( entry.getEntry() );
+                    }
                 }
             }
         }
@@ -622,11 +622,11 @@
             {
                 for ( File ldifFile : objectClassFiles )
                 {
-                    LdifReader reader = new LdifReader( ldifFile );
-                    LdifEntry entry = reader.next();
-                    reader.close();
-
-                    objectClassList.add( entry.getEntry() );
+                    try ( LdifReader reader = new LdifReader( ldifFile ) )
+                    {
+                        LdifEntry entry = reader.next();
+                        objectClassList.add( entry.getEntry() );
+                    }
                 }
             }
         }
diff --git a/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/SingleLdifSchemaLoader.java b/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/SingleLdifSchemaLoader.java
index ed3adc6..1af67e2 100644
--- a/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/SingleLdifSchemaLoader.java
+++ b/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/loader/SingleLdifSchemaLoader.java
@@ -90,9 +90,10 @@
                 scObjEntryMap.put( s, new HashMap<String, List<Entry>>() );
             }
 
-            InputStream in = resource.openStream();
-
-            initializeSchemas( in );
+            try ( InputStream in = resource.openStream() )
+            {
+                initializeSchemas( in );
+            }
         }
         catch ( LdapException | IOException e )
         {
@@ -115,9 +116,10 @@
                 scObjEntryMap.put( s, new HashMap<String, List<Entry>>() );
             }
 
-            InputStream in = Files.newInputStream( Paths.get( schemaFile ) );
-
-            initializeSchemas( in );
+            try ( InputStream in = Files.newInputStream( Paths.get( schemaFile ) ) )
+            {
+                initializeSchemas( in );
+            }
         }
         catch ( LdapException | IOException e )
         {
@@ -140,9 +142,10 @@
                 scObjEntryMap.put( s, new HashMap<String, List<Entry>>() );
             }
 
-            InputStream in = schemaUrl.openStream();
-
-            initializeSchemas( in );
+            try ( InputStream in = schemaUrl.openStream() )
+            {
+                initializeSchemas( in );
+            }
         }
         catch ( LdapException | IOException e )
         {