throw new SCMPValidatorException("Publish message is missing.");
}
synchronized (this.scServer) {
this.requester.getSCMPMsgSequenceNr().incrementAndGetMsgSequenceNr();
// get lock on scServer - only one server is allowed to communicate over the initial connection
SCMPPublishCall publishCall = new SCMPPublishCall(this.requester, serviceName);
publishCall.setRequestBody(publishMessage.getData());
publishCall.setMask(publishMessage.getMask());
publishCall.setPartSize(publishMessage.getPartSize());
publishCall.setMessageInfo(publishMessage.getMessageInfo());
publishCall.setCacheMethod(publishMessage.getCachingMethod().getValue());
publishCall.setCacheId(publishMessage.getCacheId());
SCServerCallback callback = new SCServerCallback(true);
try {
publishCall.invoke(callback, operationTimeoutSeconds * Constants.SEC_TO_MILLISEC_FACTOR);
} catch (Exception e) {
throw new SCServiceException("Publish failed. ", e);
}
SCMPMessage message = callback.getMessageSync(operationTimeoutSeconds * Constants.SEC_TO_MILLISEC_FACTOR);
if (message.isFault()) {