diff --git a/jdk/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java b/jdk/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java
index 4ac28a1034a..25bc7445b6d 100644
--- a/jdk/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java
+++ b/jdk/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -112,6 +112,11 @@ private URI canonicalize(String uriString) throws URISyntaxException {
return new URI(uriString);
}
+ if (Character.isDigit(uriString.charAt(0))) {
+ // may be hostname or hostname:port since it starts with digits
+ uriString = "//" + uriString;
+ }
+
URI u = new URI(uriString);
if (u.isAbsolute()) {
diff --git a/jdk/test/sun/jvmstat/monitor/HostIdentifier/HostIdentifierCreate.java b/jdk/test/sun/jvmstat/monitor/HostIdentifier/HostIdentifierCreate.java
index 4299bf34384..486351b327b 100644
--- a/jdk/test/sun/jvmstat/monitor/HostIdentifier/HostIdentifierCreate.java
+++ b/jdk/test/sun/jvmstat/monitor/HostIdentifier/HostIdentifierCreate.java
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 4990825
+ * @bug 4990825 8251155
* @summary test that HostIdentifier objects get created as expected
*/
diff --git a/jdk/test/sun/jvmstat/monitor/HostIdentifier/testcases b/jdk/test/sun/jvmstat/monitor/HostIdentifier/testcases
index 28dff2cdc02..804ab14938b 100644
--- a/jdk/test/sun/jvmstat/monitor/HostIdentifier/testcases
+++ b/jdk/test/sun/jvmstat/monitor/HostIdentifier/testcases
@@ -218,4 +218,18 @@ special syntax - not a valid URI, but allowed by HostIdentifier
rmi://10.0.0.1:1234
+
+
+Purely numeric
+
+ //12345
+
+
+
+
+Purely numeric
+
+ //12345:123
+
+