Skip to content

Instantly share code, notes, and snippets.

@scottmarlow
scottmarlow / gist:eba75649528d4c1262eabb6a71c80fc7
Created July 18, 2025 19:59
https://github.com/scottmarlow/wildfly/tree/WFLY-19554_cdijpa32_six test fails with org.jboss.weld.contexts.ContextNotActiveException: WELD-001303: No active contexts for scope type jakarta.transaction.TransactionScoped
[INFO] Running org.jboss.as.test.integration.jpa.cdi.CDIPersistenceTestCase
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.455 s <<< FAILURE! -- in org.jboss.as.test.integration.jpa.cdi.CDIPersistenceTestCase
[ERROR] org.jboss.as.test.integration.jpa.cdi.CDIPersistenceTestCase.doCMTTest -- Time elapsed: 0.247 s <<< ERROR!
jakarta.ejb.EJBException: org.jboss.weld.contexts.ContextNotActiveException: WELD-001303: No active contexts for scope type jakarta.transaction.TransactionScoped
at org.jboss.as.ejb3@37.0.0.Final-SNAPSHOT//org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:222)
at org.jboss.as.ejb3@37.0.0.Final-SNAPSHOT//org.jboss.as.ejb3.tx.CMTTxInterceptor.never(CMTTxInterceptor.java:338)
at org.jboss.as.ejb3@37.0.0.Final-SNAPSHOT//org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:130)
at org.jboss.invocation@2.0.1.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
Application improvements using transactions that are marked STATUS_MARKED_ROLLBACK in that the application was actually using a transaction but application was treated as if didn't have an active transaction:
1. TransactionScopedEntityManager.isInTx() (org.jboss.as.jpa.container) calls to TransactionUtil.isInTx(TransactionManager) (org.jboss.as.jpa.transaction)
AbstractEntityManager.detachQueryNonTxInvocation(EntityManager, Query) (org.jboss.as.jpa.container)
!this.isInTx() check so we changed from if ! (tx.getStatus() == Status.STATUS_ACTIVE) to if ! (tx.getStatus() == Status.STATUS_ACTIVE || tx.getStatus() == Status.STATUS_MARKED_ROLLBACK)
I think that this change is more correct for the STATUS_MARKED_ROLLBACK case.
// used by TransactionScopedEntityManager to detach entities loaded by a query in a non-Jakarta Transactions invocation.
Previously if transaction is STATUS_MARKED_ROLLBACK we would of treated that as non-active transaction and we would of cleared persistence context after query.getResu
@scottmarlow
scottmarlow / gist:13ce48bfda9a0556bb43653aa8acfc97
Created June 16, 2025 20:56
hackretryloadingdefiningloop.java
diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/ByteBuddyState.java b/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/ByteBuddyState.java
index 2bdfb646bf..613604561c 100644
--- a/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/ByteBuddyState.java
+++ b/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/ByteBuddyState.java
@@ -237,22 +237,25 @@ public final class ByteBuddyState {
catch (ClassNotFoundException e) {
// Ignore
}
- try {
- return make( makeClassFunction.apply( byteBuddy, new FixedNamingStrategy( className ) ) )
load:217, ByteBuddyState (org.hibernate.bytecode.internal.bytebuddy)
loadProxy:133, ByteBuddyState (org.hibernate.bytecode.internal.bytebuddy)
buildProxy:57, ByteBuddyProxyHelper (org.hibernate.proxy.pojo.bytebuddy)
postInstantiate:56, ByteBuddyProxyFactory (org.hibernate.proxy.pojo.bytebuddy)
createProxyFactory:280, EntityRepresentationStrategyPojoStandard (org.hibernate.metamodel.internal)
resolveProxyFactory:169, EntityRepresentationStrategyPojoStandard (org.hibernate.metamodel.internal)
<init>:135, EntityRepresentationStrategyPojoStandard (org.hibernate.metamodel.internal)
resolveStrategy:48, ManagedTypeRepresentationResolverStandard (org.hibernate.metamodel.internal)
<init>:517, AbstractEntityPersister (org.hibernate.persister.entity)
<init>:116, SingleTableEntityPersister (org.hibernate.persister.entity)
public Class<?> load(Class<?> referenceClass, String className, BiFunction<ByteBuddy, NamingStrategy, DynamicType.Builder<?>> makeClassFunction) {
if (result.getClassLoader() == referenceClass.getClassLoader()) {
try {
return referenceClass.getClassLoader().loadClass(className);
}
catch (ClassNotFoundException e) {
// Ignore
}
2025-06-09 14:48:56,493 INFO [org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState] (ServerService Thread Pool -- 10) xxx ByteBuddyState.load detected problem where loading generated class "com.sun.ts.tests.jpa.core.annotations.access.property.DataTypes2$HibernateAccessOptimizeratimeDataatsData" from a subdeployment is actually loading the generated class in the ear lib.
Details: referenceClass.getClassLoader() == ModuleClassLoader for Module "deployment.jpa_core_annotations_access_property_vehicles.ear.jpa_core_annotations_access_property_pmservlet_vehicle_web.war" from Service Module Loader
Loaded class classloader = ModuleClassLoader for Module "deployment.jpa_core_annotations_access_property_vehicles.ear" from Service Module Loader
2025-06-09 14:48:56,493 ERROR [stderr] (ServerService Thread Pool -- 10) java.lang.Exception: Stack trace
2025-06-09 14:48:56,493 ERROR [stderr] (ServerService Thread Pool -- 10) at java.base/java.lang.Thread.dumpStack(Thread.java:1389)
2025-06-09 14:48:56,493 ERROR [stde
2025-06-06 10:48:36,337 INFO [stdout] (default task-1) ************************************************************
2025-06-06 10:48:36,337 INFO [stdout] (default task-1) * props file set to "/tmp/smarlow-cts-props.txt"
2025-06-06 10:48:36,337 INFO [stdout] (default task-1) ************************************************************
2025-06-06 10:48:36,337 INFO [stdout] (default task-1) In doPost!
2025-06-06 10:48:36,340 INFO [stdout] (default task-1) ServletVehicle - got InputStream
2025-06-06 10:48:36,347 INFO [stdout] (default task-1) read properties!!!
2025-06-06 10:48:36,372 INFO [stdout] (default task-1) got outputstream
2025-06-06 10:48:36,467 INFO [org.hibernate.persister.entity.AbstractEntityPersister] (default task-1) xxx AbstractEntityPersister.getPropertyValuesToInsert called with entity DataTypes[id: 1, Character: a, Short: 100, Integer: 500, Long: 300, Double: 50.0, Float: 1.0, CharacterArrayData: [a],, ByteArrayData: [100],, shouldNotPersist: null] class from classloader ModuleClassLo
@scottmarlow
scottmarlow / gist:ad71dce4e856c0f5ed991156e15dbca0
Created June 6, 2025 14:09
ClassCastException's from jpa.core.annotations testing
test.log:[javatest.batch] 06-05-2025 19:04:04: SVR-ERROR: java.lang.ClassCastException: class com.sun.ts.tests.jpa.core.annotations.access.mappedsc.FullTimeEmployee cannot be cast to class com.sun.ts.tests.jpa.core.annotations.access.mappedsc.FullTimeEmployee (com.sun.ts.tests.jpa.core.annotations.access.mappedsc.FullTimeEmployee is in unnamed module of loader 'deployment.jpa_core_anno_access_mappedsc_vehicles.ear.jpa_core_anno_access_mappedsc_puservlet_vehicle_web.war' @1fc5fb10; com.sun.ts.tests.jpa.core.annotations.access.mappedsc.FullTimeEmployee is in unnamed module of loader 'deployment.jpa_core_anno_access_mappedsc_vehicles.ear' @349ae008)
test.log:[javatest.batch] 06-05-2025 19:05:14: SVR-ERROR: java.lang.ClassCastException: class com.sun.ts.tests.jpa.core.annotations.access.mappedsc.FullTimeEmployee cannot be cast to class com.sun.ts.tests.jpa.core.annotations.access.mappedsc.FullTimeEmployee (com.sun.ts.tests.jpa.core.annotations.access.mappedsc.FullTimeEmployee is in unnamed module of loader 'dep
@scottmarlow
scottmarlow / gist:041efa642d425eee79af860e3459c26f
Created June 5, 2025 10:55
org.jboss.as.test.integration.jpa.transaction.TransactionTestCase test failure caused by java.lang.IllegalStateException: There is no field invocationTarget$2b5kal2 defined on class org.jboss.as.test.integration.jpa.transaction.Employee$HibernateAccessOptimizer5address5name
org.jboss.arquillian.container.spi.client.container.DeploymentException: Cannot deploy jpa_transaction.jar: {"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-1" => {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"jpa_transaction.jar#unsynchronized\"" => "jakarta.persistence.PersistenceException: [PersistenceUnit: unsynchronized] Unable to build Hibernate SessionFactory
Caused by: jakarta.persistence.PersistenceException: [PersistenceUnit: unsynchronized] Unable to build Hibernate SessionFactory
Caused by: org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.SingleTableEntityPersister
Caused by: java.lang.IllegalStateException: There is no field invocationTarget$2b5kal2 defined on class org.jboss.as.test.integration.jpa.transaction.Employee$HibernateAccessOptimizer5address5name
Caused by: java.lang.NoSuchFieldException: invocationTarget$2b5kal2"}}}}
org.jboss.arquillian.container.spi.clien
1. Test settings:
export testName=propertyTypeTest1_from_pmservlet
export testFolder=jpa/core/annotations/access/property
export wildflytckroot=$PWD
export singlecpu=yes
2. Test notes:
Note that the EAR deployment contains jpa_core_annotations_access_property_pmservlet_vehicle_web.war (I'll refer to this war as pmservlet_vehicle_web.war) which is used for this test run. Other contained wars are deployed but not used in this test run.