diff options
author | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2008-09-18 09:25:55 +0000 |
---|---|---|
committer | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2008-09-18 09:25:55 +0000 |
commit | a20fb683943ce0893302b6dc25015c998cd9687f (patch) | |
tree | c7642496f0d453f0f250420647e8eae893e7d602 /BKULocal/src/main/java | |
parent | f72d5842828ec072813eb30051d24f7cc8613606 (diff) | |
download | mocca-a20fb683943ce0893302b6dc25015c998cd9687f.tar.gz mocca-a20fb683943ce0893302b6dc25015c998cd9687f.tar.bz2 mocca-a20fb683943ce0893302b6dc25015c998cd9687f.zip |
hashdatainput cached
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@46 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'BKULocal/src/main/java')
-rw-r--r-- | BKULocal/src/main/java/at/gv/egiz/bku/local/stal/LocalSignRequestHandler.java | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/BKULocal/src/main/java/at/gv/egiz/bku/local/stal/LocalSignRequestHandler.java b/BKULocal/src/main/java/at/gv/egiz/bku/local/stal/LocalSignRequestHandler.java index a288a716..ca420f13 100644 --- a/BKULocal/src/main/java/at/gv/egiz/bku/local/stal/LocalSignRequestHandler.java +++ b/BKULocal/src/main/java/at/gv/egiz/bku/local/stal/LocalSignRequestHandler.java @@ -16,6 +16,7 @@ */ package at.gv.egiz.bku.local.stal; +import at.gv.egiz.bku.slcommands.impl.DataObjectHashDataInput; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -68,14 +69,27 @@ public class LocalSignRequestHandler extends SignRequestHandler { if (dsigRefId != null) { for (HashDataInput hdi : hashDataInput) { if (hdi.getReferenceId().equals(dsigRefId)) { - InputStream hdIs = hdi.getHashDataInput(); - ByteArrayOutputStream baos = new ByteArrayOutputStream(hdIs.available()); - int b; - while ((b = hdIs.read()) != -1) { - baos.write(b); + if (hdi instanceof DataObjectHashDataInput) { + if (log.isTraceEnabled()) + log.trace("adding DataObjectHashDataInput"); + result.add(hdi); + } else if (hdi instanceof ByteArrayHashDataInput) { + if (log.isTraceEnabled()) + log.trace("adding ByteArrayHashDataInput"); + result.add(hdi); + } else { + if (log.isDebugEnabled()) + log.debug("provided HashDataInput not chaching enabled, creating ByteArrayHashDataInput"); + + InputStream hdIs = hdi.getHashDataInput(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(hdIs.available()); + int b; + while ((b = hdIs.read()) != -1) { + baos.write(b); + } + ByteArrayHashDataInput baHdi = new ByteArrayHashDataInput(baos.toByteArray(), hdi.getReferenceId(), hdi.getMimeType(), hdi.getEncoding()); + result.add(baHdi); } - ByteArrayHashDataInput baHdi = new ByteArrayHashDataInput(baos.toByteArray(), hdi.getReferenceId(), hdi.getMimeType(), hdi.getEncoding()); - result.add(baHdi); } } } else { |