Index: tika-core/src/main/java/org/apache/tika/io/TemporaryResources.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/io/TemporaryResources.java	(revision 1697694)
+++ tika-core/src/main/java/org/apache/tika/io/TemporaryResources.java	(revision )
@@ -107,33 +107,32 @@
      * Closes all tracked resources. The resources are closed in reverse order
      * from how they were added.
      * <p>
-     * Any thrown exceptions from managed resources are collected and
-     * then re-thrown only once all the resources have been closed.
+     * Any suppressed exceptions from managed resources are collected and
+     * then added to the first thrown exception, which is re-thrown once
+     * all the resources have been closed.
      *
      * @throws IOException if one or more of the tracked resources
      *                     could not be closed
      */
     public void close() throws IOException {
         // Release all resources and keep track of any exceptions
-        List<IOException> exceptions = new LinkedList<IOException>();
+        IOException exception = null;
         for (Closeable resource : resources) {
             try {
                 resource.close();
             } catch (IOException e) {
-                exceptions.add(e);
+                if (exception == null) {
+                    exception = e;
+                } else {
+                    exception.addSuppressed(e);
-            }
-        }
+                }
+            }
+        }
         resources.clear();
 
         // Throw any exceptions that were captured from above
-        if (!exceptions.isEmpty()) {
-            if (exceptions.size() == 1) {
-                throw exceptions.get(0);
-            } else {
-                throw new IOExceptionWithCause(
-                        "Multiple IOExceptions" + exceptions,
-                        exceptions.get(0));
-            }
+        if (exception != null) {
+            throw exception;
         }
     }
 
