< prev index next >

jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/privateutil/MethodUtil.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 35,82 **** * to java.lang,reflect.Method.invoke() */ class MethodUtil { private static final Logger LOGGER = Logger.getLogger(MethodUtil.class.getName()); - private static final Method INVOKE_METHOD; - - static { - Method method; - try { - Class<?> clazz = Class.forName("sun.reflect.misc.MethodUtil"); - method = clazz.getMethod("invoke", Method.class, Object.class, Object[].class); - if (LOGGER.isLoggable(Level.FINE)) { - LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil found; it will be used to invoke methods."); - } - } catch (Throwable t) { - method = null; - if (LOGGER.isLoggable(Level.FINE)) { - LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil not found, probably non-Oracle JVM"); - } - } - INVOKE_METHOD = method; - } static Object invoke(Object target, Method method, Object[] args) throws IllegalAccessException, InvocationTargetException { - if (INVOKE_METHOD != null) { - // sun.reflect.misc.MethodUtil.invoke(method, owner, args) if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, "Invoking method using sun.reflect.misc.MethodUtil"); } try { ! return INVOKE_METHOD.invoke(null, method, target, args); } catch (InvocationTargetException ite) { // unwrap invocation exception added by reflection code ... throw unwrapException(ite); } - } else { - // other then Oracle JDK ... - if (LOGGER.isLoggable(Level.FINE)) { - LOGGER.log(Level.FINE, "Invoking method directly, probably non-Oracle JVM"); - } - return method.invoke(target, args); - } } private static InvocationTargetException unwrapException(InvocationTargetException ite) { Throwable targetException = ite.getTargetException(); if (targetException != null && targetException instanceof InvocationTargetException) { --- 35,55 ---- * to java.lang,reflect.Method.invoke() */ class MethodUtil { private static final Logger LOGGER = Logger.getLogger(MethodUtil.class.getName()); static Object invoke(Object target, Method method, Object[] args) throws IllegalAccessException, InvocationTargetException { if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, "Invoking method using sun.reflect.misc.MethodUtil"); } try { ! return com.sun.xml.internal.ws.policy.util.MethodUtil.invoke(method, target, args); } catch (InvocationTargetException ite) { // unwrap invocation exception added by reflection code ... throw unwrapException(ite); } } private static InvocationTargetException unwrapException(InvocationTargetException ite) { Throwable targetException = ite.getTargetException(); if (targetException != null && targetException instanceof InvocationTargetException) {
< prev index next >