SLING-6440 switch to latest jcr/contentparser API

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1786877 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileParserUtil.java b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileParserUtil.java
index ff83c00..b32decf 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileParserUtil.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileParserUtil.java
@@ -22,7 +22,10 @@
 import static org.apache.sling.fsprovider.internal.parser.ContentFileTypes.JCR_XML_SUFFIX;
 import static org.apache.sling.fsprovider.internal.parser.ContentFileTypes.JSON_SUFFIX;
 
+import java.io.BufferedInputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
@@ -68,10 +71,10 @@
         }
         try {
             if (StringUtils.endsWith(file.getName(), JSON_SUFFIX)) {
-                return JSON_PARSER.parse(file);
+                return parse(JSON_PARSER, file);
             }
             else if (StringUtils.equals(file.getName(), DOT_CONTENT_XML) || StringUtils.endsWith(file.getName(), JCR_XML_SUFFIX)) {
-                return JCR_XML_PARSER.parse(file);
+                return parse(JCR_XML_PARSER, file);
             }
         }
         catch (Throwable ex) {
@@ -79,5 +82,12 @@
         }
         return null;
     }
+    
+    private static Map<String,Object> parse(ContentParser contentParser, File file) throws IOException {
+        try (FileInputStream fis = new FileInputStream(file);
+                BufferedInputStream bis = new BufferedInputStream(fis)) {
+            return contentParser.parse(bis);
+        }
+    }
 
 }