test_class.declarator: OBJECT_METHODS = new HashMap<>()
test_class.modifier: private static final
test_class.original_string: private static final Map<String, Method> OBJECT_METHODS = new HashMap<>();
test_class.type: Map<String, Method>
test_class.var_name: OBJECT_METHODS
test_class.file: common/src/test/java/org/apache/cxf/dosgi/common/proxy/ServiceInvocationHandlerTest.java
test_class.identifier: ServiceInvocationHandlerTest
test_case.body: @Test
      public void testInvoke() throws Throwable {
          ServiceInvocationHandler sih = new ServiceInvocationHandler("hello", String.class);
          Method m = String.class.getMethod("length");
          assertEquals(5, sih.invoke(null, m, new Object[] {}));
      }
test_case.class_method_signature: ServiceInvocationHandlerTest.testInvoke()
test_case.full_signature: @Test public void testInvoke()
test_case.identifier: testInvoke
test_case.invocations: getMethod assertEquals invoke
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testInvoke()
focal_class.declarator: OBJECT_METHODS = Arrays.asList(Object.class.getMethods())
focal_class.modifier: private static final
focal_class.original_string: private static final Collection<Method> OBJECT_METHODS = Arrays.asList(Object.class.getMethods());
focal_class.type: Collection<Method>
focal_class.var_name: OBJECT_METHODS
focal_class.declarator: serviceObject
focal_class.modifier: private
focal_class.original_string: private Object serviceObject;
focal_class.type: Object
focal_class.var_name: serviceObject
focal_class.declarator: exceptionMapper
focal_class.modifier: private
focal_class.original_string: private ExceptionMapper exceptionMapper;
focal_class.type: ExceptionMapper
focal_class.var_name: exceptionMapper
focal_class.file: common/src/main/java/org/apache/cxf/dosgi/common/proxy/ServiceInvocationHandler.java
focal_class.identifier: ServiceInvocationHandler
focal_class.interfaces: implements InvocationHandler
focal_class.class_method_signature: ServiceInvocationHandler.ServiceInvocationHandler(Object serviceObject, Class<?> iType)
focal_class.full_signature:   ServiceInvocationHandler(Object serviceObject, Class<?> iType)
focal_class.identifier: ServiceInvocationHandler
focal_class.parameters: (Object serviceObject, Class<?> iType)
focal_class.signature:  ServiceInvocationHandler(Object serviceObject, Class<?> iType)
focal_class.class_method_signature: ServiceInvocationHandler.invoke(Object proxy, final Method m, Object[] params)
focal_class.full_signature: @Override public Object invoke(Object proxy, final Method m, Object[] params)
focal_class.identifier: invoke
focal_class.modifiers: @Override public
focal_class.parameters: (Object proxy, final Method m, Object[] params)
focal_class.return: Object
focal_class.signature: Object invoke(Object proxy, final Method m, Object[] params)
focal_method.body: @Override
      public Object invoke(Object proxy, final Method m, Object[] params) throws Throwable {
          if (OBJECT_METHODS.contains(m)) {
              if (m.getName().equals("equals")) {
                  params = new Object[] {Proxy.getInvocationHandler(params[0])};
              }
              return m.invoke(this, params);
          }
  
          ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
          try {
              Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
              final Object[] paramsFinal = params;
              return AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
                  @Override
                  public Object run() throws Exception {
                      return m.invoke(serviceObject, paramsFinal);
                  }
              });
          } catch (Throwable ex) {
              Throwable theCause = ex.getCause() == null ? ex : ex.getCause();
              throw exceptionMapper.mapException(m, theCause);
          } finally {
              Thread.currentThread().setContextClassLoader(oldCl);
          }
      }
focal_method.class_method_signature: ServiceInvocationHandler.invoke(Object proxy, final Method m, Object[] params)
focal_method.full_signature: @Override public Object invoke(Object proxy, final Method m, Object[] params)
focal_method.identifier: invoke
focal_method.invocations: contains equals getName getInvocationHandler invoke getContextClassLoader currentThread setContextClassLoader currentThread getClassLoader getClass doPrivileged invoke getCause getCause mapException setContextClassLoader currentThread
focal_method.modifiers: @Override public
focal_method.parameters: (Object proxy, final Method m, Object[] params)
focal_method.return: Object
focal_method.signature: Object invoke(Object proxy, final Method m, Object[] params)