### Question:
KernelThread { public static KernelThread currentKernelThread() { synchronized (KernelThread.kernelThreads) { KernelThread kernelThread = KernelThread.kernelThreads.get(Thread.currentThread()); if (kernelThread == null) { kernelThread = new KernelThread(Thread.currentThread()); } return kernelThread; } } KernelThread(Thread thread); Thread getThread(); synchronized boolean isPrivileged(); static KernelThread getKernelThread(Thread t); static KernelThread currentKernelThread(); static void initSysCalls(List<Class> classes); synchronized User getUser(); synchronized void setUser(User user); static void doSysCall(Object obj, Method methodToCall, Object... args); final static Method getSysCallMethod(Class targetClass, String name); final synchronized String getCurrentDirectory(); final synchronized void setCurrentDirectory(String currentDirectory);  }### Answer:
@Test public void testCurrentKernelThread() throws Exception { KernelThread currentThread = KernelThread.currentKernelThread(); }