[ 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)