You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by iv...@apache.org on 2012/06/29 18:43:58 UTC
svn commit: r1355467 - in /zookeeper/bookkeeper/trunk: CHANGES.txt
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java
Author: ivank
Date: Fri Jun 29 16:43:54 2012
New Revision: 1355467
URL: http://svn.apache.org/viewvc?rev=1355467&view=rev
Log:
BOOKKEEPER-280: LedgerHandle.addEntry() should return an entryId (mmerli via ivank)
Modified:
zookeeper/bookkeeper/trunk/CHANGES.txt
zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java
Modified: zookeeper/bookkeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/CHANGES.txt?rev=1355467&r1=1355466&r2=1355467&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/CHANGES.txt (original)
+++ zookeeper/bookkeeper/trunk/CHANGES.txt Fri Jun 29 16:43:54 2012
@@ -28,6 +28,8 @@ Trunk (unreleased changes)
BOOKKEEPER-322: New protobufs generates findbugs errors (ivank)
+ BOOKKEEPER-280: LedgerHandle.addEntry() should return an entryId (mmerli via ivank)
+
hedwig-client:
BOOKKEEPER-274: Hedwig cpp client library should not link to cppunit which is just used for test. (sijie via ivank)
Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java?rev=1355467&r1=1355466&r2=1355467&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java Fri Jun 29 16:43:54 2012
@@ -387,9 +387,10 @@ public class LedgerHandle {
*
* @param data
* array of bytes to be written to the ledger
+ * @return the entryId of the new inserted entry
*/
- public void addEntry(byte[] data) throws InterruptedException, BKException {
- addEntry(data, 0, data.length);
+ public long addEntry(byte[] data) throws InterruptedException, BKException {
+ return addEntry(data, 0, data.length);
}
/**
@@ -401,24 +402,24 @@ public class LedgerHandle {
* offset from which to take bytes from data
* @param length
* number of bytes to take from data
+ * @return the entryId of the new inserted entry
*/
- public void addEntry(byte[] data, int offset, int length)
+ public long addEntry(byte[] data, int offset, int length)
throws InterruptedException, BKException {
LOG.debug("Adding entry {}", data);
SyncCounter counter = new SyncCounter();
counter.inc();
- asyncAddEntry(data, offset, length, new SyncAddCallback(), counter);
+ SyncAddCallback callback = new SyncAddCallback();
+ asyncAddEntry(data, offset, length, callback, counter);
counter.block(0);
if (counter.getrc() != BKException.Code.OK) {
throw BKException.create(counter.getrc());
}
- if(counter.getrc() != BKException.Code.OK) {
- throw BKException.create(counter.getrc());
- }
+ return callback.entryId;
}
/**
@@ -823,6 +824,8 @@ public class LedgerHandle {
}
private static class SyncAddCallback implements AddCallback {
+ long entryId = -1;
+
/**
* Implementation of callback interface for synchronous read method.
*
@@ -837,7 +840,8 @@ public class LedgerHandle {
*/
public void addComplete(int rc, LedgerHandle lh, long entry, Object ctx) {
SyncCounter counter = (SyncCounter) ctx;
-
+
+ this.entryId = entry;
counter.setrc(rc);
counter.dec();
}
Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java?rev=1355467&r1=1355466&r2=1355467&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java Fri Jun 29 16:43:54 2012
@@ -52,12 +52,12 @@ class ReadOnlyLedgerHandle extends Ledge
}
@Override
- public void addEntry(byte[] data) throws InterruptedException, BKException {
- addEntry(data, 0, data.length);
+ public long addEntry(byte[] data) throws InterruptedException, BKException {
+ return addEntry(data, 0, data.length);
}
@Override
- public void addEntry(byte[] data, int offset, int length)
+ public long addEntry(byte[] data, int offset, int length)
throws InterruptedException, BKException {
LOG.error("Tried to add entry on a Read-Only ledger handle, ledgerid=" + ledgerId);
throw BKException.create(BKException.Code.IllegalOpException);