protected IRemoteCallObject responseData(long connectionId, final IRemoteCallObject callObj)
          throws RemoteCallException, EndOfConnectionException {
    //..handler answer from client (with error or not)
    IRemoteCallObject response = callObj.getResponseRemoteCallObject();
    if (callObj != null) {
      if (callObj.isError()) {
        //..if receipt error, re-throw it
        Object object = response.getDataObject().getData();
        if (!(object instanceof Exception)) {
          throw new IllegalArgumentException("Response data isn't Exception type");
        }
        throw new RemoteCallException((Exception)object);
      }
      else if (callObj.isDisconnect()) {
        //..if disconnected, throw EndOfConnectionException
        throw new EndOfConnectionException("Call <" + callObj.getMetaDataObject().getExecCommand() + "> is failure for disconnect");
      }
      else {
        //..receive the result to the call
        return response;
      }
    }
    else {
      //..receive null, not the result
      ISocketServerConnection ssc = getConnectionById(connectionId);
      if ((ssc != null) && (!ssc.isActive()))  {
        throw new EndOfConnectionException("End of connection for " + ssc.getRemoteAddress());
      }
      else {
        throw new IllegalArgumentException("CallObject result is null");
      }
    }
  }