[ 
https://issues.apache.org/jira/browse/DIRMINA-996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16855808#comment-16855808
 ] 

Emmanuel Lecharny commented on DIRMINA-996:
-------------------------------------------

The {{ExpiringMap}} could use a {{Map<SocketSessdion>}} as a value, so an 
expiring session would be find doing a fetch from the encapsulating {{Map}} 
then another fetch from the internal {{Map}} to get the {{IoSession}} that 
expired.

Another option would be to create a key that is a concatenation of the local 
and remote address.

> IoSessionRecycler RemoteAddress Collision
> -----------------------------------------
>
>                 Key: DIRMINA-996
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-996
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.7
>            Reporter: Flavio Battimo
>            Assignee: Jonathan Valliere
>            Priority: Critical
>             Fix For: 2.1.4
>
>
> When using NioDatagramAcceptor with multiple binded local addresses the 
> IoSessionRecycler is not working as expected.
> If the acceptor has been prefilled with two sessions:
> remoteaddr=192.168.1.10:2001 localaddr=192.168.1.20:1000
> remoteaddr=192.168.1.10:2001 localaddr=192.168.1.20:1001
> so with same remote address but different local address, when the recycle 
> method of IoSessionRecycler interface is called only remote address is 
> passed. The recycler returns the same IoSession for incoming datagrams on two 
> different local addresses of the same acceptor.
> The IoSessionRecycler should have the local address parameter also in order 
> to find the correct IoSession.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org

Reply via email to