diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/build.properties b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/build.properties
index 2e64961..cc742a1 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/build.properties
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/build.properties
@@ -15,7 +15,7 @@
     SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 
 -->
- 
+
 
 <property name="module" value="msgctxt"/>
 <property name="appname" value="${module}"/>
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/build.xml b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/build.xml
index 203a74d..076e106 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/build.xml
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/build.xml
@@ -69,7 +69,7 @@
             <arg value="http://${http.host}:${http.port}/wsclient/RequestProcessor"/>
           </java>
 
-<!--restore the tokens back in file--> 
+<!--restore the tokens back in file-->
          <replace file="webclient/Client.java" token="${http.host}" value="HTTP_HOST"/>
          <replace file="webclient/Client.java" token="${http.port}" value="HTTP_PORT"/>
         </target>
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/client-web.xml b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/client-web.xml
index 027dfce..b4bbf5b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/client-web.xml
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/client-web.xml
@@ -20,7 +20,7 @@
 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:j2ee="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
-         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <description>A test application</description>
   <display-name>WebTier</display-name>
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/client/TestClient.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/client/TestClient.java
index d903e9e..467e6b9 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/client/TestClient.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/client/TestClient.java
@@ -46,7 +46,7 @@
         try {
             int code = invokeServlet(url);
             report(code);
-	} catch (Exception e) {
+    } catch (Exception e) {
             e.printStackTrace();
             fail();
         }
@@ -60,7 +60,7 @@
         InputStream is = c1.getInputStream();
         BufferedReader input = new BufferedReader (new InputStreamReader(is));
         String line = null;
-       
+
         while ((line = input.readLine()) != null) {
             log(line);
             if(line.indexOf("So the RESULT OF HELLO SERVICE IS") != -1)
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/endpoint/Hello.java
index 8b12109..160c5bc 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/endpoint/Hello.java
@@ -22,7 +22,7 @@
 
 @WebService
 public class Hello {
-	
+
     @Resource WebServiceContext wsc;
 
     public String sayHello(String param) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/web.xml b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/web.xml
index d4ee4b5..27f9f21 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/web.xml
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/web.xml
@@ -18,30 +18,30 @@
 -->
 
 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
-	xmlns:j2ee="http://java.sun.com/xml/ns/javaee"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
-	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-			http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+    xmlns:j2ee="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+            http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
-	<description>WebTier for the Hello Service</description>
-	<display-name>HelloWAR</display-name>
+    <description>WebTier for the Hello Service</description>
+    <display-name>HelloWAR</display-name>
 
-	<servlet>
-		<description>Endpoint for Hello Web Service</description>
-		<display-name>HelloWebService</display-name>
-		<servlet-name>Hello</servlet-name>
-		<servlet-class>endpoint.Hello</servlet-class>
-		<load-on-startup>1</load-on-startup>
-	</servlet>
+    <servlet>
+        <description>Endpoint for Hello Web Service</description>
+        <display-name>HelloWebService</display-name>
+        <servlet-name>Hello</servlet-name>
+        <servlet-class>endpoint.Hello</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
 
-	<servlet-mapping>
-		<servlet-name>Hello</servlet-name>
-		<url-pattern>/HelloService</url-pattern>
-	</servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>Hello</servlet-name>
+        <url-pattern>/HelloService</url-pattern>
+    </servlet-mapping>
 
-	<session-config>
-		<session-timeout>54</session-timeout>
-	</session-config>
+    <session-config>
+        <session-timeout>54</session-timeout>
+    </session-config>
 
 </web-app>
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/webclient/Client.java
index 168756d..03133c4 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/webclient/Client.java
@@ -31,7 +31,7 @@
         HelloService service;
 
        public void doGet(HttpServletRequest req, HttpServletResponse resp)
-		throws jakarta.servlet.ServletException {
+        throws jakarta.servlet.ServletException {
            doPost(req, resp);
        }
 
@@ -39,7 +39,7 @@
               throws jakarta.servlet.ServletException {
 
            try {
-                
+
                 Hello port = service.getHelloPort();
 
                 String ret = port.sayHello("All");
@@ -62,7 +62,7 @@
                 out.close();
             } catch(Exception e) {
                 e.printStackTrace();
-                
+
             }
        }
 }
