in src/main/java/com/googlesource/gerrit/plugins/websession/broker/BrokerBasedWebSessionCache.java [252:287]
public void run() {
try (ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(out)) {
objectOutputStream.writeObject(value);
out.flush();
byte[] serializedObject = out.toByteArray();
WebSessionEvent webSessionEvent = new WebSessionEvent(key, serializedObject, operation);
webSessionEvent.instanceId = instanceId;
ListenableFuture<Boolean> resultF =
brokerApi.get().send(webSessionTopicName, webSessionEvent);
Futures.addCallback(
resultF,
new FutureCallback<Boolean>() {
@Override
public void onSuccess(Boolean aBoolean) {
webSessionLogger.log(
Direction.PUBLISH,
webSessionTopicName,
webSessionEvent,
Optional.ofNullable(value));
}
@Override
public void onFailure(Throwable throwable) {
logger.atSevere().log(
"Cannot send web-session message for '%s Topic: '%s'",
key, webSessionTopicName);
}
},
MoreExecutors.directExecutor());
} catch (IOException e) {
logger.atSevere().withCause(e).log(
"Cannot serialize event for account id '%s': [Exception: %s]", value.getAccountId());
}
}