Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
4.1.2, 5.2.0
-
None
-
Windows XP + SUN JDK 1.5
-
Patch Available
Description
ActiveMQ server socket created with TcpTransportServer can't bind to localhost or actuall IP correctly.
- expected result:
- localhost ---> bind to 127.0.0.1
- actual IP ----> bind to actual IP
- actual result:
- localhost ---> bind to 0.0.0.0
- actual IP ----> bind to 0.0.0.0
"org.apache.activemq.transport.tcp.TcpTransportServer"
InetAddress addr = InetAddress.getByName(host); try { if (host.trim().equals("localhost") || \ addr.equals(InetAddress.getLocalHost())) { //#1 start the socket with 0.0.0.0 this.serverSocket = \ serverSocketFactory.createServerSocket(bind.getPort(), backlog); } else { //#2 start the socket with the ip spcified in addr. this.serverSocket = \ serverSocketFactory.createServerSocket(bind.getPort(), backlog, addr); }
Since if you config the real IP as a host setting, \
addr.equals(InetAddress.getLocalHost()) will allways be true so that the #1 will be used to start the socket with 0.0.0.0 by default. Which causes a defect of geronimo: https://issues.apache.org/jira/browse/GERONIMO-4404
Attachments
Attachments
Issue Links
- is duplicated by
-
AMQ-2319 Specifying an IP in a transport URI doesn't make the resulting listen socket use that IP only
- Resolved