@Override public T get() throws InterruptedException, ExecutionException { try { return in.get(timeout, unit); } catch (TimeoutException e) { throw new ExecutionException(e.getCause()); } }
/** * Process the return value and reply back. When exceptions raises they will be logged and set a * return value accordingly. * * @param timeout * @param unit * @return VDSReturnValue * @throws TimeoutException */ @Override public VDSReturnValue get(long timeout, TimeUnit unit) throws TimeoutException { try { status = new StatusOnlyReturnForXmlRpc(httpTask.get(timeout, unit)); ProceedProxyReturnValue(); } catch (TimeoutException e) { httpTask.cancel(true); setVdsNetworkError(new VDSNetworkException(new RuntimeException(e.getCause()))); log.error("Timeout waiting for VDSM response. " + e); throw e; } catch (Exception e) { log.error(e); setVdsRuntimeError( e instanceof RuntimeException ? (RuntimeException) e : new RuntimeException(e)); } return getVDSReturnValue(); }
private SubscriberInfo registeMessageType(FetchRequest req) { SubscriberInfo info = this.topicSubcriberRegistry.get(req.getTopic()); if (info == null) { log.warn("query topic's[" + req.getTopic() + "] subscriberInfo is null."); return null; } Set<String> messageTypeList = info.getMessageTypes(); MessageTypeCommand mtCmd = new MessageTypeCommand( this.consumerConfig.getVersion(), this.consumerConfig.getGroup(), req.getTopic(), OpaqueGenerator.getNextOpaque(), messageTypeList, MetaMessageSessionFactory.startTime); try { ResponseCommand response = this.remotingClient.invokeToGroup( req.getBroker().getZKString(), mtCmd, this.consumerConfig.getFetchTimeoutInMills(), TimeUnit.MILLISECONDS); if (response instanceof BooleanCommand) { BooleanCommand bc = (BooleanCommand) response; if (bc.getCode() == HttpStatus.Success) { return info; } else { return null; } } } catch (InterruptedException e) { log.error("registe message type interrupted," + e.getMessage(), e.getCause()); } catch (TimeoutException e) { log.error("registe message type timeout," + e.getMessage(), e.getCause()); } catch (NotifyRemotingException e) { log.error("registe message type failed, " + e.getMessage(), e.getCause()); } return null; }