diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/build.properties b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/build.properties
index 5d78233..299559b 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/build.properties
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/build.properties
@@ -15,10 +15,10 @@
     SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 
 -->
- 
+
 
 <property name="module" value="ejb-ejb30-persistence-tx_propagation"/>
-<property name="appname" value="${module}"/>         
+<property name="appname" value="${module}"/>        \u0020
 <property name="assemble" value="${build.classes.dir}/archive"/>
 <property name="simple.client" value="com.sun.s1asdev.ejb.ejb30.persistence.tx_propagation.client.Client"/>
 <property name="test.client" value="Client"/>
@@ -26,10 +26,10 @@
 <property name="sun-application.xml" value="descriptor/sun-application.xml"/>
 <property name="ejb-jar.xml" value="descriptor/ejb-jar.xml"/>
 <property name="sun-ejb-jar.xml" value="descriptor/sun-ejb-jar.xml"/>
-<property name="application-client.xml" 
-	value="descriptor/application-client.xml"/>
-<property name="sun-application-client.xml" 
-	value="descriptor/sun-application-client.xml"/>
-<property name="appclientjar.files" value="${build.classes.dir}"/>         
+<property name="application-client.xml"\u0020
+    value="descriptor/application-client.xml"/>
+<property name="sun-application-client.xml"\u0020
+    value="descriptor/sun-application-client.xml"/>
+<property name="appclientjar.files" value="${build.classes.dir}"/>        \u0020
 <property name="appclient.jar" value="${assemble.dir}/${appname}-client.jar"/>
 <property name="app.type" value="application"/>
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/build.xml b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/build.xml
index 713334c..d77e681 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/build.xml
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/build.xml
@@ -34,7 +34,7 @@
     <target name="clean" depends="init-common">
       <antcall  target="clean-common"/>
     </target>
- 
+
     <target name="compile" depends="clean">
         <antcall target="compile-common">
             <param name="src" value="ejb"/>
@@ -51,7 +51,7 @@
             <param name="jdbc.resource.type" value="javax.sql.XADataSource"/>
             <param name="jdbc.resource.name" value="jdbc/xa"/>
         </antcall>
-       <antcall target="asadmin-common"> 
+       <antcall target="asadmin-common">
           <param name="admin.command" value="set"/>
           <param name="operand.props"
               value="${resources.dottedname.prefix}.jdbc-connection-pool.jdbc-xa-pool.property.connectionAttributes=;create=true"/>
@@ -81,10 +81,10 @@
 
     <target name="build" depends="compile">
         <mkdir dir="${assemble.dir}/lib"/>
-        <jar destfile="${assemble.dir}/lib/${appname}-lib.jar" 
+        <jar destfile="${assemble.dir}/lib/${appname}-lib.jar"
              basedir="${build.classes.dir}"
              includes="**/Person.class">
-        </jar>        
+        </jar>
         <jar destfile="${assemble.dir}/lib/${appname}-par1.jar">
              <metainf file="descriptor/persistence.xml"/>
         </jar>
@@ -92,9 +92,9 @@
           </copy>-->
 
         <antcall target="build-ear-common">
-            <param name="ejbjar.classes" 
+            <param name="ejbjar.classes"
               value="**/Sful*.class"/>
-            <param name="appclientjar.classes" 
+            <param name="appclientjar.classes"
               value="**/Client.class,**/Sful.class"/>
             <param name="glassfish-resources-ear.xml" value="descriptor/glassfish-resources.xml"/>
         </antcall>
@@ -103,9 +103,9 @@
              includes="lib/${appname}-lib.jar, lib/${appname}-par1.jar">
         </jar>
 
-    </target> 
-    
-    <target name="deploy" 
+    </target>
+
+    <target name="deploy"
             depends="init-common">
         <antcall target="deploy-common"/>
     </target>
@@ -114,10 +114,10 @@
         <antcall target="runclient-common"/>
 <!--       <antcall target="runclient-standalone"/>-->
     </target>
- 
+
     <target name="undeploy" depends="init-common">
         <antcall target="undeploy-common"/>
-    </target>   
+    </target>
 
     <target name="usage">
         <antcall target="usage-common"/>
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/client/Client.java b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/client/Client.java
index 7467c41..6060593 100755
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/client/Client.java
@@ -64,7 +64,7 @@
         PreparedStatement s = null;
         try {
             System.err.println("I am in client");
-            
+
             UserTransaction utx = (UserTransaction)(new javax.naming.InitialContext()).lookup("java:comp/UserTransaction");
             ds = (DataSource)(new javax.naming.InitialContext()).lookup("java:app/jdbc/xa");
 
@@ -78,7 +78,7 @@
 
             utx.begin();
             System.err.println("utx.begin called ");
-            
+
             connection = ds.getConnection();
             s = connection.prepareStatement("insert into EJB30_PERSISTENCE_EEM_INJECTION_PERSON values('1', '1')");
             s.execute();
@@ -94,7 +94,7 @@
                 utx.rollback();
                 System.err.println("utx.rollback called ");
             }
