### Question:
JavaDCRInstrumenter extends AbstractDCRInstrumenter { private void instrumentInstance(Object target, Recorder recorder, InstrumentationFilter filter) throws NonInstrumentableTypeException { Class<?> c = target.getClass(); if (c.isArray()) { throw new NonInstrumentableTypeException("Can't instrument arrays"); } do { for (Method method : c.getDeclaredMethods()) { if (!Modifier.isStatic(method.getModifiers()) && filter.matches(method)) { getContext().add(target, method, TargetSource.FIRST_PARAMETER, recorder); } } c = c.getSuperclass(); } while (getContext().isInstrumentable(c)); } JavaDCRInstrumenter(DCRContext context); @Override String getDescription();  }### Answer:
@Test public void testInstrumentInstance() throws Exception { RecorderLocatorAccess.clearRecorders(); final MyClass c1 = new MyExtendedClass(); assertEquals(0, c1.getA()); final Object result = m_instrumenter.createInstrumentedProxy(null, m_recorder, c1); assertSame(c1, result); MyClass.staticSix(); assertEquals(0, c1.getA()); verify(m_recorder).start(); verify(m_recorder).end(true); final MyClass c2 = new MyClass(); assertEquals(0, c2.getA()); verifyNoMoreInteractions(m_recorder); }