From a9df94eb85bd6e5d40927b6027b91be51ab24c75 Mon Sep 17 00:00:00 2001 From: Gail Badner Date: Tue, 7 Feb 2012 23:51:21 -0600 Subject: [PATCH] HHH-6984 : Only increment statistics if statistics are enabled --- .../PessimisticReadUpdateLockingStrategy.java | 18 +++++----- ...PessimisticWriteUpdateLockingStrategy.java | 18 +++++----- .../dialect/lock/UpdateLockingStrategy.java | 12 ++++--- .../engine/loading/CollectionLoadContext.java | 33 +++++++------------ 4 files changed, 35 insertions(+), 46 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/lock/PessimisticReadUpdateLockingStrategy.java b/hibernate-core/src/main/java/org/hibernate/dialect/lock/PessimisticReadUpdateLockingStrategy.java index 18bb41593a..1c028095e8 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/lock/PessimisticReadUpdateLockingStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/lock/PessimisticReadUpdateLockingStrategy.java @@ -23,24 +23,20 @@ */ package org.hibernate.dialect.lock; -import java.io.Serializable; -import java.sql.PreparedStatement; -import java.sql.SQLException; - +import org.hibernate.*; import org.hibernate.engine.SessionFactoryImplementor; import org.hibernate.engine.SessionImplementor; import org.hibernate.exception.JDBCExceptionHelper; import org.hibernate.persister.entity.Lockable; import org.hibernate.pretty.MessageHelper; import org.hibernate.sql.Update; -import org.hibernate.LockMode; -import org.hibernate.HibernateException; -import org.hibernate.StaleObjectStateException; -import org.hibernate.JDBCException; -import org.hibernate.PessimisticLockException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.SQLException; + /** * A pessimistic locking strategy where the locks are obtained through update statements. *

@@ -109,7 +105,9 @@ public void lock( int affected = st.executeUpdate(); if ( affected < 0 ) { // todo: should this instead check for exactly one row modified? - factory.getStatisticsImplementor().optimisticFailure( lockable.getEntityName() ); + if (factory.getStatistics().isStatisticsEnabled()) { + factory.getStatisticsImplementor().optimisticFailure( lockable.getEntityName() ); + } throw new StaleObjectStateException( lockable.getEntityName(), id ); } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/lock/PessimisticWriteUpdateLockingStrategy.java b/hibernate-core/src/main/java/org/hibernate/dialect/lock/PessimisticWriteUpdateLockingStrategy.java index ad90d56a14..038ddca7d1 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/lock/PessimisticWriteUpdateLockingStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/lock/PessimisticWriteUpdateLockingStrategy.java @@ -23,24 +23,20 @@ */ package org.hibernate.dialect.lock; -import java.io.Serializable; -import java.sql.PreparedStatement; -import java.sql.SQLException; - +import org.hibernate.*; import org.hibernate.engine.SessionFactoryImplementor; import org.hibernate.engine.SessionImplementor; import org.hibernate.exception.JDBCExceptionHelper; import org.hibernate.persister.entity.Lockable; import org.hibernate.pretty.MessageHelper; import org.hibernate.sql.Update; -import org.hibernate.LockMode; -import org.hibernate.HibernateException; -import org.hibernate.StaleObjectStateException; -import org.hibernate.JDBCException; -import org.hibernate.PessimisticLockException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.SQLException; + /** * A pessimistic locking strategy where the locks are obtained through update statements. *

@@ -109,7 +105,9 @@ public void lock( int affected = st.executeUpdate(); if ( affected < 0 ) { // todo: should this instead check for exactly one row modified? - factory.getStatisticsImplementor().optimisticFailure( lockable.getEntityName() ); + if (factory.getStatistics().isStatisticsEnabled()) { + factory.getStatisticsImplementor().optimisticFailure( lockable.getEntityName() ); + } throw new StaleObjectStateException( lockable.getEntityName(), id ); } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/lock/UpdateLockingStrategy.java b/hibernate-core/src/main/java/org/hibernate/dialect/lock/UpdateLockingStrategy.java index 9f2e8505e8..12058fa5b0 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/lock/UpdateLockingStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/lock/UpdateLockingStrategy.java @@ -23,10 +23,6 @@ */ package org.hibernate.dialect.lock; -import java.io.Serializable; -import java.sql.PreparedStatement; -import java.sql.SQLException; - import org.hibernate.HibernateException; import org.hibernate.JDBCException; import org.hibernate.LockMode; @@ -40,6 +36,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.SQLException; + /** * A locking strategy where the locks are obtained through update statements. *

@@ -107,7 +107,9 @@ public void lock( int affected = st.executeUpdate(); if ( affected < 0 ) { - factory.getStatisticsImplementor().optimisticFailure( lockable.getEntityName() ); + if (factory.getStatistics().isStatisticsEnabled()) { + factory.getStatisticsImplementor().optimisticFailure( lockable.getEntityName() ); + } throw new StaleObjectStateException( lockable.getEntityName(), id ); } diff --git a/hibernate-core/src/main/java/org/hibernate/engine/loading/CollectionLoadContext.java b/hibernate-core/src/main/java/org/hibernate/engine/loading/CollectionLoadContext.java index 7ba144cc0e..6350f84f3b 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/loading/CollectionLoadContext.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/loading/CollectionLoadContext.java @@ -24,30 +24,21 @@ */ package org.hibernate.engine.loading; -import java.sql.ResultSet; -import java.io.Serializable; -import java.util.List; -import java.util.Iterator; -import java.util.ArrayList; -import java.util.Set; -import java.util.HashSet; - +import org.hibernate.CacheMode; +import org.hibernate.EntityMode; +import org.hibernate.HibernateException; +import org.hibernate.cache.CacheKey; +import org.hibernate.cache.entry.CollectionCacheEntry; +import org.hibernate.collection.PersistentCollection; +import org.hibernate.engine.*; +import org.hibernate.persister.collection.CollectionPersister; +import org.hibernate.pretty.MessageHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.hibernate.HibernateException; -import org.hibernate.collection.PersistentCollection; -import org.hibernate.persister.collection.CollectionPersister; -import org.hibernate.EntityMode; -import org.hibernate.CacheMode; -import org.hibernate.cache.entry.CollectionCacheEntry; -import org.hibernate.cache.CacheKey; -import org.hibernate.pretty.MessageHelper; -import org.hibernate.engine.CollectionKey; -import org.hibernate.engine.Status; -import org.hibernate.engine.SessionImplementor; -import org.hibernate.engine.CollectionEntry; -import org.hibernate.engine.SessionFactoryImplementor; +import java.io.Serializable; +import java.sql.ResultSet; +import java.util.*; /** * Represents state associated with the processing of a given {@link ResultSet}