lhotari commented on code in PR #4038:
URL: https://github.com/apache/bookkeeper/pull/4038#discussion_r1477999505


##########
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BufferedReadChannel.java:
##########
@@ -64,10 +71,22 @@ public int read(ByteBuf dest, long pos) throws IOException {
         return read(dest, pos, dest.writableBytes());
     }
 
+    @Override
+    public long size() throws IOException {
+        if (sealed) {
+            if (fileSize == -1) {
+                fileSize = validateAndGetFileChannel().size();
+            }
+            return fileSize;
+        } else {
+            return validateAndGetFileChannel().size();
+        }
+    }

Review Comment:
   Would there be a benefit to override this logic in `BufferedChannel` class 
where the `position` (and possibly `unpersistedBytes`) field information would 
be leveraged? Doesn't `position` contain the file size when it's writable?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to