[
https://jira.jboss.org/browse/JBAS-8637?page=com.atlassian.jira.plugin.sy...
]
Richard Achmatowicz commented on JBAS-8637:
-------------------------------------------
We can fix this my changing the method Twiddle.buildJMXServiceURL() to take account of
IPv6 hostnames:
// build JMXServiceURL, should look like
"service:jmx:rmi:///jndi/rmi://localhost:1090/jmxrmi";
private String buildJMXServiceUrl()
{
// JBAS-8540
return
DEFAULT_BASEURL +
fixHostnameForURL(hostname != null ? hostname : DEFAULT_HOSTNAME) +
":" +
(port != null ? port : DEFAULT_PORT) +
DEFAULT_RMIOBJECTNAME;
}
// would ordinarily use ServerConfigUtil.fixHostnameForURL() but not on client
classpath
private String fixHostnameForURL(String host) {
if (host == null)
return host ;
// if the hostname is an IPv6 literal, enclose it in brackets
if (host.indexOf(':') != -1)
return "[" + host + "]" ;
else
return host ;
}
As noted, the utility class ServerConfigUtil has such a method for fixing hostnames, but
it is not on the client classpath.
twiddle does not correctly handle IPv6 addresses
------------------------------------------------
Key: JBAS-8637
URL:
https://jira.jboss.org/browse/JBAS-8637
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Integration
Affects Versions: 6.0.0.M4
Reporter: Richard Achmatowicz
Assignee: Shelly McGowan
Fix For: TBD-6.x
The test cases org.jboss.test.util.test.TwiddleUnitTestCase.{testGet, testInvoke} are
failing.
One problem is that the twiddle option -o is not correctly handling IPv6 addresses; for
example:
[rachmatowicz@soa3 bin]$ ./twiddle.sh -o fec0:0:a16:ffff::13 get
"jboss.system:type=Server" Started
15:17:53,066 ERROR [Twiddle] Exec failed
org.jboss.util.NestedRuntimeException: For input string: "0:a16:ffff::13:1090";
- nested throwable: (java.lang.NumberFormatException: For input string:
"0:a16:ffff::13:1090")
at org.jboss.console.twiddle.Twiddle$1.getServer(Twiddle.java:208)
at
org.jboss.console.twiddle.command.MBeanServerCommand.getMBeanServer(MBeanServerCommand.java:64)
at org.jboss.console.twiddle.command.GetCommand.execute(GetCommand.java:149)
at org.jboss.console.twiddle.Twiddle.main(Twiddle.java:357)
Caused by: java.lang.NumberFormatException: For input string:
"0:a16:ffff::13:1090"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:458)
at java.lang.Integer.parseInt(Integer.java:499)
at com.sun.jndi.url.rmi.rmiURLContext.getRootURLContext(rmiURLContext.java:86)
at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:182)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1886)
at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1856)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:257)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248)
at org.jboss.console.twiddle.Twiddle.createMBeanServerConnection(Twiddle.java:309)
at org.jboss.console.twiddle.Twiddle.connect(Twiddle.java:318)
at org.jboss.console.twiddle.Twiddle.access$400(Twiddle.java:60)
at org.jboss.console.twiddle.Twiddle$1.getServer(Twiddle.java:204)
... 3 more
This is a typical IPv6 URL creation issue, as the issue can be fixed by surrouning the
IPv6 address literal in square brackets:
[rachmatowicz@soa3 bin]$ ./twiddle.sh -o [fec0:0:a16:ffff::13] get
"jboss.system:type=Server" Started
Started=true
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira