diff options
Diffstat (limited to 'src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java')
-rw-r--r-- | src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java | 92 |
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; - } - -} - |