diff a/test/jdk/java/util/Map/Get.java b/test/jdk/java/util/Map/Get.java
--- a/test/jdk/java/util/Map/Get.java
+++ b/test/jdk/java/util/Map/Get.java
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2024, 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
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.
@@ -21,11 +21,11 @@
  * questions.
  */
 
 /*
  * @test
- * @bug 6306829
+ * @bug 6306829 8336669
  * @summary Verify assertions in get() javadocs
  * @author Martin Buchholz
  */
 
 import java.util.HashMap;
@@ -41,23 +41,31 @@
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ConcurrentSkipListMap;
 
 public class Get {
 
+    // An identity class holding an char (like non-Preview Character)
+    record Char(char c) implements Comparable<Char> {
+        @Override
+        public int compareTo(Char ch) {
+            return Character.compare(c, ch.c);
+        }
+    }
+
     private static void realMain(String[] args) throws Throwable {
-        testMap(new Hashtable<Character,Boolean>());
-        testMap(new HashMap<Character,Boolean>());
-        testMap(new IdentityHashMap<Character,Boolean>());
-        testMap(new LinkedHashMap<Character,Boolean>());
-        testMap(new ConcurrentHashMap<Character,Boolean>());
-        testMap(new WeakHashMap<Character,Boolean>());
-        testMap(new TreeMap<Character,Boolean>());
-        testMap(new ConcurrentSkipListMap<Character,Boolean>());
+        testMap(new Hashtable<Char,Boolean>());
+        testMap(new HashMap<Char,Boolean>());
+        testMap(new IdentityHashMap<Char,Boolean>());
+        testMap(new LinkedHashMap<Char,Boolean>());
+        testMap(new ConcurrentHashMap<Char,Boolean>());
+        testMap(new WeakHashMap<Char,Boolean>());
+        testMap(new TreeMap<Char,Boolean>());
+        testMap(new ConcurrentSkipListMap<Char,Boolean>());
     }
 
-    private static void put(Map<Character,Boolean> m,
-                            Character key, Boolean value,
+    private static void put(Map<Char,Boolean> m,
+                            Char key, Boolean value,
                             Boolean oldValue) {
         if (oldValue != null) {
             check("containsValue(oldValue)", m.containsValue(oldValue));
             check("values.contains(oldValue)", m.values().contains(oldValue));
         }
@@ -68,24 +76,25 @@
         check("containsValue", m.containsValue(value));
         check("values.contains",  m.values().contains(value));
         check("!isEmpty", ! m.isEmpty());
     }
 
-    private static void testMap(Map<Character,Boolean> m) {
+    private static void testMap(Map<Char,Boolean> m) {
         // We verify following assertions in get(Object) method javadocs
         boolean permitsNullKeys = (! (m instanceof ConcurrentMap ||
                                       m instanceof Hashtable     ||
                                       m instanceof SortedMap));
         boolean permitsNullValues = (! (m instanceof ConcurrentMap ||
                                         m instanceof Hashtable));
         boolean usesIdentity = m instanceof IdentityHashMap;
 
         System.err.println(m.getClass());
-        put(m, 'A', true,  null);
-        put(m, 'A', false, true);       // Guaranteed identical by JLS
-        put(m, 'B', true,  null);
-        put(m, new Character('A'), false, usesIdentity ? null : false);
+        Char aCh = new Char('A');
+        put(m, aCh, true,  null);
+        put(m, aCh, false, true);
+        put(m, new Char('B'), true,  null);
+        put(m, new Char('A'), false, usesIdentity ? null : false);
         if (permitsNullKeys) {
             try {
                 put(m, null, true,  null);
                 put(m, null, false, true);
             }
@@ -99,21 +108,22 @@
             catch (NullPointerException e) {}
             catch (Throwable t) { unexpected(m.getClass().getName(), t); }
         }
         if (permitsNullValues) {
             try {
-                put(m, 'C', null, null);
-                put(m, 'C', true, null);
-                put(m, 'C', null, true);
+                Char cCh = new Char('C');
+                put(m, cCh, null, null);
+                put(m, cCh, true, null);
+                put(m, cCh, null, true);
             }
             catch (Throwable t) { unexpected(m.getClass().getName(), t); }
         } else {
-            try { m.put('A', null); fail(m.getClass().getName() + " did not reject null key"); }
+            try { m.put(new Char('A'), null); fail(m.getClass().getName() + " did not reject null key"); }
             catch (NullPointerException e) {}
             catch (Throwable t) { unexpected(m.getClass().getName(), t); }
 
-            try { m.put('C', null); fail(m.getClass().getName() + " did not reject null key"); }
+            try { m.put(new Char('C'), null); fail(m.getClass().getName() + " did not reject null key"); }
             catch (NullPointerException e) {}
             catch (Throwable t) { unexpected(m.getClass().getName(), t); }
         }
     }
 
