This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit dd3f413463b533927cbee01217f5d1612770466c
Author: Federico Valeri <fvaleri@localhost>
AuthorDate: Thu Jul 4 14:46:22 2019 +0200

    Use safe method instead of setting accessible
---
 .../component/atomix/client/AbstractAtomixClientProducer.java     | 8 ++------
 .../component/flink/annotations/AnnotatedDataSetCallback.java     | 5 +++--
 .../component/spark/annotations/AnnotatedRddCallbackProxy.java    | 5 +++--
 .../main/java/org/apache/camel/support/IntrospectionSupport.java  | 4 ++--
 4 files changed, 10 insertions(+), 12 deletions(-)

diff --git 
a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientProducer.java
 
b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientProducer.java
index de6508b..9c4fbf9 100644
--- 
a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientProducer.java
+++ 
b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientProducer.java
@@ -24,20 +24,17 @@ import java.util.concurrent.ConcurrentMap;
 
 import io.atomix.resource.Resource;
 import org.apache.camel.AsyncCallback;
-import org.apache.camel.AsyncProcessor;
-import org.apache.camel.AsyncProducer;
 import org.apache.camel.Exchange;
 import org.apache.camel.InvokeOnHeader;
 import org.apache.camel.Message;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.atomix.AtomixAsyncMessageProcessor;
-import org.apache.camel.support.AsyncProcessorHelper;
 import org.apache.camel.support.DefaultAsyncProducer;
-import org.apache.camel.support.DefaultProducer;
 import org.apache.camel.util.ObjectHelper;
 
 import static 
org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_ACTION_HAS_RESULT;
 import static 
org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_NAME;
+import static org.apache.camel.support.ObjectHelper.invokeMethodSafe;
 
 public abstract class AbstractAtomixClientProducer<E extends 
AbstractAtomixClientEndpoint, R extends Resource> extends DefaultAsyncProducer {
 
@@ -128,7 +125,6 @@ public abstract class AbstractAtomixClientProducer<E 
extends AbstractAtomixClien
 
     private void bind(InvokeOnHeader annotation, final Method method) {
         if (method.getParameterCount() == 2) {
-            method.setAccessible(true);
 
             if 
(!Message.class.isAssignableFrom(method.getParameterTypes()[0])) {
                 throw new IllegalArgumentException("First argument should be 
of type Message");
@@ -140,7 +136,7 @@ public abstract class AbstractAtomixClientProducer<E 
extends AbstractAtomixClien
             log.debug("bind key={}, class={}, method={}",
                 annotation.value(), this.getClass(), method.getName());
 
-            this.processors.put(annotation.value(), (m, c) -> 
(boolean)method.invoke(this, m, c));
+            this.processors.put(annotation.value(), (m, c) -> 
(boolean)invokeMethodSafe(method, this, m, c));
         } else {
             throw new IllegalArgumentException(
                 "Illegal number of parameters for method: " + method.getName() 
+ ", required: 2, found: " + method.getParameterCount()
diff --git 
a/components/camel-flink/src/main/java/org/apache/camel/component/flink/annotations/AnnotatedDataSetCallback.java
 
b/components/camel-flink/src/main/java/org/apache/camel/component/flink/annotations/AnnotatedDataSetCallback.java
index 29c4520..2e43eb30 100644
--- 
a/components/camel-flink/src/main/java/org/apache/camel/component/flink/annotations/AnnotatedDataSetCallback.java
+++ 
b/components/camel-flink/src/main/java/org/apache/camel/component/flink/annotations/AnnotatedDataSetCallback.java
@@ -26,6 +26,7 @@ import org.apache.camel.CamelContext;
 import org.apache.flink.api.java.DataSet;
 
 import static org.apache.camel.util.ObjectHelper.findMethodsWithAnnotation;
+import static org.apache.camel.support.ObjectHelper.invokeMethodSafe;
 
 /**
  * Provides facade for working with annotated DataSet callbacks i.e. POJO 
classes with an appropriate annotations on
@@ -63,7 +64,6 @@ public class AnnotatedDataSetCallback implements 
org.apache.camel.component.flin
             }
 
             Method callbackMethod = dataSetCallbacks.get(0);
-            callbackMethod.setAccessible(true);
 
             if (camelContext != null) {
                 for (int i = 1; i < arguments.size(); i++) {
@@ -71,7 +71,8 @@ public class AnnotatedDataSetCallback implements 
org.apache.camel.component.flin
                 }
             }
 
-            return callbackMethod.invoke(objectWithCallback, 
arguments.toArray(new Object[arguments.size()]));
+            Object[] args = arguments.toArray(new Object[arguments.size()]);
+            return invokeMethodSafe(callbackMethod, objectWithCallback, args);
         } catch (IllegalAccessException | InvocationTargetException e) {
             throw new RuntimeException(e);
         }
diff --git 
a/components/camel-spark/src/main/java/org/apache/camel/component/spark/annotations/AnnotatedRddCallbackProxy.java
 
b/components/camel-spark/src/main/java/org/apache/camel/component/spark/annotations/AnnotatedRddCallbackProxy.java
index a06c6c7..3ac4732 100644
--- 
a/components/camel-spark/src/main/java/org/apache/camel/component/spark/annotations/AnnotatedRddCallbackProxy.java
+++ 
b/components/camel-spark/src/main/java/org/apache/camel/component/spark/annotations/AnnotatedRddCallbackProxy.java
@@ -28,6 +28,7 @@ import org.apache.camel.component.spark.RddCallback;
 import org.apache.spark.api.java.JavaRDDLike;
 
 import static org.apache.camel.util.ObjectHelper.findMethodsWithAnnotation;
+import static org.apache.camel.support.ObjectHelper.invokeMethodSafe;
 
 class AnnotatedRddCallbackProxy implements RddCallback {
 
@@ -61,7 +62,6 @@ class AnnotatedRddCallbackProxy implements RddCallback {
             }
 
             Method callbackMethod = rddCallbacks.get(0);
-            callbackMethod.setAccessible(true);
 
             if (camelContext != null) {
                 for (int i = 1; i < arguments.size(); i++) {
@@ -69,7 +69,8 @@ class AnnotatedRddCallbackProxy implements RddCallback {
                 }
             }
 
-            return callbackMethod.invoke(objectWithCallback, 
arguments.toArray(new Object[arguments.size()]));
+            Object[] args = arguments.toArray(new Object[arguments.size()]);
+            return invokeMethodSafe(callbackMethod, objectWithCallback, args);
         } catch (IllegalAccessException | InvocationTargetException e) {
             throw new RuntimeException(e);
         }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/IntrospectionSupport.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/IntrospectionSupport.java
index 2b450d6..cd8de9b 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/IntrospectionSupport.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/IntrospectionSupport.java
@@ -45,6 +45,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.util.ObjectHelper.isNotEmpty;
+import static org.apache.camel.support.ObjectHelper.invokeMethodSafe;
 
 /**
  * Helper for introspections of beans.
@@ -267,8 +268,7 @@ public final class IntrospectionSupport {
                 String name = info.getterOrSetterShorthandName;
                 try {
                     // we may want to set options on classes that has package 
view visibility, so override the accessible
-                    method.setAccessible(true);
-                    Object value = method.invoke(target);
+                    Object value = invokeMethodSafe(method, target, null);
                     if (value != null || includeNull) {
                         properties.put(optionPrefix + name, value);
                         rc = true;

Reply via email to