### Question:
JavaDCRInstrumenter extends AbstractDCRInstrumenter { private void instrumentClass(Class<?> targetClass, Recorder recorder, InstrumentationFilter filter) throws NonInstrumentableTypeException { if (targetClass.isArray()) { throw new NonInstrumentableTypeException("Can't instrument arrays"); } for (Constructor<?> constructor : targetClass.getDeclaredConstructors()) { getContext().add(targetClass, constructor, recorder); } for (Method method : targetClass.getDeclaredMethods()) { if (Modifier.isStatic(method.getModifiers()) && filter.matches(method)) { getContext().add(targetClass, method, TargetSource.CLASS, recorder); } } } JavaDCRInstrumenter(DCRContext context); @Override String getDescription();  }### Answer:
@Test @Ignore ("solcyr: This tests fails but I lack knowledge to understand it") public void testInstrumentClass() throws Exception { assertEquals(6, MyClass.staticSix()); final MyClass c1 = new MyClass(); assertEquals(0, c1.getA()); final Object result = m_instrumenter.createInstrumentedProxy(null, m_recorder, MyClass.class); assertSame(MyClass.class, result); MyClass.staticSix(); verify(m_recorder).start(); verify(m_recorder).end(true); assertEquals(0, c1.getA()); final MyClass c2 = new MyClass(); verify(m_recorder, times(3)).start(); verify(m_recorder, times(3)).end(true); assertEquals(0, c1.getA()); assertEquals(0, c2.getA()); m_instrumenter.createInstrumentedProxy(null, m_recorder, MyExtendedClass.class); MyClass.staticSix(); verify(m_recorder, times(4)).start(); verify(m_recorder, times(4)).end(true); verifyNoMoreInteractions(m_recorder); }