@Override public void onConnectionRemoteClose(Event event) { // Code_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_34_032: [This function shall close the transport tail] event.getTransport().close_tail(); }
_transport.close_tail(); _inputDone = true; } else if (bytesRead > 0) {
int bytesRead = _channel.read(tail); if (bytesRead < 0) { _transport.close_tail(); _inputDone = true; } else if (bytesRead > 0) {
if (transport != null) { transport.setCondition(condition); transport.close_tail(); transport.close_head(); transport.pop(transport.pending());
if (transport != null) { transport.setCondition(condition); transport.close_tail(); transport.close_head(); transport.pop(Math.max(0, transport.pending())); // Force generation of TRANSPORT_HEAD_CLOSE (not in C code)
condition.setDescription(ioException.getMessage()); transport.setCondition(condition); transport.close_tail(); transport.close_head();
condition.setDescription(exception.getMessage()); transport.setCondition(condition); transport.close_tail(); transport.close_head(); transport.pop(Math.max(0, transport.pending())); // Force generation of TRANSPORT_HEAD_CLOSE (not in C code)
@Override public void run(Selectable selectable) { Reactor reactor = selectable.getReactor(); Transport transport = ((SelectableImpl)selectable).getTransport(); int capacity = transport.capacity(); if (capacity > 0) { SocketChannel socketChannel = (SocketChannel)selectable.getChannel(); try { int n = socketChannel.read(transport.tail()); if (n == -1) { transport.close_tail(); } else { transport.process(); } } catch (IOException | TransportException e) { ErrorCondition condition = new ErrorCondition(); condition.setCondition(Symbol.getSymbol("proton:io")); condition.setDescription(e.getMessage()); transport.setCondition(condition); transport.close_tail(); } } // (Comment from C code:) occasionally transport events aren't // generated when expected, so the following hack ensures we // always update the selector update(selectable); reactor.update(selectable); } };
@Override public void run(Selectable selectable) { Reactor reactor = selectable.getReactor(); Transport transport = ((SelectableImpl)selectable).getTransport(); int capacity = transport.capacity(); if (capacity > 0) { SocketChannel socketChannel = (SocketChannel)selectable.getChannel(); try { int n = socketChannel.read(transport.tail()); if (n == -1) { transport.close_tail(); } else { transport.process(); } } catch (IOException e) { ErrorCondition condition = new ErrorCondition(); condition.setCondition(Symbol.getSymbol("proton:io")); condition.setDescription(e.getMessage()); transport.setCondition(condition); transport.close_tail(); } } // (Comment from C code:) occasionally transport events aren't // generated when expected, so the following hack ensures we // always update the selector update(selectable); reactor.update(selectable); } };
engineConnection.transport.close_tail(); engineConnection.requestor.tell(new DisconnectNotification( engineConnection, ce.cause), this);