[ https://issues.apache.org/jira/browse/SSHD-961?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lyor Goldstein reassigned SSHD-961: ----------------------------------- Assignee: Lyor Goldstein > Not all messages are correctly handled in port forwarding mode > -------------------------------------------------------------- > > Key: SSHD-961 > URL: https://issues.apache.org/jira/browse/SSHD-961 > Project: MINA SSHD > Issue Type: Bug > Affects Versions: 2.3.1 > Reporter: Fulvio Cavarretta > Assignee: Lyor Goldstein > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > There are some race conditions so that in port forwarding mode, not all > messages are correctly managed during connections phase, leading to > _NullPointerException_ > > The problem is caused in > {noformat} > DefaultForwardingFilter.messageReceived{noformat} > where > {code:java} > OpenFuture future = channel.getOpenFuture(); > Consumer<Throwable> errHandler = future.isOpened() ? null : e -> { > try { > exceptionCaught(session, e); > } catch (Exception err) { > log.warn("messageReceived({}) failed ({}) to signal > {}[{}] on channel={}: {}", > session, err.getClass().getSimpleName(), > e.getClass().getSimpleName(), > e.getMessage(), channel, err.getMessage()); > } > }; > ClientChannelPendingMessagesQueue messagesQueue = > channel.getPendingMessagesQueue(); > {code} > should be > {code:java} > ClientChannelPendingMessagesQueue messagesQueue = > channel.getPendingMessagesQueue(); > > OpenFuture future = messagesQueue.getCompletedFuture(); > Consumer<Throwable> errHandler = future.isOpened() ? null : e -> { > try { > exceptionCaught(session, e); > } catch (Exception err) { > log.warn("messageReceived({}) failed ({}) to signal > {}[{}] on channel={}: {}", > session, err.getClass().getSimpleName(), > e.getClass().getSimpleName(), > e.getMessage(), channel, err.getMessage()); > } > }; > {code} > Since the _ClientChannelPendingMessagesQueue_ is a listener of the channel's > OpenFuture, this latter can be in open state but the > ClientChannelPendingMessagesQueue's completed feature could be not, so that > messages won't be correctly handled and a _null_ _errHandler_ is passed to > _ClientChannelPendingMessagesQueue.handleIncomingMessage_ > > -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org For additional commands, e-mail: dev-h...@mina.apache.org