You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2012/09/04 13:21:31 UTC
svn commit: r1380555 -
/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.java
Author: fmui
Date: Tue Sep 4 11:21:30 2012
New Revision: 1380555
URL: http://svn.apache.org/viewvc?rev=1380555&view=rev
Log:
Server: ThresholdOutputStream improvements
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.java?rev=1380555&r1=1380554&r2=1380555&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.java Tue Sep 4 11:21:30 2012
@@ -214,7 +214,7 @@ public class ThresholdOutputStream exten
/**
* Returns the data as an InputStream.
*/
- public InputStream getInputStream() throws Exception {
+ public InputStream getInputStream() throws IOException {
if (tmpStream != null) {
close();
buf = null;
@@ -266,6 +266,11 @@ public class ThresholdOutputStream exten
public long length() {
return size;
}
+
+ /**
+ * Rewinds the stream so that it can be read from the beginning.
+ */
+ public abstract void rewind() throws IOException;
}
/**
@@ -285,6 +290,16 @@ public class ThresholdOutputStream exten
}
@Override
+ public void rewind() throws IOException {
+ if (buf == null) {
+ throw new IOException("Stream is already closed!");
+ }
+
+ pos = 0;
+ mark = -1;
+ }
+
+ @Override
public boolean markSupported() {
return true;
}
@@ -363,7 +378,7 @@ public class ThresholdOutputStream exten
*/
private class InternalTempFileInputStream extends ThresholdInputStream {
- private final BufferedInputStream stream;
+ private BufferedInputStream stream;
private boolean isDeleted = false;
private boolean isClosed = false;
@@ -380,6 +395,17 @@ public class ThresholdOutputStream exten
}
@Override
+ public void rewind() throws IOException {
+ if (isClosed) {
+ throw new IOException("Stream is already closed!");
+ }
+
+ stream.close();
+
+ stream = new BufferedInputStream(new FileInputStream(tempFile), memoryThreshold);
+ }
+
+ @Override
public int available() throws IOException {
if (isClosed) {
throw new IOException("Stream is already closed!");