Integrate jakarta persistence 3.1.0-RC2

Signed-off-by: Arjan Tijms <arjan.tijms@gmail.com>
diff --git a/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/ProviderContainerContractInfoImpl.java b/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/ProviderContainerContractInfoImpl.java
index fb2300a..ec6b8a5 100644
--- a/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/ProviderContainerContractInfoImpl.java
+++ b/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/ProviderContainerContractInfoImpl.java
@@ -1,4 +1,5 @@
 /*
+ * Copyright (c) 2021 Contributors to the Eclipse Foundation.
  * Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -16,7 +17,6 @@
 
 package org.glassfish.appclient.client.acc;
 
-import com.sun.appserv.connectors.internal.api.ConnectorRuntime;
 import java.lang.instrument.ClassFileTransformer;
 import java.lang.instrument.IllegalClassFormatException;
 import java.lang.instrument.Instrumentation;
@@ -26,14 +26,18 @@
 import java.security.ProtectionDomain;
 import java.util.Collection;
 import java.util.HashSet;
-import jakarta.persistence.EntityManagerFactory;
-import jakarta.persistence.spi.ClassTransformer;
-import jakarta.validation.ValidatorFactory;
 
 import org.glassfish.api.deployment.DeploymentContext;
 import org.glassfish.deployment.common.RootDeploymentDescriptor;
 import org.glassfish.persistence.jpa.ProviderContainerContractInfoBase;
 
+import com.sun.appserv.connectors.internal.api.ConnectorRuntime;
+
+import jakarta.persistence.EntityManagerFactory;
+import jakarta.persistence.spi.ClassTransformer;
+import jakarta.persistence.spi.TransformerException;
+import jakarta.validation.ValidatorFactory;
+
 /**
  * Implements the internal GlassFish interface which all persistence provider
  * containers must.
@@ -133,8 +137,7 @@
         private final ClassTransformer persistenceTransformer;
         private final ClassLoader classLoader;
 
-        TransformerWrapper(final ClassTransformer persistenceTransformer,
-                final ClassLoader classLoader) {
+        TransformerWrapper(final ClassTransformer persistenceTransformer, final ClassLoader classLoader) {
             this.persistenceTransformer = persistenceTransformer;
             this.classLoader = classLoader;
         }
@@ -144,10 +147,13 @@
              * Do not even bother running the transformer unless the loader
              * loading the class is the ACC's class loader.
              */
-            return (loader.equals(classLoader) ?
-                persistenceTransformer.transform(loader, className,
-                    classBeingRedefined, protectionDomain, classfileBuffer)
-                : null);
+            try {
+                return loader.equals(classLoader) ? 
+                    persistenceTransformer.transform(loader, className, classBeingRedefined, protectionDomain, classfileBuffer) : 
+                    null;
+            } catch (TransformerException e) {
+                throw (IllegalClassFormatException) (new IllegalClassFormatException().initCause(e));
+            }
         }
     }
 
diff --git a/appserver/persistence/jpa-container/src/main/java/org/glassfish/persistence/jpa/ServerProviderContainerContractInfo.java b/appserver/persistence/jpa-container/src/main/java/org/glassfish/persistence/jpa/ServerProviderContainerContractInfo.java
index 20efec8..2fdd5af 100644
--- a/appserver/persistence/jpa-container/src/main/java/org/glassfish/persistence/jpa/ServerProviderContainerContractInfo.java
+++ b/appserver/persistence/jpa-container/src/main/java/org/glassfish/persistence/jpa/ServerProviderContainerContractInfo.java
@@ -1,4 +1,5 @@
 /*
+ * Copyright (c) 2021 Contributors to the Eclipse Foundation.
  * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -34,6 +35,7 @@
 
 import jakarta.persistence.EntityManagerFactory;
 import jakarta.persistence.spi.ClassTransformer;
+import jakarta.persistence.spi.TransformerException;
 import jakarta.validation.Validation;
 import jakarta.validation.ValidatorFactory;
 
@@ -78,7 +80,11 @@
             public byte[] transform(
                     ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain,
                     byte[] classfileBuffer) throws IllegalClassFormatException {
-                return transformer.transform(loader, className, classBeingRedefined, protectionDomain, classfileBuffer);
+                try {
+                    return transformer.transform(loader, className, classBeingRedefined, protectionDomain, classfileBuffer);
+                } catch (TransformerException e) {
+                    throw (IllegalClassFormatException) (new IllegalClassFormatException().initCause(e));
+                }
             }
         });
     }
diff --git a/appserver/pom.xml b/appserver/pom.xml
index acb7454..c3f4d7d 100644
--- a/appserver/pom.xml
+++ b/appserver/pom.xml
@@ -106,7 +106,7 @@
         <openmq.version>6.3.0-M1</openmq.version>
 
         <!-- Jakarta Persistence -->
-        <jakarta.persistence-api.version>3.1.0-RC1</jakarta.persistence-api.version>
+        <jakarta.persistence-api.version>3.1.0-RC2</jakarta.persistence-api.version>
         <eclipselink.version>4.0.0-M1</eclipselink.version>
         <eclipselink.asm.version>9.2.0</eclipselink.asm.version>