in taverna-server-webapp/src/main/java/org/apache/taverna/server/master/TavernaServerSupport.java [874:908]
public void copyStreamToFile(InputStream stream, File file)
throws FilesystemAccessException {
String name = file.getFullName();
long total = 0;
try {
byte[] buffer = new byte[TRANSFER_SIZE];
boolean first = true;
while (true) {
int len = stream.read(buffer);
if (len < 0)
break;
total += len;
if (log.isDebugEnabled())
log.debug("read " + len
+ " bytes from source stream (total: " + total
+ ") bound for " + name);
if (len == buffer.length) {
if (first)
file.setContents(buffer);
else
file.appendContents(buffer);
} else {
byte[] newBuf = new byte[len];
System.arraycopy(buffer, 0, newBuf, 0, len);
if (first)
file.setContents(newBuf);
else
file.appendContents(newBuf);
}
first = false;
}
} catch (IOException exn) {
throw new FilesystemAccessException("failed to transfer bytes", exn);
}
}