/** Get the MetaData.Response committed for this response. * This may differ from the meta data in this response for * exceptional responses (eg 4xx and 5xx responses generated * by the container) and the committedMetaData should be used * for logging purposes. * @return The committed MetaData or a {@link #newResponseMetaData()} * if not yet committed. */ public MetaData.Response getCommittedMetaData() { MetaData.Response meta = _channel.getCommittedMetaData(); if (meta==null) return newResponseMetaData(); return meta; }
/** Get the MetaData.Response committed for this response. * This may differ from the meta data in this response for * exceptional responses (eg 4xx and 5xx responses generated * by the container) and the committedMetaData should be used * for logging purposes. * @return The committed MetaData or a {@link #newResponseMetaData()} * if not yet committed. */ public MetaData.Response getCommittedMetaData() { MetaData.Response meta = _channel.getCommittedMetaData(); if (meta==null) return newResponseMetaData(); return meta; }
/** Get the MetaData.Response committed for this response. * This may differ from the meta data in this response for * exceptional responses (eg 4xx and 5xx responses generated * by the container) and the committedMetaData should be used * for logging purposes. * @return The committed MetaData or a {@link #newResponseMetaData()} * if not yet committed. */ public MetaData.Response getCommittedMetaData() { MetaData.Response meta = _channel.getCommittedMetaData(); if (meta==null) return newResponseMetaData(); return meta; }
protected boolean sendResponse(MetaData.Response info, ByteBuffer content, boolean complete, final Callback callback) { boolean committing = _committed.compareAndSet(false, true); if (committing) { // We need an info to commit if (info==null) info = _response.newResponseMetaData(); commit(info); // wrap callback to process 100 responses final int status=info.getStatus(); final Callback committed = (status<200&&status>=100)?new Commit100Callback(callback):new CommitCallback(callback); // committing write _transport.send(info, _request.isHead(), content, complete, committed); } else if (info==null) { // This is a normal write _transport.send(null,_request.isHead(), content, complete, callback); } else { callback.failed(new IllegalStateException("committed")); } return committing; }
info = _response.newResponseMetaData(); commit(info);