activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AMQ-2256) Unnecessary TcpTransportFactory NumberFormatException and warning
Date Sat, 26 Feb 2011 22:53:58 GMT

     [ https://issues.apache.org/jira/browse/AMQ-2256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Timothy Bish resolved AMQ-2256.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 5.5.0
         Assignee: Timothy Bish

Thanks, having your full URI made that much easier.  The code will suppress the full exception
stack and just log a warning now unless debug logging is on.

> 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.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message