08-Feb-2012 16:42:08 udt.UDTReceiver$1 run
SEVERE:
java.net.SocketException: Socket is closed
at java.net.DatagramSocket.send(DatagramSocket.java:590)
at udt.UDPEndPoint.doSend(UDPEndPoint.java:320)
at udt.UDTReceiver.sendKeepAlive(UDTReceiver.java:557)
at udt.UDTReceiver.processEXPEvent(UDTReceiver.java:350)
at udt.UDTReceiver.receiverAlgorithm(UDTReceiver.java:251)
at udt.UDTReceiver$1.run(UDTReceiver.java:207)
at java.lang.Thread.run(Thread.java:662)
I fixed that by modifying (line 337) in UDTReceiver.processEXPEvent
old: if(session.getSocket()==null)return;
new option 1: if(session.getSocket()==null || session.getSocket().getEndpoint().getSocket().isClosed())return;
new option 2: if(session.getSocket()==null || !session.getSocket().isActive())return;
Not sure if this is the best solution - this just adds a check for a closed/inactive socket in addition to a null socket.
Thanks,
Alexander
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The last error I get in unit tests is:
08-Feb-2012 16:42:08 udt.UDTReceiver$1 run
SEVERE:
java.net.SocketException: Socket is closed
at java.net.DatagramSocket.send(DatagramSocket.java:590)
at udt.UDPEndPoint.doSend(UDPEndPoint.java:320)
at udt.UDTReceiver.sendKeepAlive(UDTReceiver.java:557)
at udt.UDTReceiver.processEXPEvent(UDTReceiver.java:350)
at udt.UDTReceiver.receiverAlgorithm(UDTReceiver.java:251)
at udt.UDTReceiver$1.run(UDTReceiver.java:207)
at java.lang.Thread.run(Thread.java:662)
I fixed that by modifying (line 337) in UDTReceiver.processEXPEvent
old: if(session.getSocket()==null)return;
new option 1: if(session.getSocket()==null || session.getSocket().getEndpoint().getSocket().isClosed())return;
new option 2: if(session.getSocket()==null || !session.getSocket().isActive())return;
Not sure if this is the best solution - this just adds a check for a closed/inactive socket in addition to a null socket.
Thanks,
Alexander
thanks! committed option 2