@Override public void publish(E payload) { try { Data data = nodeEngine.toData(payload); ReliableTopicMessage message = new ReliableTopicMessage(data, thisAddress); switch (overloadPolicy) { case ERROR: addOrFail(message); break; case DISCARD_OLDEST: addOrOverwrite(message); break; case DISCARD_NEWEST: ringbuffer.addAsync(message, OverflowPolicy.FAIL).get(); break; case BLOCK: addWithBackoff(message); break; default: throw new IllegalArgumentException("Unknown overloadPolicy:" + overloadPolicy); } localTopicStats.incrementPublishes(); } catch (Exception e) { throw (RuntimeException) peel(e, null, "Failed to publish message: " + payload + " to topic:" + getName()); } }
@Override public void publish(E payload) { try { Data data = nodeEngine.toData(payload); ReliableTopicMessage message = new ReliableTopicMessage(data, thisAddress); switch (overloadPolicy) { case ERROR: addOrFail(message); break; case DISCARD_OLDEST: addOrOverwrite(message); break; case DISCARD_NEWEST: ringbuffer.addAsync(message, OverflowPolicy.FAIL).get(); break; case BLOCK: addWithBackoff(message); break; default: throw new IllegalArgumentException("Unknown overloadPolicy:" + overloadPolicy); } localTopicStats.incrementPublishes(); } catch (Exception e) { throw (RuntimeException) peel(e, null, "Failed to publish message: " + payload + " to topic:" + getName()); } }