public String toString() { StringBuilder ret=new StringBuilder(); ret.append("corr_id=" + corrId + ", type="); switch(type) { case REQ: ret.append("REQ"); break; case RSP: ret.append("RSP"); break; case EXC_RSP: ret.append("EXC_RSP"); break; default: ret.append("<unknown>"); } ret.append(", req_id=" + req_id).append(", rsp_expected=" + rspExpected()); return ret.toString(); }
/** Handle a request msg for this correlator */ protected void handleRequest(Message req, Header hdr) { Object retval; boolean threw_exception=false; if(log.isTraceEnabled()) log.trace("calling (%s) with request %d", request_handler != null? request_handler.getClass().getName() : "null", hdr.req_id); if(async_dispatching && request_handler != null) { Response rsp=hdr.rspExpected()? new ResponseImpl(req, hdr.req_id) : null; try { request_handler.handle(req, rsp); } catch(Throwable t) { if(rsp != null) rsp.send(wrap_exceptions ? new InvocationTargetException(t) : t, true); else log.error("%s: failed dispatching request asynchronously: %s", local_addr, t); } return; } try { retval=request_handler.handle(req); } catch(Throwable t) { threw_exception=true; retval=wrap_exceptions ? new InvocationTargetException(t) : t; } if(hdr.rspExpected()) sendReply(req, hdr.req_id, retval, threw_exception); }
private Object handle(Message message) { Header header = (Header) message.getHeader(this.id); // If this is a request expecting a response, don't leave the requester hanging - send an identifiable response on which it can filter if ((header != null) && (header.type == Header.REQ) && header.rspExpected()) { Message response = message.makeReply().setFlag(message.getFlags()).clearFlag(Message.Flag.RSVP, Message.Flag.INTERNAL); response.putHeader(FORK.ID, message.getHeader(FORK.ID)); response.putHeader(this.id, new Header(Header.RSP, header.req_id, header.corrId)); response.setBuffer(UNKNOWN_FORK_RESPONSE.array()); fork.getProtocolStack().getChannel().down(response); } return null; } });
/** Handle a request msg for this correlator */ protected void handleRequest(Message req, Header hdr) { Object retval; boolean threw_exception=false; if(log.isTraceEnabled()) log.trace("calling (%s) with request %d", request_handler != null? request_handler.getClass().getName() : "null", hdr.req_id); if(async_dispatching && request_handler != null) { Response rsp=hdr.rspExpected()? new ResponseImpl(req, hdr.req_id) : null; try { request_handler.handle(req, rsp); } catch(Throwable t) { if(rsp != null) rsp.send(wrap_exceptions ? new InvocationTargetException(t) : t, true); else log.error("%s: failed dispatching request asynchronously: %s", local_addr, t); } return; } try { retval=request_handler.handle(req); } catch(Throwable t) { threw_exception=true; retval=wrap_exceptions ? new InvocationTargetException(t) : t; } if(hdr.rspExpected()) sendReply(req, hdr.req_id, retval, threw_exception); }
public String toString() { StringBuilder ret=new StringBuilder(); ret.append("corr_id=" + corrId + ", type="); switch(type) { case REQ: ret.append("REQ"); break; case RSP: ret.append("RSP"); break; case EXC_RSP: ret.append("EXC_RSP"); break; default: ret.append("<unknown>"); } ret.append(", req_id=" + req_id).append(", rsp_expected=" + rspExpected()); return ret.toString(); }
private Object handle(Message message) { Header header = message.getHeader(this.id); // If this is a request expecting a response, don't leave the requester hanging - send an identifiable response on which it can filter if ((header != null) && (header.type == Header.REQ) && header.rspExpected()) { Message response = message.makeReply().setFlag(message.getFlags()).clearFlag(Message.Flag.RSVP); response.putHeader(FORK.ID, message.getHeader(FORK.ID)); response.putHeader(this.id, new Header(Header.RSP, header.req_id, this.id)); response.setBuffer(UNKNOWN_FORK_RESPONSE.array()); channel.down(response); } return null; } };
private Object handle(Message message) { Header header = (Header) message.getHeader(this.id); // If this is a request expecting a response, don't leave the requester hanging - send an identifiable response on which it can filter if ((header != null) && (header.type == Header.REQ) && header.rspExpected()) { Message response = message.makeReply().setFlag(message.getFlags()).clearFlag(Message.Flag.RSVP, Message.Flag.INTERNAL); response.putHeader(FORK.ID, message.getHeader(FORK.ID)); response.putHeader(this.id, new Header(Header.RSP, header.req_id, header.corrId)); response.setBuffer(UNKNOWN_FORK_RESPONSE.array()); fork.getProtocolStack().getChannel().down(response); } return null; } });