diff options
author | Mikhail Mazursky | 2013-10-26 06:43:06 +0000 |
---|---|---|
committer | Mikhail Mazursky | 2013-10-26 06:43:06 +0000 |
commit | c101e55c7f933bd86d65640f49e78d50e46751c5 (patch) | |
tree | 8a6f582f0fea112a64ecfefbed49c53a0ee959ad | |
parent | a28e4730ad48012b367900ee5a8b40e95462dde2 (diff) | |
download | org.eclipse.jetty.project-c101e55c7f933bd86d65640f49e78d50e46751c5.tar.gz org.eclipse.jetty.project-c101e55c7f933bd86d65640f49e78d50e46751c5.tar.xz org.eclipse.jetty.project-c101e55c7f933bd86d65640f49e78d50e46751c5.zip |
[Bug 420374] Call super.close() in a finally block
Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
-rw-r--r-- | jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java b/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java index 024bb6378a..85cc700254 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java @@ -35,12 +35,12 @@ public class MultiPartOutputStream extends FilterOutputStream private static final byte[] __CRLF={'\r','\n'}; private static final byte[] __DASHDASH={'-','-'}; - public static String MULTIPART_MIXED="multipart/mixed"; - public static String MULTIPART_X_MIXED_REPLACE="multipart/x-mixed-replace"; + public static final String MULTIPART_MIXED="multipart/mixed"; + public static final String MULTIPART_X_MIXED_REPLACE="multipart/x-mixed-replace"; /* ------------------------------------------------------------ */ - private String boundary; - private byte[] boundaryBytes; + private final String boundary; + private final byte[] boundaryBytes; /* ------------------------------------------------------------ */ private boolean inPart=false; @@ -54,8 +54,15 @@ public class MultiPartOutputStream extends FilterOutputStream boundary = "jetty"+System.identityHashCode(this)+ Long.toString(System.currentTimeMillis(),36); boundaryBytes=boundary.getBytes(StringUtil.__ISO_8859_1); + } + + public MultiPartOutputStream(OutputStream out, String boundary) + throws IOException + { + super(out); - inPart=false; + this.boundary = boundary; + boundaryBytes=boundary.getBytes(StringUtil.__ISO_8859_1); } /* ------------------------------------------------------------ */ @@ -66,14 +73,20 @@ public class MultiPartOutputStream extends FilterOutputStream public void close() throws IOException { - if (inPart) + try + { + if (inPart) + out.write(__CRLF); + out.write(__DASHDASH); + out.write(boundaryBytes); + out.write(__DASHDASH); out.write(__CRLF); - out.write(__DASHDASH); - out.write(boundaryBytes); - out.write(__DASHDASH); - out.write(__CRLF); - inPart=false; - super.close(); + inPart=false; + } + finally + { + super.close(); + } } /* ------------------------------------------------------------ */ |