You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by gr...@apache.org on 2015/09/24 12:13:13 UTC
phoenix git commit: PHOENIX-2289 Avoid Class.getClassLoader calls
Repository: phoenix
Updated Branches:
refs/heads/4.x-HBase-1.0 c51c9fac6 -> 2b3dedde9
PHOENIX-2289 Avoid Class.getClassLoader calls
Cache the class loader from the PhoenixContextExecutor class
to avoid relatively expensive calls to Class.getClassLoader.
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/2b3dedde
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/2b3dedde
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/2b3dedde
Branch: refs/heads/4.x-HBase-1.0
Commit: 2b3dedde9fd4ae2a2f2abfacb13ef9bc3f71e59d
Parents: c51c9fa
Author: Gabriel Reid <ga...@ngdata.com>
Authored: Thu Sep 24 08:56:52 2015 +0200
Committer: Gabriel Reid <ga...@ngdata.com>
Committed: Thu Sep 24 12:04:25 2015 +0200
----------------------------------------------------------------------
.../org/apache/phoenix/util/PhoenixContextExecutor.java | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/2b3dedde/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixContextExecutor.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixContextExecutor.java b/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixContextExecutor.java
index 9106a5d..2da3249 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixContextExecutor.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixContextExecutor.java
@@ -36,14 +36,16 @@ import com.google.common.base.Throwables;
*/
public class PhoenixContextExecutor {
+ // We cache the class loader because calls to Class.getClassLoader are relatively expensive
+ private static final ClassLoader CACHED_CLASSLOADER = PhoenixContextExecutor.class.getClassLoader();
+
private static class CurrentContextWrapper implements CallWrapper {
private ClassLoader saveCcl;
@Override
public void before() {
saveCcl = Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(
- PhoenixContextExecutor.class.getClassLoader());
+ Thread.currentThread().setContextClassLoader(CACHED_CLASSLOADER);
}
@Override
@@ -72,8 +74,7 @@ public class PhoenixContextExecutor {
public static <T> T call(Callable<T> target) throws Exception {
ClassLoader saveCcl = Thread.currentThread().getContextClassLoader();
try {
- Thread.currentThread().setContextClassLoader(
- PhoenixContextExecutor.class.getClassLoader());
+ Thread.currentThread().setContextClassLoader(CACHED_CLASSLOADER);
return target.call();
} finally {
Thread.currentThread().setContextClassLoader(saveCcl);