]> source.dussan.org Git - poi.git/commitdiff
findbugs REC_CATCH_EXCEPTION: catch specific exception types and include more helpful...
authorJaven O'Neal <onealj@apache.org>
Sat, 2 Jul 2016 05:11:01 +0000 (05:11 +0000)
committerJaven O'Neal <onealj@apache.org>
Sat, 2 Jul 2016 05:11:01 +0000 (05:11 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751023 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java

index c2fb8be2c4d4f2bb6acd7798a417fbd9388df7e0..4eb8e4951344b7b43760a65be609cf3f8a81533b 100644 (file)
@@ -47,6 +47,7 @@ import javax.xml.crypto.dsig.dom.DOMValidateContext;
 import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
 import javax.xml.xpath.XPathFactory;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -97,6 +98,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.events.EventListener;
 import org.w3c.dom.events.EventTarget;
+import org.xml.sax.SAXException;
 
 
 /**
@@ -261,8 +263,24 @@ public class SignatureInfo implements SignatureConfigurable {
                 }
                 
                 return valid;
-            } catch (Exception e) {
-                String s = "error in marshalling and validating the signature";
+            } catch (IOException e) {
+                String s = "error in reading document";
+                LOG.log(POILogger.ERROR, s, e);
+                throw new EncryptedDocumentException(s, e);
+            } catch (SAXException e) {
+                String s = "error in parsing document";
+                LOG.log(POILogger.ERROR, s, e);
+                throw new EncryptedDocumentException(s, e);
+            } catch (XPathExpressionException e) {
+                String s = "error in searching document with xpath expression";
+                LOG.log(POILogger.ERROR, s, e);
+                throw new EncryptedDocumentException(s, e);
+            } catch (MarshalException e) {
+                String s = "error in unmarshalling the signature";
+                LOG.log(POILogger.ERROR, s, e);
+                throw new EncryptedDocumentException(s, e);
+            } catch (XMLSignatureException e) {
+                String s = "error in validating the signature";
                 LOG.log(POILogger.ERROR, s, e);
                 throw new EncryptedDocumentException(s, e);
             }