-
Bug
-
Resolution: Done
-
Major
-
2.10
-
None
-
Workaround Exists
-
I was trying to replace the default socket factory with my own socket factory so I can decide if MulticaseSocket is created with InetSocketAddress or to use just the port(to experiment this "Invalid argument") and it doesn't use my socket factory.
Looking in the code, the way(the call order) how the socket factory is forwarded to the protocols is wrong(I think) because the protocols are started with the default stack instead of my stack.
prot_stack.getTopProtocol().setSocketFactory(socket_factory) should be called before the stack is started and not after.
private void startStack(String cluster_name) throws ChannelException {
.....
try
catch(Throwable e)
{ throw new ChannelException("failed to start protocol stack", e); }if(socket_factory != null)
{ prot_stack.getTopProtocol().setSocketFactory(socket_factory); }....
}