Pull in 4.0 changes from PR 1146
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/JAXRSCommonClient.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/JAXRSCommonClient.java
index e50a1f2..d5c06b1 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/JAXRSCommonClient.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/JAXRSCommonClient.java
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 2007, 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -715,29 +715,29 @@
       assertEquals(T first, T second, Object... message)   {
     if (first == null && second == null)
       return;
-    assertFalse(first == null && second != null, message.toString());
-    assertFalse(first != null && second == null, message.toString());
+    assertFalse(first == null && second != null, objectsToString(message));
+    assertFalse(first != null && second == null, objectsToString(message));
     if (first instanceof Comparable)
-      assertTrue(((Comparable<T>) first).compareTo(second) == 0, message.toString());
+      assertTrue(((Comparable<T>) first).compareTo(second) == 0, objectsToString(message));
     else
-      assertTrue(first.equals(second), message.toString());
+      assertTrue(first.equals(second), objectsToString(message));
   }
 
   public static <T> void //
       assertEqualsInt(int first, int second, Object... message)   {
-    assertTrue(first == second, message.toString());
+    assertTrue(first == second, objectsToString(message));
   }
 
   public static <T> void //
       assertEqualsLong(long first, long second, Object... message)
             {
-    assertTrue(first == second, message.toString());
+    assertTrue(first == second, objectsToString(message));
   }
 
   public static <T> void //
       assertEqualsBool(boolean first, boolean second, Object... message)
             {
-    assertTrue(first == second, message.toString());
+    assertTrue(first == second, objectsToString(message));
   }
 
   /**
@@ -751,7 +751,7 @@
    */
   public static void //
       assertNull(Object object, Object... message) {
-    assertTrue(object == null, message.toString());
+    assertTrue(object == null, objectsToString(message));
   }
 
   /**
@@ -765,7 +765,7 @@
    */
   public static void //
       assertNotNull(Object object, Object... message) {
-    assertTrue(object != null, message.toString());
+    assertTrue(object != null, objectsToString(message));
   }
 
   /**
@@ -795,7 +795,7 @@
    */
   public static void assertContains(String string, String substring,
       Object... message)   {
-    assertTrue(string.contains(substring), message.toString());
+    assertTrue(string.contains(substring), objectsToString(message));
   }
 
   /**
@@ -812,7 +812,7 @@
    */
   public static void assertContainsIgnoreCase(String string, String substring,
       Object... message)   {
-    assertTrue(string.toLowerCase().contains(substring.toLowerCase()), message.toString());
+    assertTrue(string.toLowerCase().contains(substring.toLowerCase()), objectsToString(message));
   }
 
   /**
@@ -828,7 +828,7 @@
    */
   public static <T> void assertContains(T text, T subtext, Object... message)
         {
-    assertContains(text.toString(), subtext.toString(), message.toString());
+    assertContains(text.toString(), subtext.toString(), objectsToString(message));
   }
 
   /**
@@ -845,7 +845,7 @@
    */
   public static <T> void assertContainsIgnoreCase(T text, T subtext,
       Object... message)   {
-    assertContainsIgnoreCase(text.toString(), subtext.toString(), message.toString());
+    assertContainsIgnoreCase(text.toString(), subtext.toString(), objectsToString(message));
   }
 
   /**