@Test(timeOut = 20000) void updatingCursorNode() throws Exception { final MetaStore store = new MetaStoreImplZookeeper(zkc, executor); zkc.create("/managed-ledgers/my_test", "".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); final CountDownLatch latch = new CountDownLatch(1); ManagedCursorInfo info = ManagedCursorInfo.newBuilder().setCursorsLedgerId(1).build(); store.asyncUpdateCursorInfo("my_test", "c1", info, null, new MetaStoreCallback<Void>() { public void operationFailed(MetaStoreException e) { fail("should have succeeded"); } public void operationComplete(Void result, Stat version) { // Update again using the version zkc.failNow(Code.CONNECTIONLOSS); ManagedCursorInfo info = ManagedCursorInfo.newBuilder().setCursorsLedgerId(2).build(); store.asyncUpdateCursorInfo("my_test", "c1", info, version, new MetaStoreCallback<Void>() { public void operationFailed(MetaStoreException e) { // ok latch.countDown(); } @Override public void operationComplete(Void result, Stat version) { fail("should have failed"); } }); } }); latch.await(); }
public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo other) { if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.getDefaultInstance()) return this; if (other.hasCursorsLedgerId()) { setCursorsLedgerId(other.getCursorsLedgerId()); setMarkDeleteLedgerId(other.getMarkDeleteLedgerId()); setMarkDeleteEntryId(other.getMarkDeleteEntryId()); bitField0_ = (bitField0_ & ~0x00000008); } else { ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.addAll(other.individualDeletedMessages_); onChanged(); individualDeletedMessagesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getIndividualDeletedMessagesFieldBuilder() : null; } else { individualDeletedMessagesBuilder_.addAllMessages(other.individualDeletedMessages_); bitField0_ = (bitField0_ & ~0x00000010); } else { ensurePropertiesIsMutable(); properties_.addAll(other.properties_); onChanged(); propertiesBuilder_ =
public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo other) { if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.getDefaultInstance()) return this; if (other.hasCursorsLedgerId()) { setCursorsLedgerId(other.getCursorsLedgerId()); setMarkDeleteLedgerId(other.getMarkDeleteLedgerId()); setMarkDeleteEntryId(other.getMarkDeleteEntryId()); bitField0_ = (bitField0_ & ~0x00000008); } else { ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.addAll(other.individualDeletedMessages_); onChanged(); individualDeletedMessagesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getIndividualDeletedMessagesFieldBuilder() : null; } else { individualDeletedMessagesBuilder_.addAllMessages(other.individualDeletedMessages_); bitField0_ = (bitField0_ & ~0x00000010); } else { ensurePropertiesIsMutable(); properties_.addAll(other.properties_); onChanged(); propertiesBuilder_ =
public Builder mergeFrom(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo other) { if (other == org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedCursorInfo.getDefaultInstance()) return this; if (other.hasCursorsLedgerId()) { setCursorsLedgerId(other.getCursorsLedgerId()); setMarkDeleteLedgerId(other.getMarkDeleteLedgerId()); setMarkDeleteEntryId(other.getMarkDeleteEntryId()); bitField0_ = (bitField0_ & ~0x00000008); } else { ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.addAll(other.individualDeletedMessages_); onChanged(); individualDeletedMessagesBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getIndividualDeletedMessagesFieldBuilder() : null; } else { individualDeletedMessagesBuilder_.addAllMessages(other.individualDeletedMessages_); this.mergeUnknownFields(other.getUnknownFields()); return this;
private void persistPositionMetaStore(long cursorsLedgerId, PositionImpl position, Map<String, Long> properties, MetaStoreCallback<Void> callback, boolean persistIndividualDeletedMessageRanges) { // When closing we store the last mark-delete position in the z-node itself, so we won't need the cursor ledger, // hence we write it as -1. The cursor ledger is deleted once the z-node write is confirmed. ManagedCursorInfo.Builder info = ManagedCursorInfo.newBuilder() // .setCursorsLedgerId(cursorsLedgerId) // .setMarkDeleteLedgerId(position.getLedgerId()) // .setMarkDeleteEntryId(position.getEntryId()) // .setLastActive(lastActive); // info.addAllProperties(buildPropertiesMap(properties)); if (persistIndividualDeletedMessageRanges) { info.addAllIndividualDeletedMessages(buildIndividualDeletedMessageRanges()); } if (log.isDebugEnabled()) { log.debug("[{}][{}] Closing cursor at md-position: {}", ledger.getName(), name, position); } ledger.getStore().asyncUpdateCursorInfo(ledger.getName(), name, info.build(), cursorLedgerStat, new MetaStoreCallback<Void>() { @Override public void operationComplete(Void result, Stat stat) { cursorLedgerStat = stat; callback.operationComplete(result, stat); } @Override public void operationFailed(MetaStoreException e) { callback.operationFailed(e); } }); }
private void persistPositionMetaStore(long cursorsLedgerId, PositionImpl position, MetaStoreCallback<Void> callback) { // When closing we store the last mark-delete position in the z-node itself, so we won't need the cursor ledger, // hence we write it as -1. The cursor ledger is deleted once the z-node write is confirmed. ManagedCursorInfo.Builder info = ManagedCursorInfo.newBuilder() // .setCursorsLedgerId(cursorsLedgerId) // .setMarkDeleteLedgerId(position.getLedgerId()) // .setMarkDeleteEntryId(position.getEntryId()); // if (protobufFormat == ZNodeProtobufFormat.Binary) { info.addAllIndividualDeletedMessages(buildIndividualDeletedMessageRanges()); } if (log.isDebugEnabled()) { log.debug("[{}][{}] Closing cursor at md-position: {}", ledger.getName(), name, markDeletePosition); } ledger.getStore().asyncUpdateCursorInfo(ledger.getName(), name, info.build(), cursorLedgerStat, new MetaStoreCallback<Void>() { @Override public void operationComplete(Void result, Stat stat) { callback.operationComplete(result, stat); } @Override public void operationFailed(MetaStoreException e) { callback.operationFailed(e); } }); }
/** * <code>repeated .MessageRange individualDeletedMessages = 4;</code> */ public Builder addIndividualDeletedMessages( int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) { if (individualDeletedMessagesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.add(index, value); onChanged(); } else { individualDeletedMessagesBuilder_.addMessage(index, value); } return this; } /**
/** * <code>repeated .MessageRange individualDeletedMessages = 4;</code> */ public Builder setIndividualDeletedMessages( int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) { if (individualDeletedMessagesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.set(index, value); onChanged(); } else { individualDeletedMessagesBuilder_.setMessage(index, value); } return this; } /**
/** * <code>repeated .MessageRange individualDeletedMessages = 4;</code> */ public Builder addIndividualDeletedMessages(org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) { if (individualDeletedMessagesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.add(value); onChanged(); } else { individualDeletedMessagesBuilder_.addMessage(value); } return this; } /**
/** * <code>repeated .MessageRange individualDeletedMessages = 4;</code> */ public Builder addAllIndividualDeletedMessages( java.lang.Iterable<? extends org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange> values) { if (individualDeletedMessagesBuilder_ == null) { ensureIndividualDeletedMessagesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, individualDeletedMessages_); onChanged(); } else { individualDeletedMessagesBuilder_.addAllMessages(values); } return this; } /**
public final boolean isInitialized() { if (!hasCursorsLedgerId()) { return false; } for (int i = 0; i < getIndividualDeletedMessagesCount(); i++) { if (!getIndividualDeletedMessages(i).isInitialized()) { return false; } } for (int i = 0; i < getPropertiesCount(); i++) { if (!getProperties(i).isInitialized()) { return false; } } return true; }
public Builder addIndividualDeletedMessages( int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) { if (individualDeletedMessagesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.add(index, value); onChanged(); } else { individualDeletedMessagesBuilder_.addMessage(index, value); } return this; } public Builder addIndividualDeletedMessages(
/** * <code>repeated .MessageRange individualDeletedMessages = 4;</code> */ public Builder addIndividualDeletedMessages( int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) { if (individualDeletedMessagesBuilder_ == null) { ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.add(index, builderForValue.build()); onChanged(); } else { individualDeletedMessagesBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
public Builder setIndividualDeletedMessages( int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange value) { if (individualDeletedMessagesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.set(index, value); onChanged(); } else { individualDeletedMessagesBuilder_.setMessage(index, value); } return this; } public Builder setIndividualDeletedMessages(
/** * <code>repeated .MessageRange individualDeletedMessages = 4;</code> */ public Builder addIndividualDeletedMessages( org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) { if (individualDeletedMessagesBuilder_ == null) { ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.add(builderForValue.build()); onChanged(); } else { individualDeletedMessagesBuilder_.addMessage(builderForValue.build()); } return this; } /**
/** * <code>repeated .MessageRange individualDeletedMessages = 4;</code> */ public Builder setIndividualDeletedMessages( int index, org.apache.bookkeeper.mledger.proto.MLDataFormats.MessageRange.Builder builderForValue) { if (individualDeletedMessagesBuilder_ == null) { ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.set(index, builderForValue.build()); onChanged(); } else { individualDeletedMessagesBuilder_.setMessage(index, builderForValue.build()); } return this; } /**
private static Builder create() { return new Builder(); }
public Builder clone() { return create().mergeFrom(buildPartial()); }
/** * <code>repeated .MessageRange individualDeletedMessages = 4;</code> */ public Builder removeIndividualDeletedMessages(int index) { if (individualDeletedMessagesBuilder_ == null) { ensureIndividualDeletedMessagesIsMutable(); individualDeletedMessages_.remove(index); onChanged(); } else { individualDeletedMessagesBuilder_.remove(index); } return this; } /**