-            
+
             Iterator<String> iter = map.keySet().iterator();
             while (iter.hasNext()) {
                 String testName = iter.next();
@@ -125,7 +125,7 @@
 
         }
 
-    	return;
+        return;
     }
 
 
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/descriptor/glassfish-resources.xml b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/descriptor/glassfish-resources.xml
index 0786c54..ccdeaa4 100755
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/descriptor/glassfish-resources.xml
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/descriptor/glassfish-resources.xml
@@ -51,4 +51,4 @@
       <property name="connectionAttributes" value=";create=true" />
     </jdbc-connection-pool>
     <jdbc-resource pool-name="java:app/jdbc-xa-pool" jndi-name="java:app/jdbc/xa" />
-</resources> 
+</resources>
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/Person.java b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/Person.java
index 14358ff..952cbec 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/Person.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/Person.java
@@ -45,7 +45,7 @@
         this.data = data;
     }
 
-    @Override 
+    @Override
     public String toString() {
         return "Person: (name=" + name + "; data= " + data + ")";
     }
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulBean.java b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulBean.java
index 3d4f30b..4b24df7 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulBean.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulBean.java
@@ -34,25 +34,25 @@
 import jakarta.ejb.EJBException;
 
 @Stateful
-@EJB(name="ejb/SfulBean", 
+@EJB(name="ejb/SfulBean",
         beanInterface=com.sun.s1asdev.ejb.ejb30.persistence.tx_propagation.SfulDelegate.class)
 
 public class SfulBean
     implements Sful {
 
     private String name;
-    
+
     private @EJB SfulDelegate delegate;
-    
+
     private @PersistenceContext(unitName="lib/ejb-ejb30-persistence-tx_propagation-par1.jar#em",
-                type=PersistenceContextType.EXTENDED) 
+                type=PersistenceContextType.EXTENDED)
             EntityManager extendedEM;
- 
+
     public void setName(String name) {
         this.name = name;
         try {
             String lookupName = "java:comp/env/ejb/SfulBean";
-            
+
             InitialContext initCtx = new InitialContext();
             delegate = (SfulDelegate) initCtx.lookup(lookupName);
         } catch (Exception ex) {
@@ -62,7 +62,7 @@
 
     public Map<String, Boolean> doTests() {
         Person person = new Person(name);
-        
+
         String delegateName = "delgname_" + name;
         String delegateData= "delgdata: " + name;
         delegate.create(delegateName, delegateData);
@@ -71,8 +71,8 @@
 
         extendedEM.persist(person);
         Person foundPerson = delegate.find(name);
-        
-        
+
+
         Map<String, Boolean> map = new HashMap<String, Boolean>();
         map.put("findDelegateCreatedPerson", (dPerson != null));
         map.put("delegateFoundMe", (foundPerson != null));
@@ -100,5 +100,5 @@
         }
         return removed;
     }
-    
+
 }
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulDelegate.java b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulDelegate.java
index 62d2097..337a43f 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulDelegate.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulDelegate.java
@@ -28,7 +28,7 @@
     Person find(String name);
 
     boolean remove(String name);
-    
+
     EntityManager getEM();
 
 }
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulDelegateBean.java b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulDelegateBean.java
index 8a96e20..f7a7aad 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulDelegateBean.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/ejb/SfulDelegateBean.java
@@ -37,12 +37,12 @@
     public EntityManager getEM() {
         return extendedEM;
     }
-    
+
     public Person create(String name, String data) {
 
         Person p = new Person(name);
         p.setData(data);
-        
+
         extendedEM.persist(p);
         return p;
     }
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/sql/create.sql b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/sql/create.sql
index fa60742..c0ab43f 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/sql/create.sql
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/sql/create.sql
@@ -1,4 +1,4 @@
-CREATE TABLE EJB30_PERSISTENCE_EEM_INJECTION_PERSON (
-    NAME VARCHAR(256) NOT NULL PRIMARY KEY,
-    DATA VARCHAR(256)
-);
+CREATE TABLE EJB30_PERSISTENCE_EEM_INJECTION_PERSON (
+    NAME VARCHAR(256) NOT NULL PRIMARY KEY,
+    DATA VARCHAR(256)
+);
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/sql/drop.sql b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/sql/drop.sql
index 5eb136f..d012c69 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/sql/drop.sql
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/jpa-tx-propagation-gf-resources-xml/sql/drop.sql
@@ -1 +1 @@
-DROP TABLE EJB30_PERSISTENCE_EEM_INJECTION_PERSON;
+DROP TABLE EJB30_PERSISTENCE_EEM_INJECTION_PERSON;
