]> source.dussan.org Git - poi.git/commitdiff
Add some throttling to the log for failed SAXHelper features to not spam the log...
authorDominik Stadler <centic@apache.org>
Mon, 26 Dec 2016 19:51:42 +0000 (19:51 +0000)
committerDominik Stadler <centic@apache.org>
Mon, 26 Dec 2016 19:51:42 +0000 (19:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1776067 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/util/SAXHelper.java

index 6a957c2993e0d60d13976868c2369b0bf83faf8e..d83b814328d288e71fc068dd744008dd73ff3d5f 100644 (file)
@@ -20,6 +20,7 @@ package org.apache.poi.util;
 import java.io.IOException;
 import java.io.StringReader;
 import java.lang.reflect.Method;
+import java.util.concurrent.TimeUnit;
 
 import javax.xml.XMLConstants;
 import javax.xml.parsers.ParserConfigurationException;
@@ -36,6 +37,7 @@ import org.xml.sax.XMLReader;
  */
 public final class SAXHelper {
     private static POILogger logger = POILogFactory.getLogger(SAXHelper.class);
+    private static long lastLog = 0;
 
     private SAXHelper() {}
 
@@ -89,7 +91,10 @@ public final class SAXHelper {
                 // Stop once one can be setup without error
                 return;
             } catch (Throwable e) {     // NOSONAR - also catch things like NoClassDefError here
-                logger.log(POILogger.WARN, "SAX Security Manager could not be setup", e);
+                // throttle the log somewhat as it can spam the log otherwise
+                if(System.currentTimeMillis() > lastLog + TimeUnit.MINUTES.toMillis(5)) {
+                    logger.log(POILogger.WARN, "SAX Security Manager could not be setup [log suppressed for 5 minutes]", e);
+                }
             }
         }
     }