From b1c8641a63a67e3c64d948f9e8dce5c01e11e2dd Mon Sep 17 00:00:00 2001 From: mcentner Date: Wed, 5 May 2010 15:29:01 +0000 Subject: Merged feature branch mocca-1.2.13-id@r724 back to trunk. git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@725 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../bku/binding/MultiPartFormDataInputDecoder.java | 235 +++++++++++---------- 1 file changed, 118 insertions(+), 117 deletions(-) (limited to 'bkucommon/src/main/java/at/gv/egiz/bku/binding/MultiPartFormDataInputDecoder.java') diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/binding/MultiPartFormDataInputDecoder.java b/bkucommon/src/main/java/at/gv/egiz/bku/binding/MultiPartFormDataInputDecoder.java index f8b13553..2dd57f12 100644 --- a/bkucommon/src/main/java/at/gv/egiz/bku/binding/MultiPartFormDataInputDecoder.java +++ b/bkucommon/src/main/java/at/gv/egiz/bku/binding/MultiPartFormDataInputDecoder.java @@ -14,120 +14,121 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package at.gv.egiz.bku.binding; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Iterator; - -import org.apache.commons.fileupload.FileItemIterator; -import org.apache.commons.fileupload.FileItemStream; -import org.apache.commons.fileupload.FileUpload; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.RequestContext; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import at.gv.egiz.bku.slexceptions.SLRuntimeException; - -/** - * The code to detect the multipart boundary is based on - * org.apache.commons.fileupload.FileUploadBase of - * http://commons.apache.org/fileupload/ - * - * @author wbauer - * - */ -public class MultiPartFormDataInputDecoder implements InputDecoder, - RequestContext { - - private static Log log = LogFactory - .getLog(MultiPartFormDataInputDecoder.class); - - private String contentType; - private InputStream stream; - - @Override - public void setContentType(String contentType) { - this.contentType = contentType; - } - - @Override - public String getCharacterEncoding() { - return null; - } - - @Override - public int getContentLength() { - return 0; - } - - @Override - public String getContentType() { - return contentType; - } - - @Override - public InputStream getInputStream() throws IOException { - return stream; - } - - @Override - public Iterator getFormParameterIterator() { - try { - FileUpload fup = new FileUpload(); - FileItemIterator fit = fup.getItemIterator(this); - return new IteratorDelegator(fit); - } catch (Exception iox) { - log.error("Cannot decode multipart form data stream " + iox); - throw new SLRuntimeException(iox); - } - } - - @Override - public void setInputStream(InputStream is) { - stream = is; - } - - static class IteratorDelegator implements Iterator { - - private FileItemIterator fileItemIterator; - - public IteratorDelegator(FileItemIterator fit) { - fileItemIterator = fit; - } - - @Override - public boolean hasNext() { - try { - return fileItemIterator.hasNext(); - } catch (FileUploadException e) { - log.error(e); - throw new SLRuntimeException(e); - } catch (IOException e) { - log.error(e); - throw new SLRuntimeException(e); - } - } - - @Override - public FormParameter next() { - try { - FileItemStream item = fileItemIterator.next(); - return new FormParameterImpl(item.getContentType(), - item.getFieldName(), item.openStream(), item.getHeaders()); - } catch (FileUploadException e) { - log.error(e); - throw new SLRuntimeException(e); - } catch (IOException e) { - log.error(e); - throw new SLRuntimeException(e); - } - } - - @Override - public void remove() { - throw new UnsupportedOperationException("Remove not supported"); - } - } -} +package at.gv.egiz.bku.binding; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Iterator; + +import org.apache.commons.fileupload.FileItemIterator; +import org.apache.commons.fileupload.FileItemStream; +import org.apache.commons.fileupload.FileUpload; +import org.apache.commons.fileupload.FileUploadException; +import org.apache.commons.fileupload.RequestContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.egiz.bku.slexceptions.SLRuntimeException; + +/** + * The code to detect the multipart boundary is based on + * org.apache.commons.fileupload.FileUploadBase of + * http://commons.apache.org/fileupload/ + * + * @author wbauer + * + */ +public class MultiPartFormDataInputDecoder implements InputDecoder, + RequestContext { + + private final Logger log = LoggerFactory.getLogger(MultiPartFormDataInputDecoder.class); + + private String contentType; + private InputStream stream; + + @Override + public void setContentType(String contentType) { + this.contentType = contentType; + } + + @Override + public String getCharacterEncoding() { + return null; + } + + @Override + public int getContentLength() { + return 0; + } + + @Override + public String getContentType() { + return contentType; + } + + @Override + public InputStream getInputStream() throws IOException { + return stream; + } + + @Override + public Iterator getFormParameterIterator() { + try { + FileUpload fup = new FileUpload(); + FileItemIterator fit = fup.getItemIterator(this); + return new IteratorDelegator(fit); + } catch (Exception iox) { + log.error("Cannot decode multipart form data stream " + iox); + throw new SLRuntimeException(iox); + } + } + + @Override + public void setInputStream(InputStream is) { + stream = is; + } + + static class IteratorDelegator implements Iterator { + + private final Logger log = LoggerFactory.getLogger(MultiPartFormDataInputDecoder.class); + + private FileItemIterator fileItemIterator; + + public IteratorDelegator(FileItemIterator fit) { + fileItemIterator = fit; + } + + @Override + public boolean hasNext() { + try { + return fileItemIterator.hasNext(); + } catch (FileUploadException e) { + log.error("Failed to get next file item.", e); + throw new SLRuntimeException(e); + } catch (IOException e) { + log.error("Failed to get next file item.", e); + throw new SLRuntimeException(e); + } + } + + @Override + public FormParameter next() { + try { + FileItemStream item = fileItemIterator.next(); + return new FormParameterImpl(item.getContentType(), + item.getFieldName(), item.openStream(), item.getHeaders()); + } catch (FileUploadException e) { + log.error("Failed to get next file item.", e); + throw new SLRuntimeException(e); + } catch (IOException e) { + log.error("Failed to get next file item.", e); + throw new SLRuntimeException(e); + } + } + + @Override + public void remove() { + throw new UnsupportedOperationException("Remove not supported"); + } + } +} -- cgit v1.2.3