[
https://issues.apache.org/jira/browse/AMQ-9438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17823395#comment-17823395
]
George McCone commented on AMQ-9438:
------------------------------------
Jean,
sorry for the delay, been on vacation the past week.
I liked the idea of making it a warning but it looks like you went with an
error still and debug for the stack trace?
Not trying to nitpick but an error still seems a little high when comparing a
URI. To me an error would imply that something didn’t work, whereas in this
case, it is just less than ideal.
Maybe splitting hairs, but in our use case with dynamic hosts, errors are
definitely a distraction for something the is just expected.
Thank you for your consideration.
> FailoverTransport throws UnknowHostException on compareURIs
> -----------------------------------------------------------
>
> Key: AMQ-9438
> URL: https://issues.apache.org/jira/browse/AMQ-9438
> Project: ActiveMQ Classic
> Issue Type: Improvement
> Components: Transport
> Affects Versions: 5.18.3, 5.17.6, 5.16.7
> Environment: This occurs using OpenJDK 11 on both Windows and Linux
> environments.
> Reporter: George McCone
> Assignee: Jean-Baptiste Onofré
> Priority: Minor
> Fix For: 6.1.0, 5.18.4, 5.17.7, 6.0.2
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> In the
> org.apache.activemq.transport.failover.FailoverTransport.compareURIs(), it is
> trying to compare 2 hosts to see if they are the same.
> To accomplish this, the function InetAddress.getByName() used to help extract
> out the the IP address of each of the hosts to see if they are the same.
> In the event one of the hosts is not resolvable, InetAddress.getByName()
> throws a UnknownHostException.
> This UnknownHostException is not being caught in the try/catch block, only
> IOException.
> I believe the exception catch block should be extended to catch
> UnknownHostException as it is simply doing a string compare that the 2 hosts
> are the same at that point.
> For example, in the stacktrace below the uri was,
> failover:(tcp://UNKNOWN:61616,tcp://AMQ1:61616)?randomize=false/org.apache.activemq.jndi.ActiveMQInitialContextFactory/ConnectionFactory
> {code:java}
> 2024-02-27T19:37:20,311 | ERROR | FelixStartLevel | FailoverTransport
> | 28 - org.apache.activemq.osgi - 5.18.3 | Failed to Lookup
> INetAddress for URI[tcp://UNKNOWN:61616] : {}
> java.net.UnknownHostException: No such host is known (UNKNOWN)
> at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[?:?]
> at
> java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:929)
> ~[?:?]
> at
> java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1519) ~[?:?]
> at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:848)
> ~[?:?]
> at java.net.InetAddress.getAllByName0(InetAddress.java:1509) ~[?:?]
> at java.net.InetAddress.getAllByName(InetAddress.java:1368) ~[?:?]
> at java.net.InetAddress.getAllByName(InetAddress.java:1302) ~[?:?]
> at java.net.InetAddress.getByName(InetAddress.java:1252) ~[?:?]
> at
> org.apache.activemq.transport.failover.FailoverTransport.compareURIs(FailoverTransport.java:1393)
> ~[?:?] {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)