Here are my findings (all on WinXP SP2, Java 1.5_08):
- v1.0.1 (lib + example SumUp): SumUp server starts up fine; when SumUp client connects messages are sent properly, but answers are not (see enclosed log).
- v1.0.1 (lib): on my own project (based on 0.9.5 SumUp client that connects to a non-Java UDP server) -- can send messages, but doesn't recieve any (like I had with the 0.9.5 lib)
I noticed some changes in the 1.0.x SumUp client. The filters are now added before the connect call (in the 0.9.5 it was done @ sessionCreated) and a specific DatagramConnector typed variable is used instead of the more general IoConnector (don't know why, but it doesn't seen to make a difference for my problem).
The only things I changed from the 1.0.x TCP SumUp example were:
- Client: changed SocketConnector and SocketConnectorConfig to DatagramConnector and DatagramConnectorConfig
- Client: commented out the connector.setWorkerTimeout(1); line
- Client: added the line session.getHandler().sessionOpened(session); right before the session.getCloseFuture().join() line to trigger the AddMessage send loop.
- Server: changed SocketAcceptor and SocketAcceptorConfig to DatagramAcceptor and DatagramAcceptorConfig
- Server: commented out the cfg.setReuseAddress(true); line
I also added some log4j stuff ( BasicConfigurator.configure() ) to see what is going on.
The TCP version works every time; the UDP version does not. Any ideas?
--
Jeroen Brattinga
SumUp server UDP
================
Listening on port 8080
0 [DatagramAcceptor-0] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter -
Launching thread for /127.0.0.1:1700
0 [DatagramAcceptor-0] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter -
Launching thread for /127.0.0.1:1700
0 [DatagramAcceptor-0] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter -
Launching thread for /127.0.0.1:1700
0 [DatagramAcceptor-0] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter -
Launching thread for /127.0.0.1:1700
0 [DatagramAcceptor-0] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter -
Launching thread for /127.0.0.1:1700
0 [AnonymousIoService-2] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
RECEIVED: 1:ADD(20)
0 [AnonymousIoService-1] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
RECEIVED: 0:ADD(10)
0 [AnonymousIoService-3] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
RECEIVED: 2:ADD(30)
0 [AnonymousIoService-4] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
RECEIVED: 3:ADD(40)
0 [AnonymousIoService-5] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
RECEIVED: 4:ADD(50)
47 [AnonymousIoService-2] ERROR
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
EXCEPTION:
java.lang.NullPointerException
at
org.apache.mina.example.sumup.ServerSessionHandler.messageReceived(ServerSessionHandler.java:54)
at
org.apache.mina.common.support.AbstractIoFilterChain$2.messageReceived(AbstractIoFilterChain.java:189)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.LoggingFilter.messageReceived(LoggingFilter.java:96)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:60)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:184)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.thread.ThreadPoolFilter.processEvent(ThreadPoolFilter.java:257)
at
org.apache.mina.filter.thread.ThreadPoolFilter$ProcessEventsRunnable.run(ThreadPoolFilter.java:319)
at
org.apache.mina.filter.thread.LeaderFollowersThreadPool$Worker.run(LeaderFollowersThreadPool.java:317)
47 [AnonymousIoService-1] ERROR
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
EXCEPTION:
java.lang.NullPointerException
at
org.apache.mina.example.sumup.ServerSessionHandler.messageReceived(ServerSessionHandler.java:54)
at
org.apache.mina.common.support.AbstractIoFilterChain$2.messageReceived(AbstractIoFilterChain.java:189)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.LoggingFilter.messageReceived(LoggingFilter.java:96)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:60)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:184)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.thread.ThreadPoolFilter.processEvent(ThreadPoolFilter.java:257)
at
org.apache.mina.filter.thread.ThreadPoolFilter$ProcessEventsRunnable.run(ThreadPoolFilter.java:319)
at
org.apache.mina.filter.thread.LeaderFollowersThreadPool$Worker.run(LeaderFollowersThreadPool.java:317)
47 [AnonymousIoService-3] ERROR
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
EXCEPTION:
java.lang.NullPointerException
at
org.apache.mina.example.sumup.ServerSessionHandler.messageReceived(ServerSessionHandler.java:54)
at
org.apache.mina.common.support.AbstractIoFilterChain$2.messageReceived(AbstractIoFilterChain.java:189)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.LoggingFilter.messageReceived(LoggingFilter.java:96)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:60)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:184)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.thread.ThreadPoolFilter.processEvent(ThreadPoolFilter.java:257)
at
org.apache.mina.filter.thread.ThreadPoolFilter$ProcessEventsRunnable.run(ThreadPoolFilter.java:319)
at
org.apache.mina.filter.thread.LeaderFollowersThreadPool$Worker.run(LeaderFollowersThreadPool.java:317)
47 [AnonymousIoService-4] ERROR
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
EXCEPTION:
java.lang.NullPointerException
at
org.apache.mina.example.sumup.ServerSessionHandler.messageReceived(ServerSessionHandler.java:54)
at
org.apache.mina.common.support.AbstractIoFilterChain$2.messageReceived(AbstractIoFilterChain.java:189)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.LoggingFilter.messageReceived(LoggingFilter.java:96)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:60)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:184)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.thread.ThreadPoolFilter.processEvent(ThreadPoolFilter.java:257)
at
org.apache.mina.filter.thread.ThreadPoolFilter$ProcessEventsRunnable.run(ThreadPoolFilter.java:319)
at
org.apache.mina.filter.thread.LeaderFollowersThreadPool$Worker.run(LeaderFollowersThreadPool.java:317)
47 [AnonymousIoService-5] ERROR
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700]
EXCEPTION:
java.lang.NullPointerException
at
org.apache.mina.example.sumup.ServerSessionHandler.messageReceived(ServerSessionHandler.java:54)
at
org.apache.mina.common.support.AbstractIoFilterChain$2.messageReceived(AbstractIoFilterChain.java:189)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.LoggingFilter.messageReceived(LoggingFilter.java:96)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:60)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:184)
at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:502)
at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:52)
at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:789)
at
org.apache.mina.filter.thread.ThreadPoolFilter.processEvent(ThreadPoolFilter.java:257)
at
org.apache.mina.filter.thread.ThreadPoolFilter$ProcessEventsRunnable.run(ThreadPoolFilter.java:319)
at
org.apache.mina.filter.thread.LeaderFollowersThreadPool$Worker.run(LeaderFollowersThreadPool.java:317)
47 [AnonymousIoService-2] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700] CLOSE
47 [AnonymousIoService-1] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700] CLOSE
47 [AnonymousIoService-3] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700] CLOSE
47 [AnonymousIoService-4] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700] CLOSE
47 [AnonymousIoService-5] INFO
org.apache.mina.example.sumup.ServerSessionHandler - [/127.0.0.1:1700] CLOSE
47 [AnonymousIoService-2] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter
- Exiting since queue is empty for /127.0.0.1:1700
47 [AnonymousIoService-1] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter
- Exiting since queue is empty for /127.0.0.1:1700
47 [AnonymousIoService-3] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter
- Exiting since queue is empty for /127.0.0.1:1700
47 [AnonymousIoService-4] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter
- Exiting since queue is empty for /127.0.0.1:1700
47 [AnonymousIoService-5] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter
- Exiting since queue is empty for /127.0.0.1:1700SumUp client UDP ================ 0 [main] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] WRITE: 0:ADD(10) 47 [DatagramConnector-0] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter - Launching thread for localhost/127.0.0.1:8080 47 [AnonymousIoService-1] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] SENT: 0:ADD(10) 47 [AnonymousIoService-1] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter - Exiting since queue is empty for localhost/127.0.0.1:8080 47 [main] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] WRITE: 1:ADD(20) 47 [DatagramConnector-0] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter - Launching thread for localhost/127.0.0.1:8080 47 [main] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] WRITE: 2:ADD(30) 47 [main] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] WRITE: 3:ADD(40) 47 [main] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] WRITE: 4:ADD(50) 47 [AnonymousIoService-2] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] SENT: 1:ADD(20) 47 [AnonymousIoService-2] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] SENT: 2:ADD(30) 47 [AnonymousIoService-2] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] SENT: 3:ADD(40) 47 [AnonymousIoService-2] INFO org.apache.mina.example.sumup.ClientSessionHandler - [localhost/127.0.0.1:8080] SENT: 4:ADD(50) 47 [AnonymousIoService-2] DEBUG org.apache.mina.filter.thread.ThreadPoolFilter - Exiting since queue is empty for localhost/127.0.0.1:8080
