You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "liugang (JIRA)" <ji...@apache.org> on 2012/11/29 11:02:59 UTC
[jira] [Commented] (AMQ-2256) Unnecessary TcpTransportFactory
NumberFormatException and warning
[ https://issues.apache.org/jira/browse/AMQ-2256?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13506369#comment-13506369 ]
liugang commented on AMQ-2256:
------------------------------
sorry, But I found we still have some output which looks like:
*[/50/data/fileIn] TcpTransportFactory WARN path isn't a valid local location for TcpTransport to use*
I tested on activemq-5.7.0, it's a problem or not? Thanks.
> Unnecessary TcpTransportFactory NumberFormatException and warning
> -----------------------------------------------------------------
>
> Key: AMQ-2256
> URL: https://issues.apache.org/jira/browse/AMQ-2256
> Project: ActiveMQ
> Issue Type: Bug
> Components: Transport
> Affects Versions: 5.2.0
> Environment: Windows XP
> Reporter: Scott Lewis
> Assignee: Timothy Bish
> Fix For: 5.5.0
>
>
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira