Skip to content

Commit

Permalink
[#noissue] Apply ReflectiveOperationException
Browse files Browse the repository at this point in the history
  • Loading branch information
emeroad committed Jul 7, 2023
1 parent fb2f60e commit f9aa761
Show file tree
Hide file tree
Showing 20 changed files with 61 additions and 74 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,8 @@ private static Constructor<? extends ClassLoader> getConstructor(String classLoa
try {
final Class<? extends ClassLoader> classLoaderClazz =
(Class<? extends ClassLoader>) Class.forName(classLoaderName, true, classLoader);
Constructor<? extends ClassLoader> constructor = classLoaderClazz.getDeclaredConstructor(String.class, URL[].class, ClassLoader.class, List.class);
return constructor;
} catch (Exception ex) {
return classLoaderClazz.getDeclaredConstructor(String.class, URL[].class, ClassLoader.class, List.class);
} catch (ReflectiveOperationException ex) {
throw new IllegalStateException(classLoaderName + " initialize fail Caused by:" + ex.getMessage(), ex);
}
}
Expand All @@ -48,7 +47,7 @@ private static Constructor<? extends ClassLoader> getConstructor(String classLoa
public ClassLoader createClassLoader(String name, URL[] urls, ClassLoader parent, List<String> libClass) {
try {
return constructor.newInstance(name, urls, parent, libClass);
} catch (Exception ex) {
} catch (ReflectiveOperationException ex) {
throw new IllegalStateException(constructor + " invoke fail Caused by:" + ex.getMessage(), ex);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ private static ClassLoaderFactory newParallelClassLoaderFactory() {
(Class<? extends ClassLoaderFactory>) Class.forName(PARALLEL_CLASS_LOADER_FACTORY, true, classLoader);
Constructor<? extends ClassLoaderFactory> constructor = classLoaderFactoryClazz.getDeclaredConstructor();
return constructor.newInstance();
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
throw new IllegalStateException(PARALLEL_CLASS_LOADER_FACTORY + " create fail Caused by:" + e.getMessage(), e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ private Object newModuleSupportFactory(Class<?> bootStrapClass) {
try {
Constructor<?> constructor = bootStrapClass.getDeclaredConstructor();
return constructor.newInstance();
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
throw new IllegalStateException("ModuleSupportFactory() initialize fail", e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,26 @@

package com.navercorp.pinpoint.plugin.tomcat.interceptor;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.navercorp.pinpoint.bootstrap.context.ServerMetaDataHolder;
import com.navercorp.pinpoint.bootstrap.context.TraceContext;
import com.navercorp.pinpoint.bootstrap.interceptor.AroundInterceptor;
import com.navercorp.pinpoint.bootstrap.logging.PLogger;
import com.navercorp.pinpoint.bootstrap.logging.PLoggerFactory;
import com.navercorp.pinpoint.common.util.StringUtils;
import org.apache.catalina.Container;
import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.loader.WebappLoader;

import com.navercorp.pinpoint.bootstrap.context.TraceContext;
import com.navercorp.pinpoint.bootstrap.interceptor.AroundInterceptor;
import com.navercorp.pinpoint.bootstrap.logging.PLogger;
import com.navercorp.pinpoint.bootstrap.logging.PLoggerFactory;
import java.lang.reflect.Method;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* @author hyungil.jeong
Expand Down Expand Up @@ -77,7 +75,6 @@ public void after(Object target, Object[] args, Object result, Throwable throwab
}

private String extractContextKey(WebappLoader webappLoader) {
final String defaultContextName = "";
try {
Container container = extractContext(webappLoader);
// WebappLoader's associated Container should be a Context.
Expand All @@ -94,17 +91,17 @@ private String extractContextKey(WebappLoader webappLoader) {
sb.append(contextName);
return sb.toString();
}
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
// Same action for any and all exceptions.
logger.warn("Error extracting context name.", e);
}
return defaultContextName;
return "";
}

// FIXME Use reflection until we provide separate packages for instrumented libraries.
// Tomcat 8's WebappLoader does not have getContainer() method.
// Providing an optional package that calls WebappLoader.getContext() method could be an option.
private Container extractContext(WebappLoader webappLoader) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
private Container extractContext(WebappLoader webappLoader) throws ReflectiveOperationException {
Method m;
try {
// Tomcat 6, 7 - org.apache.catalina.loader.getContainer()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;
Expand Down Expand Up @@ -65,7 +64,7 @@ public void dumpInnerClassLamdbaMetaFactory() throws IOException {


@Test
public void transformTest() throws IOException, NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException {
public void transformTest() throws IOException, ReflectiveOperationException {

ClassLoader classLoader = this.getClass().getClassLoader();
String name = JavaAssistUtils.javaClassNameToJvmResourceName(UnsafeClassMock.class.getName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public static JavaModuleFactory lookup(Instrumentation instrumentation) {
try {
Constructor<JavaModuleFactory> constructor = javaModuleFactory.getDeclaredConstructor(Instrumentation.class);
return constructor.newInstance(instrumentation);
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
throw new IllegalStateException("JavaModuleFactory() invoke fail Caused by:" + e.getMessage(), e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ private ClassFileTransformer wrapJava9ClassFileTransformer(ClassFileTransformMod
Class<ClassFileTransformer> cftClass = (Class<ClassFileTransformer>) forName(moduleWrap, Object.class.getClassLoader());
Constructor<ClassFileTransformer> constructor = cftClass.getDeclaredConstructor(ClassFileTransformModuleAdaptor.class);
return constructor.newInstance(classFileTransformer);
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
throw new IllegalStateException(moduleWrap + " load fail Caused by:" + e.getMessage(), e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@

import com.navercorp.pinpoint.common.util.StringUtils;
import com.navercorp.pinpoint.exception.PinpointException;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.lang.reflect.Constructor;
import java.util.Objects;
Expand Down Expand Up @@ -71,7 +71,7 @@ public ModuleFactory resolve() {
(Class<? extends ModuleFactory>) Class.forName(moduleFactoryClazzName, true, classLoader);
Constructor<? extends ModuleFactory> constructor = moduleFactoryClass.getConstructor();
return constructor.newInstance();
} catch (Exception ex) {
} catch (ReflectiveOperationException ex) {
logger.warn("{} ModuleFactory initialize fail", moduleFactoryClazzName, ex);
throw new PinpointException(moduleFactoryClazzName + " ModuleFactory initialize fail", ex);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
import com.navercorp.pinpoint.common.util.JvmVersion;
import com.navercorp.pinpoint.profiler.ShutdownHookRegister;
import com.navercorp.pinpoint.profiler.context.config.ContextConfig;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.lang.reflect.Constructor;
import java.util.Objects;
Expand Down Expand Up @@ -105,7 +105,7 @@ private ShutdownHookRegister createShutdownHookRegister(String classToLoad) {
logger.warn("Unknown ShutdownHookRegister : {}", classToLoad);
return RUNTIME_SHUTDOWN_HOOK_REGISTER;
}
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
logger.warn("Error creating ShutdownHookRegister [" + classToLoad + "]", e);
}
return RUNTIME_SHUTDOWN_HOOK_REGISTER;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.navercorp.pinpoint.profiler.monitor.metric.buffer.BufferMetric;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.lang.reflect.Constructor;

Expand Down Expand Up @@ -53,7 +53,7 @@ private BufferMetric createBufferMetric(String classToLoad) {
Class<BufferMetric> bufferMetricClass = (Class<BufferMetric>) Class.forName(classToLoad);
Constructor<BufferMetric> bufferMetricConstructor = bufferMetricClass.getConstructor();
return bufferMetricConstructor.newInstance();
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
logger.warn("BufferMetric initialize fail: {}", classToLoad);
return BufferMetric.UNSUPPORTED_BUFFER_METRIC;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
import com.navercorp.pinpoint.common.util.JvmUtils;
import com.navercorp.pinpoint.profiler.context.config.ContextConfig;
import com.navercorp.pinpoint.profiler.monitor.metric.cpu.CpuLoadMetric;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.lang.reflect.Constructor;
import java.util.Objects;
Expand Down Expand Up @@ -85,7 +85,7 @@ private CpuLoadMetric createCpuLoadMetric(String classToLoad) {
logger.warn("Unknown CpuLoadMetric : {}", classToLoad);
return CpuLoadMetric.UNSUPPORTED_CPU_LOAD_METRIC;
}
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
logger.warn("Error creating CpuLoadMetric [" + classToLoad + "]");
return CpuLoadMetric.UNSUPPORTED_CPU_LOAD_METRIC;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
import com.navercorp.pinpoint.common.util.OsUtils;
import com.navercorp.pinpoint.profiler.context.config.ContextConfig;
import com.navercorp.pinpoint.profiler.monitor.metric.filedescriptor.FileDescriptorMetric;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.lang.reflect.Constructor;
import java.util.EnumSet;
Expand Down Expand Up @@ -135,7 +135,7 @@ private FileDescriptorMetric createFileDescriptorMetric(String classToLoad) {
logger.warn("Unknown FileDescriptorMetric : {}", classToLoad);
return FileDescriptorMetric.UNSUPPORTED_FILE_DESCRIPTOR_METRIC;
}
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
logger.warn("Error creating FileDescriptorMetric [{}]", classToLoad);
return FileDescriptorMetric.UNSUPPORTED_FILE_DESCRIPTOR_METRIC;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ private static DefineClass newDefineClass() {
Class<DefineClass> defineClassClazz = (Class<DefineClass>) agentClassLoader.loadClass(name);
Constructor<DefineClass> constructor = defineClassClazz.getDeclaredConstructor();
return constructor.newInstance();
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
throw new IllegalStateException(name + " create fail Caused by:" + e.getMessage(), e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@

package com.navercorp.pinpoint.profiler.instrument.classloading;

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/**
Expand All @@ -34,7 +33,7 @@ final class ReflectionDefineClass implements DefineClass {
try {
DEFINE_CLASS = ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class);
DEFINE_CLASS.setAccessible(true);
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
throw new IllegalStateException("Cannot access ClassLoader.defineClass(String, byte[], int, int)", e);
}
}
Expand All @@ -46,9 +45,7 @@ public Class<?> defineClass(ClassLoader classLoader, String name, byte[] bytes)
}
try {
return (Class<?>) DEFINE_CLASS.invoke(classLoader, name, bytes, 0, bytes.length);
} catch (IllegalAccessException e) {
throw handleDefineClassFail(classLoader, name, e);
} catch (InvocationTargetException e) {
} catch (ReflectiveOperationException e) {
throw handleDefineClassFail(classLoader, name, e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,16 @@

package com.navercorp.pinpoint.profiler.instrument.classloading;

import java.util.Objects;
import com.navercorp.pinpoint.exception.PinpointException;
import com.navercorp.pinpoint.profiler.plugin.PluginConfig;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Objects;

/**
* @author Woonduk Kang(emeroad)
Expand All @@ -43,7 +42,7 @@ public class URLClassLoaderHandler implements ClassInjector {
try {
ADD_URL = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
ADD_URL.setAccessible(true);
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
throw new IllegalStateException("Cannot access URLClassLoader.addURL(URL)", e);
}
}
Expand All @@ -63,7 +62,7 @@ public <T> Class<? extends T> injectClass(ClassLoader classLoader, String classN
addPluginURLIfAbsent(urlClassLoader);
return (Class<T>) urlClassLoader.loadClass(className);
}
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
logger.warn("Failed to load plugin class {} with classLoader {}", className, classLoader, e);
throw new PinpointException("Failed to load plugin class " + className + " with classLoader " + classLoader, e);
}
Expand All @@ -78,14 +77,14 @@ public InputStream getResourceAsStream(ClassLoader targetClassLoader, String int
addPluginURLIfAbsent(urlClassLoader);
return targetClassLoader.getResourceAsStream(internalName);
}
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
logger.warn("Failed to load plugin resource as stream {} with classLoader {}", internalName, targetClassLoader, e);
return null;
}
return null;
}

private void addPluginURLIfAbsent(URLClassLoader classLoader) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
private void addPluginURLIfAbsent(URLClassLoader classLoader) throws ReflectiveOperationException {
final URL[] urls = classLoader.getURLs();
if (urls != null) {
final boolean hasPluginJar = hasPluginJar(urls);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,11 @@
import com.navercorp.pinpoint.common.util.JvmVersion;
import com.navercorp.pinpoint.profiler.instrument.transformer.InnerClassLambdaMetafactoryTransformer;
import com.navercorp.pinpoint.profiler.util.JavaAssistUtils;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.Instrumentation;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/**
Expand Down Expand Up @@ -98,7 +96,7 @@ private String getDelegatorName() {
}
}

private void invoke(final LambdaBytecodeHandler lambdaBytecodeHandler, Class<?> clazz) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
private void invoke(final LambdaBytecodeHandler lambdaBytecodeHandler, Class<?> clazz) throws ReflectiveOperationException {
final Method register = clazz.getMethod("register", LambdaBytecodeHandler.class);
final boolean success = (Boolean) register.invoke(clazz, lambdaBytecodeHandler);
if (success) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

package com.navercorp.pinpoint.profiler.instrument.transformer;

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.IllegalClassFormatException;
Expand All @@ -44,7 +44,7 @@ public InnerClassLambdaMetafactoryTransformer() {
final Constructor<?> constructor = lambdaAdaptor.getConstructor();
this.lambdaFactoryClassAdaptor = constructor.newInstance();
this.transformMethod = lambdaAdaptor.getMethod("loadTransformedBytecode", byte[].class);
} catch (Exception e) {
} catch (ReflectiveOperationException e) {
throw new IllegalStateException("LambdaFactoryClassAdaptor initialize fail Caused by:" + e.getMessage(), e);
}
}
Expand Down
Loading

0 comments on commit f9aa761

Please sign in to comment.