public boolean isReceived(Address sender) { Rsp<T> rsp=get(sender); return rsp != null && rsp.wasReceived(); }
public String toString() { StringBuilder sb=new StringBuilder(); if(value != null) { if(!hasException()) sb.append("value=").append(value); else sb.append("exception=").append(getException()); sb.append(", "); } sb.append("received=").append(wasReceived()).append(", suspected=").append(wasSuspected()); if(wasUnreachable()) sb.append(" (unreachable)"); return sb.toString(); } }
/** * Returns the results from non-suspected members that are not null. */ public List<T> getResults() { return values().stream().filter(rsp -> rsp.wasReceived() && rsp.getValue() != null) .collect(() -> new ArrayList<>(size()), (list,rsp) -> list.add(rsp.getValue()), (l,r) -> {}); }
lock.lock(); try { if(!(rsp.wasReceived() || rsp.wasSuspected())) num_received++;
/** Marks all responses with an exception (unless a response was already marked as done) */ public void transportClosed() { boolean changed=false; lock.lock(); try { for(Map.Entry<Address, Rsp<T>> entry: rsps.entrySet()) { Rsp<T> rsp=entry.getValue(); if(rsp != null && !(rsp.wasReceived() || rsp.wasSuspected() || rsp.wasUnreachable())) { rsp.setException(new IllegalStateException("transport was closed")); num_received++; changed=true; } } if(changed && responsesComplete()) { complete(this.rsps); corrDone(); } } finally { lock.unlock(); } }
Rsp<T> rsp=entry.getValue(); if(rsp.setSuspected()) { if(!(rsp.wasReceived() || rsp.wasUnreachable())) num_received++; changed=true;
lock.lock(); try { if(!rsp.wasReceived()) { if(!(rsp.wasSuspected() || rsp.wasUnreachable())) num_received++;
public boolean isReceived(Address sender) { Rsp<T> rsp=get(sender); return rsp != null && rsp.wasReceived(); }
/** * Returns the results from non-suspected members that are not null. */ public Vector getResults() { Vector ret=new Vector(); Rsp rsp; Object val; for(Iterator it=values().iterator(); it.hasNext();) { rsp=(Rsp)it.next(); if(rsp.wasReceived() && (val=rsp.getValue()) != null) ret.addElement(val); } return ret; }
public String toString() { StringBuilder sb=new StringBuilder(); if(value != null) { if(!hasException()) sb.append("value=").append(value); else sb.append("exception=").append(getException()); sb.append(", "); } sb.append("received=").append(wasReceived()).append(", suspected=").append(wasSuspected()); if(wasUnreachable()) sb.append(" (unreachable)"); return sb.toString(); } }
/** * Returns the results from non-suspected members that are not null. */ public List<T> getResults() { return values().stream().filter(rsp -> rsp.wasReceived() && rsp.getValue() != null) .collect(() -> new ArrayList<>(size()), (list,rsp) -> list.add(rsp.getValue()), (l,r) -> {}); }
/** * <b>Callback</b> (called by RequestCorrelator or Transport). * Adds a response to the response table. When all responses have been received, * <code>execute()</code> returns. */ public void receiveResponse(Object response_value, Address sender) { if(done) { if(log.isWarnEnabled()) log.warn("command is done; cannot add response !"); return; } if(suspects.contains(sender)) { if(log.isWarnEnabled()) log.warn("received response from suspected member " + sender + "; discarding"); return; } synchronized(requests) { Rsp rsp=requests.get(sender); if(rsp != null) { if(rsp.wasReceived() == false) { rsp.setValue(response_value); rsp.setReceived(true); if(log.isTraceEnabled()) log.trace(new StringBuffer("received response for request ").append(req_id).append(", sender="). append(sender).append(", val=").append(response_value)); requests.notifyAll(); // wakes up execute() } } } }
if(response.wasReceived())
private boolean containsOnlyNulls(RspList l) { for (Rsp r : l.values()) { if (r.getValue() != null || !r.wasReceived() || r.wasSuspected()) return false; } return true; }
lock.lock(); try { if(!(rsp.wasReceived() || rsp.wasSuspected())) num_received++;
/** Marks all responses with an exception (unless a response was already marked as done) */ public void transportClosed() { boolean changed=false; lock.lock(); try { for(Map.Entry<Address, Rsp<T>> entry: rsps.entrySet()) { Rsp<T> rsp=entry.getValue(); if(rsp != null && !(rsp.wasReceived() || rsp.wasSuspected() || rsp.wasUnreachable())) { rsp.setException(new IllegalStateException("transport was closed")); num_received++; changed=true; } } if(changed && responsesComplete()) { complete(this.rsps); corrDone(); } } finally { lock.unlock(); } }
if (response.wasReceived() && !response.wasSuspected()) { results.put(new AddressMember(entry.getKey()), new RspCommandResponse<>(response));
private <T> List<T> processResponseList(RspList<T> rspList, String serviceName, String methodName, Object[] args, boolean trace) { List<T> result = new ArrayList<T>(rspList.size()); if (rspList != null) { for (Rsp<T> response : rspList.values()) { // Only include successful received responses if (response.hasException()) { Throwable e = response.getException(); ClusteringImplLogger.ROOT_LOGGER.debugf(e, "%s invocation failure from %s: %s(%s)", serviceName, response.getSender(), methodName, (args != null) ? Arrays.asList(args) : ""); } else if (response.wasReceived()) { result.add(response.getValue()); } else if (trace) { ClusteringImplLogger.ROOT_LOGGER.tracef("Ignoring non-received response: %s", response); } } } return result; }
if (!response.wasReceived()) {
lock.lock(); try { if(!rsp.wasReceived()) { if(!(rsp.wasSuspected() || rsp.wasUnreachable())) num_received++;