diff options
Diffstat (limited to 'pdf-as-lib/src/main/java/at')
| -rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java | 31 | ||||
| -rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java | 6 | 
2 files changed, 30 insertions, 7 deletions
| diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java index 90a4e9e8..8c2451e3 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java @@ -1,11 +1,18 @@  package at.gv.egiz.pdfas.lib.impl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +  import at.gv.egiz.pdfas.common.exceptions.ErrorConstants;  import at.gv.egiz.pdfas.common.exceptions.PDFASError; +import at.gv.egiz.pdfas.common.exceptions.PdfAsMOAException;  import at.gv.egiz.pdfas.common.exceptions.SLPdfAsException;  public class ErrorExtractor implements ErrorConstants { +	private static final Logger logger = LoggerFactory +			.getLogger(ErrorExtractor.class); +	  	private static final int MAX_CAUSE_DEPTH = 30;  	private static PDFASError convertPdfAsError(Throwable e) { @@ -16,7 +23,27 @@ public class ErrorExtractor implements ErrorConstants {  			} else {  				return new PDFASError(ex.getCode(), e);  			} -		} // TODO: Handle more exceptions +		} else if(e instanceof PdfAsMOAException) { +			PdfAsMOAException ex = (PdfAsMOAException) e; +			int code = -1; +			String errorInfo = ex.getErrorResponse(); +			 +			if(ex.getErrorCode() != null && !ex.getErrorCode().isEmpty()) { +				try { +					code = Integer.parseInt(ex.getErrorCode()); +				} catch(NumberFormatException numfo) { +					logger.warn("Failed to convert MOA ErrorCode: " + ex.getErrorCode(), e); +				} +			} +			 +			if (errorInfo != null) { +				return new PDFASError(code, errorInfo, e); +			} else { +				return new PDFASError(code, e); +			} +		} +		 +		// TODO: Handle more exceptions  		return null;  	} @@ -60,6 +87,8 @@ public class ErrorExtractor implements ErrorConstants {  			return err;  		} +		logger.info("Cannot extract correct failure code from: ", e); +		  		return new PDFASError(ERROR_GENERIC, e);  	}  } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java index 3d9725a7..387a6c31 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java @@ -27,15 +27,12 @@ import iaik.x509.X509Certificate;  import java.awt.Image;  import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream;  import java.io.File;  import java.io.IOException; -import java.util.ArrayList;  import java.util.Calendar;  import java.util.Iterator;  import java.util.List; -import org.apache.commons.io.IOUtils;  import org.slf4j.Logger;  import org.slf4j.LoggerFactory; @@ -64,9 +61,6 @@ import at.gv.egiz.pdfas.lib.impl.signing.IPdfSigner;  import at.gv.egiz.pdfas.lib.impl.signing.PDFASSignatureExtractor;  import at.gv.egiz.pdfas.lib.impl.status.OperationStatus;  import at.gv.egiz.pdfas.lib.impl.status.RequestedSignature; -import at.gv.egiz.pdfas.lib.impl.verify.IVerifier; -import at.gv.egiz.pdfas.lib.impl.verify.IVerifyFilter; -import at.gv.egiz.pdfas.lib.impl.verify.VerifierDispatcher;  import at.gv.egiz.pdfas.lib.util.SignatureUtils;  public class PdfAsImpl implements PdfAs, IConfigurationConstants, | 
