[jira] [Commented] (NIFI-7600) Defining JMS attribute types breaks due to invalid characters

2020-07-23 Thread Darren Hitchman (Jira)


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

Darren Hitchman commented on NIFI-7600:
---

Thanks Bryan

Our NIFI code in production is broken due to this issue so I have had to patch 
it using the fix in INFI-7600. Do you know how I can help get this PR 
progressed ? It seems everyone is very busy atm with 1.12

Thanks
Darren




> Defining JMS attribute types breaks due to invalid characters
> -
>
> Key: NIFI-7600
> URL: https://issues.apache.org/jira/browse/NIFI-7600
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Extensions
>Affects Versions: 1.11.4
>Reporter: Darren Hitchman
>Assignee: Darren Hitchman
>Priority: Major
>  Labels: JMS
>   Original Estimate: 4h
>  Time Spent: 40m
>  Remaining Estimate: 3h 20m
>
> JMSPublisher causes Exception when setting attributes in the JMS message due 
> to invalid characters.  When defining types to be used when sending JMS 
> attributes (e.g. JMS_IBM_Encoding.type=integer) , the JMSPublishercorrectly 
> sets the type but also adds the '.type' attribute into the message, causing 
> an Exception as JMS doesnt support a dot character in attribute names. 
> NIFI-6957 was suppose to fix this however the change in JMSPublish was 
> removed.
> There is an option to 'allowIllegalChars' in PublishJMS however '.type' 
> attributes are passed along regardless of this setting.
>  
> The JMSPublisher should ignore message attributes ending with '.type' when 
> there is a matching attribute without the '.type' suffix
>  
> example exception.
>  
> com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0049: The 
> property name 'JMS_IBM_Encoding.type' is not a valid Java(tm) identifier.
> The supplied property name does not conform to the allowed format described 
> in the JMS specification.
> Check the characters used in the property name and modify as necessary.
>     at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>  Method)
>     at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>     at 
> java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>     at 
> java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
>     at 
> com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:319)
>     at 
> com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:226)
>     at 
> com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:126)
>     at 
> com.ibm.msg.client.jms.internal.JmsMessageImpl.checkPropName(JmsMessageImpl.java:2595)
>     at 
> com.ibm.msg.client.jms.internal.JmsMessageImpl.setStringProperty(JmsMessageImpl.java:1997)
>     at 
> com.ibm.jms.JMSMessage.setStringProperty(JMSMessage.java:1516)
>     at 
> jdk.internal.reflect.GeneratedMethodAccessor198.invoke(Unknown Source)
>     at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>     at 
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:254)
>     at 
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler$ProxiedReturnObjectInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:240)
>     at com.sun.proxy.$Proxy145.setStringProperty(Unknown Source)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher$JmsPropertySetterEnum.lambda$static$7(JMSPublisher.java:196)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher$JmsPropertySetterEnum.setProperty(JMSPublisher.java:205)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher.setMessageHeaderAndProperties(JMSPublisher.java:123)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher$1.createMessage(JMSPublisher.java:59)
>     at 
> org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:593)
>     at 
> org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:574)
>     at 
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:484)
>     at 
> org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:570)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher.publ

[jira] [Commented] (NIFI-7600) Defining JMS attribute types breaks due to invalid characters

2020-07-23 Thread Bryan Bende (Jira)


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

Bryan Bende commented on NIFI-7600:
---

Thanks for submitting this. I'm going to unset the fix version of 1.12.0 since 
this isn't a blocker for that release. 

> Defining JMS attribute types breaks due to invalid characters
> -
>
> Key: NIFI-7600
> URL: https://issues.apache.org/jira/browse/NIFI-7600
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Extensions
>Affects Versions: 1.11.4
>Reporter: Darren Hitchman
>Assignee: Darren Hitchman
>Priority: Major
>  Labels: JMS
> Fix For: 1.12.0
>
>   Original Estimate: 4h
>  Time Spent: 40m
>  Remaining Estimate: 3h 20m
>
> JMSPublisher causes Exception when setting attributes in the JMS message due 
> to invalid characters.  When defining types to be used when sending JMS 
> attributes (e.g. JMS_IBM_Encoding.type=integer) , the JMSPublishercorrectly 
> sets the type but also adds the '.type' attribute into the message, causing 
> an Exception as JMS doesnt support a dot character in attribute names. 
> NIFI-6957 was suppose to fix this however the change in JMSPublish was 
> removed.
> There is an option to 'allowIllegalChars' in PublishJMS however '.type' 
> attributes are passed along regardless of this setting.
>  
> The JMSPublisher should ignore message attributes ending with '.type' when 
> there is a matching attribute without the '.type' suffix
>  
> example exception.
>  
> com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0049: The 
> property name 'JMS_IBM_Encoding.type' is not a valid Java(tm) identifier.
> The supplied property name does not conform to the allowed format described 
> in the JMS specification.
> Check the characters used in the property name and modify as necessary.
>     at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>  Method)
>     at 
> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>     at 
> java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>     at 
> java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
>     at 
> com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:319)
>     at 
> com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:226)
>     at 
> com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:126)
>     at 
> com.ibm.msg.client.jms.internal.JmsMessageImpl.checkPropName(JmsMessageImpl.java:2595)
>     at 
> com.ibm.msg.client.jms.internal.JmsMessageImpl.setStringProperty(JmsMessageImpl.java:1997)
>     at 
> com.ibm.jms.JMSMessage.setStringProperty(JMSMessage.java:1516)
>     at 
> jdk.internal.reflect.GeneratedMethodAccessor198.invoke(Unknown Source)
>     at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>     at 
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:254)
>     at 
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler$ProxiedReturnObjectInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:240)
>     at com.sun.proxy.$Proxy145.setStringProperty(Unknown Source)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher$JmsPropertySetterEnum.lambda$static$7(JMSPublisher.java:196)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher$JmsPropertySetterEnum.setProperty(JMSPublisher.java:205)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher.setMessageHeaderAndProperties(JMSPublisher.java:123)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher$1.createMessage(JMSPublisher.java:59)
>     at 
> org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:593)
>     at 
> org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:574)
>     at 
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:484)
>     at 
> org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:570)
>     at 
> org.apache.nifi.jms.processors.JMSPublisher.publish(JMSPublisher.java:54)
>     at 
> org.apache.nifi.jms.processors.PublishJMS.rende