Previous patch
d60dfbe inadvertently made use of
ReflectiveOperationException, which was introduced in Java 7.
To continue being able to compile the agent with Java 6, we
can list individual exception types instead.
Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
package org.lttng.ust.agent;
import java.lang.reflect.Constructor;
package org.lttng.ust.agent;
import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.logging.Handler;
import java.util.logging.Logger;
import java.lang.reflect.Method;
import java.util.logging.Handler;
import java.util.logging.Logger;
/* Attach the handler to the root JUL logger */
Logger.getLogger("").addHandler((Handler) julHandler);
/* Attach the handler to the root JUL logger */
Logger.getLogger("").addHandler((Handler) julHandler);
- } catch (ReflectiveOperationException e) {
- * LTTng JUL classes not found, no need to create the relevant
- * objects
+ * If any of the following exceptions happen, it means we could not
+ * find or initialize LTTng JUL classes. We will not setup LTTng JUL
+ * tracing in this case.
+ } catch (SecurityException e) {
+ } catch (IllegalAccessException e) {
+ } catch (IllegalArgumentException e) {
+ } catch (ClassNotFoundException e) {
+ } catch (NoSuchMethodException e) {
+ } catch (InstantiationException e) {
+ } catch (InvocationTargetException e) {
Class<?> log4jAppenderClass = Class.forName("org.lttng.ust.agent.log4j.LttngLogAppender");
Constructor<?> log4jAppendCtor = log4jAppenderClass.getConstructor();
log4jAppender = (ILttngHandler) log4jAppendCtor.newInstance();
Class<?> log4jAppenderClass = Class.forName("org.lttng.ust.agent.log4j.LttngLogAppender");
Constructor<?> log4jAppendCtor = log4jAppenderClass.getConstructor();
log4jAppender = (ILttngHandler) log4jAppendCtor.newInstance();
- } catch (ReflectiveOperationException e) {
- * LTTng Log4j classes not found, no need to create the relevant
- * objects.
+ * If any of the following exceptions happen, it means we could not
+ * find or initialize LTTng log4j classes. We will not setup LTTng
+ * log4j tracing in this case.
+ } catch (SecurityException e) {
+ return;
+ } catch (ClassNotFoundException e) {
+ return;
+ } catch (NoSuchMethodException e) {
+ return;
+ } catch (IllegalArgumentException e) {
+ return;
+ } catch (InstantiationException e) {
+ return;
+ } catch (IllegalAccessException e) {
+ return;
+ } catch (InvocationTargetException e) {
Object rootLogger = getRootLoggerMethod.invoke(null, (Object[]) null);
addAppenderMethod.invoke(rootLogger, log4jAppender);
Object rootLogger = getRootLoggerMethod.invoke(null, (Object[]) null);
addAppenderMethod.invoke(rootLogger, log4jAppender);
- } catch (ReflectiveOperationException e) {
- * We have checked for the log4j library version previously, these
- * classes should exist.
+ * We have checked for the log4j library version previously, none of
+ * the following exceptions should happen.
- throw new IllegalStateException();
+ } catch (SecurityException e) {
+ throw new IllegalStateException(e);
+ } catch (ClassNotFoundException e) {
+ throw new IllegalStateException(e);
+ } catch (NoSuchMethodException e) {
+ throw new IllegalStateException(e);
+ } catch (IllegalArgumentException e) {
+ throw new IllegalStateException(e);
+ } catch (IllegalAccessException e) {
+ throw new IllegalStateException(e);
+ } catch (InvocationTargetException e) {
+ throw new IllegalStateException(e);
Object rootLogger = getRootLoggerMethod.invoke(null, (Object[]) null);
removeAppenderMethod.invoke(rootLogger, log4jAppender);
Object rootLogger = getRootLoggerMethod.invoke(null, (Object[]) null);
removeAppenderMethod.invoke(rootLogger, log4jAppender);
- } catch (ReflectiveOperationException e) {
- * We were able to attach the appender, we should not have problems
- * here either!
+ * We were able to attach the appender previously, we should not
+ * have problems here either!
- throw new IllegalStateException();
+ } catch (SecurityException e) {
+ throw new IllegalStateException(e);
+ } catch (ClassNotFoundException e) {
+ throw new IllegalStateException(e);
+ } catch (NoSuchMethodException e) {
+ throw new IllegalStateException(e);
+ } catch (IllegalArgumentException e) {
+ throw new IllegalStateException(e);
+ } catch (IllegalAccessException e) {
+ throw new IllegalStateException(e);
+ } catch (InvocationTargetException e) {
+ throw new IllegalStateException(e);
}
/* Close the appender */
}
/* Close the appender */