[ https://issues.apache.org/activemq/browse/AMQ-2256?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=53505#action_53505 ]
Scott Lewis commented on AMQ-2256: ---------------------------------- The String path passed to the API at org.apache.activemq.transport.tcp.TcpTransportFactory.createTransport(TcpTransportFactory.java:125) is "/exampleTopic". The exact contents of the string doesn't matter. > Unnecessary TcpTransportFactory NumberFormatException and warning > ----------------------------------------------------------------- > > Key: AMQ-2256 > URL: https://issues.apache.org/activemq/browse/AMQ-2256 > Project: ActiveMQ > Issue Type: Bug > Components: Transport > Affects Versions: 5.2.0 > Environment: Windows XP > Reporter: Scott Lewis > > When executing TcpTransportFactory.createTransport(URI location, WireFormat > wf) the following warning is incorrectly generated: > WARNING: path isn't a valid local location for TcpTransport to use > java.lang.NumberFormatException: For input string: "/exampleTopic" > at > java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) > at java.lang.Integer.parseInt(Integer.java:447) > at java.lang.Integer.parseInt(Integer.java:497) > at > org.apache.activemq.transport.tcp.TcpTransportFactory.createTransport(TcpTransportFactory.java:125) > at > org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.java:141) > at > org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.java:51) > at > org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:80) > at > org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:237) > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:252) > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:224) > at > org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:172) > ... > With the topic name set to "/exampleTopic" > The code responsible for this looks like: > URI localLocation = null; > String path = location.getPath(); > // see if the path is a local URI location > if (path != null && path.length() > 0) { > int localPortIndex = path.indexOf(':'); > try { > Integer.parseInt(path.substring(localPortIndex + 1, > path.length())); > String localString = location.getScheme() + ":/" + path; > localLocation = new URI(localString); > } catch (Exception e) { > LOG.warn("path isn't a valid local location for TcpTransport > to use", e); > } > } > SocketFactory socketFactory = createSocketFactory(); > return createTcpTransport(wf, socketFactory, location, localLocation); > } > The problem seems to be that for the path="/exampleTopic", the following line: > int localPortIndex = path.indexOf(':'); > returns -1 (no colon and no port specified in path > and the subsequent line: > Integer.parseInt(path.substring(localPortIndex + 1, > path.length())); > > generates the NumberFormatException (because the path does not have any > integer). > It seems that perhaps there should be some test like: > if (localPortIndex != -1) { > ... > } > I will create a patch if desired. Just LMK. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.