[
https://issues.apache.org/jira/browse/NIFI-784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14640918#comment-14640918
]
ASF GitHub Bot commented on NIFI-784:
-------------------------------------
Github user markap14 commented on a diff in the pull request:
https://github.com/apache/nifi/pull/71#discussion_r35454037
--- Diff:
nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java
---
@@ -103,6 +105,8 @@
private volatile String configuredRouteStrategy =
ROUTE_STRATEGY.getDefaultValue();
private volatile Set<String> dynamicPropertyNames = new HashSet<>();
+ private final Map<Relationship, PropertyValue> propertyMap = new
HashMap<>();
--- End diff --
Map is both modified and read by multiple threads. This is a thread-safety
issue. If we change the 'final' modifier to 'volatile' it should address this
(assuming that the @OnUnscheduled annotation is changed to @OnStopped), since
it is modified only in the @OnScheduled and @OnStopped method, and no other
threads can be in this class at that time.
> Improve performance of RouteOnAttribute
> ---------------------------------------
>
> Key: NIFI-784
> URL: https://issues.apache.org/jira/browse/NIFI-784
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Extensions
> Reporter: Brian Ghigiarelli
> Labels: beginner, newbie
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> RouteOnAttribute has a couple inefficiencies:
> * Recalculating the dynamic properties into a HashMap for each message in
> onTrigger when this property map can be pre-computed when the processor is
> scheduled
> * Logger statements are concatenating strings instead of using lazy
> evaluation with a string formatter
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)