aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java')
-rw-r--r--src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java92
1 files changed, 0 insertions, 92 deletions
diff --git a/src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java b/src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java
deleted file mode 100644
index bc741be..0000000
--- a/src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package org.junit.internal.management;
-
-import org.junit.internal.Classes;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-/**
- * Implementation of {@link ThreadMXBean} using the JVM reflectively.
- */
-final class ReflectiveThreadMXBean implements ThreadMXBean {
- private final Object threadMxBean;
-
-
- private static final class Holder {
- static final Method getThreadCpuTimeMethod;
- static final Method isThreadCpuTimeSupportedMethod;
-
- private static final String FAILURE_MESSAGE = "Unable to access ThreadMXBean";
-
- static {
- Method threadCpuTime = null;
- Method threadCpuTimeSupported = null;
- try {
- Class<?> threadMXBeanClass = Classes.getClass("java.lang.management.ThreadMXBean");
- threadCpuTime = threadMXBeanClass.getMethod("getThreadCpuTime", long.class);
- threadCpuTimeSupported = threadMXBeanClass.getMethod("isThreadCpuTimeSupported");
- } catch (ClassNotFoundException e) {
- // do nothing, the methods will be null on failure
- } catch (NoSuchMethodException e) {
- // do nothing, the methods will be null on failure
- } catch (SecurityException e) {
- // do nothing, the methods will be null on failure
- }
- getThreadCpuTimeMethod = threadCpuTime;
- isThreadCpuTimeSupportedMethod = threadCpuTimeSupported;
- }
- }
-
- ReflectiveThreadMXBean(Object threadMxBean) {
- super();
- this.threadMxBean = threadMxBean;
- }
-
- /**
- * {@inheritDoc}
- */
- public long getThreadCpuTime(long id) {
- if (Holder.getThreadCpuTimeMethod != null) {
- Exception error = null;
- try {
- return (Long) Holder.getThreadCpuTimeMethod.invoke(threadMxBean, id);
- } catch (ClassCastException e) {
- error = e;
- // fallthrough
- } catch (IllegalAccessException e) {
- error = e;
- // fallthrough
- } catch (IllegalArgumentException e) {
- error = e;
- // fallthrough
- } catch (InvocationTargetException e) {
- error = e;
- // fallthrough
- }
- throw new UnsupportedOperationException(Holder.FAILURE_MESSAGE, error);
- }
- throw new UnsupportedOperationException(Holder.FAILURE_MESSAGE);
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean isThreadCpuTimeSupported() {
- if (Holder.isThreadCpuTimeSupportedMethod != null) {
- try {
- return (Boolean) Holder.isThreadCpuTimeSupportedMethod.invoke(threadMxBean);
- } catch (ClassCastException e) {
- // fallthrough
- } catch (IllegalAccessException e) {
- // fallthrough
- } catch (IllegalArgumentException e) {
- // fallthrough
- } catch (InvocationTargetException e) {
- // fallthrough
- }
- }
- return false;
- }
-
-}
-