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;