You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by hs...@apache.org on 2012/07/19 00:24:12 UTC
svn commit: r1363157 -
/flume/trunk/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java
Author: hshreedharan
Date: Wed Jul 18 22:24:11 2012
New Revision: 1363157
URL: http://svn.apache.org/viewvc?rev=1363157&view=rev
Log:
FLUME-1380. File channel log can record the op code and not the operation in some cases.
(Arvind Prabhakar via Hari Shreedharan)
Modified:
flume/trunk/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java
Modified: flume/trunk/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java
URL: http://svn.apache.org/viewvc/flume/trunk/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java?rev=1363157&r1=1363156&r2=1363157&view=diff
==============================================================================
--- flume/trunk/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java (original)
+++ flume/trunk/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java Wed Jul 18 22:24:11 2012
@@ -195,10 +195,14 @@ class LogFile {
Preconditions.checkArgument(expectedLength < (long) Integer.MAX_VALUE);
int offset = (int)length;
Preconditions.checkState(offset > 0);
- preallocate(1 + buffer.capacity());
- writeFileHandle.writeByte(OP_RECORD);
- int wrote = writeFileChannel.write(buffer);
- Preconditions.checkState(wrote == buffer.limit());
+ int recordLength = 1 + buffer.capacity();
+ preallocate(recordLength);
+ ByteBuffer toWrite = ByteBuffer.allocate(recordLength);
+ toWrite.put(OP_RECORD);
+ toWrite.put(buffer);
+ toWrite.position(0);
+ int wrote = writeFileChannel.write(toWrite);
+ Preconditions.checkState(wrote == toWrite.limit());
return Pair.of(fileID, offset);
}
private void preallocate(int size) throws IOException {