private void doNextWrite() { WriteRequest writeRequest; synchronized (writeRequests) { writeRequest = writeRequests.peek(); } if (writeRequest != null) { try { if (channelPutValueField == null) throw new RuntimeException("No 'value' field"); fromObject(channelPutValueField, writeRequest.getNewValue()); channelPut.put(false); } catch (Exception ex) { writeRequests.poll(); writeRequest.getCallback().channelWritten(ex); } } }