From 3d982813b34f6f230baf4a467cdc37ec92a77595 Mon Sep 17 00:00:00 2001 From: netconomy Date: Fri, 17 Aug 2007 06:10:56 +0000 Subject: Performance git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@167 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../wag/egov/egiz/sig/connectors/bku/BKUHelper.java | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java') diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java index c05c688..5e3033e 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java @@ -2,6 +2,7 @@ package at.knowcenter.wag.egov.egiz.sig.connectors.bku; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; @@ -9,6 +10,9 @@ import java.security.cert.X509Certificate; import java.util.regex.Matcher; import java.util.regex.Pattern; +import at.gv.egiz.pdfas.exceptions.external.ExternalErrorException; +import at.gv.egiz.pdfas.impl.input.helper.DataSourceHelper; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -47,7 +51,10 @@ public final class BKUHelper */ public static String prepareBase64Content(SignatureData data) { - String base64 = CodingHelper.encodeBase64(data.getData()); + // PERF: base64 encoding needs byte array + byte [] d = DataSourceHelper.convertDataSourceToByteArray(data.getDataSource()); + + String base64 = CodingHelper.encodeBase64(d); if (data.getMimeType().equals("application/pdf")) //$NON-NLS-1$ { log.debug("The data is application/pdf - so the binary data is Base64 encoded."); //$NON-NLS-1$ @@ -69,7 +76,9 @@ public final class BKUHelper */ public static byte[] prepareEnvelopingData(SignatureData data) { - byte[] enc = data.getData(); + // PERF: prepareEnvelopingData needs byte array + byte[] enc = DataSourceHelper.convertDataSourceToByteArray(data.getDataSource()); + if (data.getMimeType().equals("application/pdf")) //$NON-NLS-1$ { log.debug("The data is application/pdf - so the binary data is Base64 encoded."); //$NON-NLS-1$ @@ -111,15 +120,13 @@ public final class BKUHelper Pattern erm_p_e = Pattern.compile(""); //$NON-NLS-1$ Matcher erm_m_s = erm_p_s.matcher(response_string); Matcher erm_m_e = erm_p_e.matcher(response_string); - ConnectorException se = new ConnectorException(0, "BKUSigExc"); //$NON-NLS-1$ String error_code = response_string.substring(erc_m_s.end(), erc_m_e.start()); - se.setExternalErrorCode(error_code); + String error_mess = null; if (erm_m_s.find() && erm_m_e.find()) { - String error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start()); - se.setExternalErrorMessage(error_mess); + error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start()); } - throw se; + throw new ExternalErrorException(error_code, error_mess); } } -- cgit v1.2.3