[jira] [Commented] (NIFI-7600) Defining JMS attribute types breaks due to invalid characters
[ 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
[ 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