diff --git a/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/common/JAXRSCommonClient.java b/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/common/JAXRSCommonClient.java
index 618bad8..db8aa0e 100644
--- a/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/common/JAXRSCommonClient.java
+++ b/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/common/JAXRSCommonClient.java
@@ -21,7 +21,7 @@
 import java.net.UnknownHostException;
 import java.util.Enumeration;
 import java.util.Hashtable;
-import java.util.Properties;
+import java.util.stream.Collectors;
 import java.nio.charset.StandardCharsets;
 
 
@@ -49,7 +49,7 @@
  */
 //public abstract class JAXRSCommonClient extends ServiceEETest {
 public abstract class JAXRSCommonClient {
-
+  @SuppressWarnings("unused")
   private static final long serialVersionUID = 1L;
 
   /**
@@ -534,20 +534,13 @@
   }
 
   public static String toString(InputStream inStream) throws IOException{
-    String line;
-    String str = "";
     try (BufferedReader bufReader = new BufferedReader(new InputStreamReader(inStream, StandardCharsets.UTF_8))) {
-      while ((line = bufReader.readLine()) != null) {
-        str = str + line + System.lineSeparator();
-      }
-      return str;
+      return bufReader.lines().collect(Collectors.joining(System.lineSeparator()));
     }
   }
-  
+
   public static String editWebXmlString(InputStream inStream) throws IOException{
-    String webXmlTemplate = toString(inStream);
-    String webXml = webXmlTemplate.replaceAll("servlet_adaptor", servletAdaptor);
-    return webXml;
+    return toString(inStream).replaceAll("servlet_adaptor", servletAdaptor);
   }
 
   /**
