[ 
https://issues.apache.org/jira/browse/NIFI-1686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15213508#comment-15213508
 ] 

ASF GitHub Bot commented on NIFI-1686:
--------------------------------------

Github user olegz commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/305#discussion_r57530669
  
    --- Diff: 
nifi-nar-bundles/nifi-amqp-bundle/nifi-amqp-processors/src/main/java/org/apache/nifi/amqp/processors/AMQPUtils.java
 ---
    @@ -43,16 +41,48 @@
     
         private final static Logger logger = 
LoggerFactory.getLogger(AMQPUtils.class);
     
    -    private final static List<String> propertyNames = 
Arrays.asList("amqp$contentType", "amqp$contentEncoding",
    -            "amqp$headers", "amqp$deliveryMode", "amqp$priority", 
"amqp$correlationId", "amqp$replyTo",
    -            "amqp$expiration", "amqp$messageId", "amqp$timestamp", 
"amqp$type", "amqp$userId", "amqp$appId",
    -            "amqp$clusterId");
    -    /**
    -     * Returns a {@link List} of AMQP property names defined in
    -     * {@link BasicProperties}
    -     */
    -    public static List<String> getAmqpPropertyNames() {
    -        return propertyNames;
    +    public enum PropertyNames {
    --- End diff --
    
    +1 here, primarily due to the fact that now individual properties 
(especially non-Sttring-value type) may need additional logic to help with 
conversion and therefore would need to be individually referenced in several 
places.  


> NiFi is unable to populate over 1/4 of AMQP properties from flow properties
> ---------------------------------------------------------------------------
>
>                 Key: NIFI-1686
>                 URL: https://issues.apache.org/jira/browse/NIFI-1686
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 0.5.1
>            Reporter: Stephen Harper
>
> When creating a flow (we used ListenHTTP, but this bug will affect all) that 
> forwards on to a rabbit queue, org.apache.nifi.amqp.processors.PublishAMQP 
> uses the method extractAmqpPropertiesFromFlowFile to populate the AMQP 
> BasicProperties if the flow attributes match a certain format (i.e 
> amqp$contentType=text/xml). 
> The method in question uses reflection to find a matching method name from 
> the AMQP.BasicProperties class, and tries to populate accordingly.
> This works fine for all properties that take a String argument - however 
> there are some that don't (specifically, headers takes a Map<String, Object>, 
> deliveryMode and priority take Integer, and timestamp takes a Date), and it 
> is impossible to populate these values because the invocation assumes a 
> String is required, and fails on line 210.
> Whatsmore, the comment underneath (line 215) states that "this should really 
> never happen since it should be caught by the above IF" - however the author 
> of the code mustn't have tested all cases because this error is consistently 
> present when trying to forward flow attributes in over a quarter of the 
> available amqp properties.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to