consistent use of JDK 1.5's ThreadLocal.remove() over ThreadLocal.set(null), preventing leaks (SPR-7441)

This commit is contained in:
Juergen Hoeller
2010-09-01 17:17:25 +00:00
parent 66a5bb7c22
commit e56cfb8173
14 changed files with 47 additions and 42 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2009 the original author or authors.
* Copyright 2002-2010 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.
@@ -96,7 +96,7 @@ public class ConnectionSpecConnectionFactoryAdapter extends DelegatingConnection
* @see #setConnectionSpecForCurrentThread
*/
public void removeConnectionSpecFromCurrentThread() {
this.threadBoundSpec.set(null);
this.threadBoundSpec.remove();
}

View File

@@ -223,7 +223,7 @@ public abstract class TransactionSynchronizationManager {
Object value = map.remove(actualKey);
// Remove entire ThreadLocal if empty...
if (map.isEmpty()) {
resources.set(null);
resources.remove();
}
if (value != null && logger.isTraceEnabled()) {
logger.trace("Removed value [" + value + "] for key [" + actualKey + "] from thread [" +
@@ -314,7 +314,7 @@ public abstract class TransactionSynchronizationManager {
throw new IllegalStateException("Cannot deactivate transaction synchronization - not active");
}
logger.trace("Clearing transaction synchronization");
synchronizations.set(null);
synchronizations.remove();
}