@Override public void sendBlock(Block block) throws BCSAPIException { try (ConnectorSession session = connection.createSession()) { log.trace("send block " + block.getID()); ConnectorProducer blockProducer = session.createProducer(session.createTopic("newBlock")); ConnectorMessage m = session.createMessage(); m.setPayload(block.toBCSAPIMessage().toByteArray()); byte[] reply = synchronousRequest(session, blockProducer, m); if (reply != null) { try { BCSAPIMessage.ExceptionMessage em = BCSAPIMessage.ExceptionMessage.parseFrom(reply); throw new BCSAPIException(em.getMessage(0)); } catch (InvalidProtocolBufferException e) { throw new BCSAPIException("Invalid response", e); } } } catch (ConnectorException e) { throw new BCSAPIException(e); } }