Author: ningjiang
Date: Tue Mar 16 05:14:03 2010
New Revision: 923583
URL: http://svn.apache.org/viewvc?rev=923583&view=rev
Log:
CAMEL-2551 Fixed the PipedInputStream of camel-file component
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileOperations.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileOperations.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileOperations.java?rev=923583&r1=923582&r2=923583&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileOperations.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileOperations.java
Tue Mar 16 05:14:03 2010
@@ -271,18 +271,13 @@ public class FileOperations implements G
int size = endpoint.getBufferSize();
byte[] buffer = new byte[size];
ByteBuffer byteBuffer = ByteBuffer.wrap(buffer);
- while (true) {
- int count = in.read(buffer);
- if (count <= 0) {
- break;
- } else if (count < size) {
- byteBuffer = ByteBuffer.wrap(buffer, 0, count);
- out.write(byteBuffer);
- break;
- } else {
- out.write(byteBuffer);
- byteBuffer.clear();
+ int bytesRead;
+ while ((bytesRead = in.read(buffer)) != -1) {
+ if (bytesRead < size) {
+ byteBuffer.limit(bytesRead);
}
+ out.write(byteBuffer);
+ byteBuffer.clear();
}
} finally {
ObjectHelper.close(in, target.getName(), LOG);