diff --git a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionContext.java b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionContext.java index d70e2897f9..99d6f69261 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionContext.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionContext.java @@ -86,8 +86,8 @@ public class SpringSessionContext implements CurrentSessionContext { else if (value instanceof SessionHolder) { SessionHolder sessionHolder = (SessionHolder) value; Session session = sessionHolder.getSession(); - if (TransactionSynchronizationManager.isSynchronizationActive() && - !sessionHolder.isSynchronizedWithTransaction()) { + if (!sessionHolder.isSynchronizedWithTransaction() && + TransactionSynchronizationManager.isSynchronizationActive()) { TransactionSynchronizationManager.registerSynchronization( new SpringSessionSynchronization(sessionHolder, this.sessionFactory, false)); sessionHolder.setSynchronizedWithTransaction(true); diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java b/spring-tx/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java index ad6fe26042..693c43e093 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1272,6 +1272,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran this.logger = LogFactory.getLog(getClass()); } + /** * Holder for suspended resources. * Used internally by {@code suspend} and {@code resume}. @@ -1279,10 +1280,15 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran protected static class SuspendedResourcesHolder { private final Object suspendedResources; + private List suspendedSynchronizations; + private String name; + private boolean readOnly; + private Integer isolationLevel; + private boolean wasActive; private SuspendedResourcesHolder(Object suspendedResources) {