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

ASF subversion and git services commented on NIFI-7226:
-------------------------------------------------------

Commit 7c57e75da42bf9ca8b8c0b609717314c84124970 in nifi's branch 
refs/heads/master from Peter Turcsanyi
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=7c57e75 ]

NIFI-7226: Add Connection Factory configuration properties to PublishJMS and 
ConsumeJMS processors

Some JMS client libraries may not work with the existing controller services 
due to incompatible
classloader handling between the 3rd party library and NiFi.
Via configuring the Connection Factory on the processor itself, only the 
processor's and its
children's classloaders will be used which eliminates the mentioned 
incompatibility.

This closes #4110.

Signed-off-by: Mark Payne <[email protected]>


> Add Connection Factory configuration properties to PublishJMS and ConsumeJMS 
> processors
> ---------------------------------------------------------------------------------------
>
>                 Key: NIFI-7226
>                 URL: https://issues.apache.org/jira/browse/NIFI-7226
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Extensions
>            Reporter: Peter Turcsanyi
>            Assignee: Peter Turcsanyi
>            Priority: Major
>          Time Spent: 3h
>  Remaining Estimate: 0h
>
> Connection factories can be configured via JndiJmsConnectionFactoryProvider 
> or JMSConnectionFactoryProvider controller services for PublishJMS / 
> ConsumeJMS.
> However, some JMS client libraries may not work with the controller services. 
> For example WebLogic JMS client throws the following exception when receiving 
> a certain type of messages:
> {code:java}
> java.lang.ClassCastException: 
> weblogic.diagnostics.context.DiagnosticContextImpl cannot be cast to 
> weblogic.workarea.WorkContext
> {code}
> This is due to incompatible Java ClassLoader handling between the WebLogic 
> JMS client library and NiFi. NiFi applies classloader isolation between its 
> components. Apparently there is also classloader manipulation within the 
> WebLogic client. These incompatible classloader switches lead to the 
> situation that some JMS client classes are loaded by the controller service's 
> classloader, while others by the WebLogic's custom classloader (which is a 
> child of the processor's classloader, so it is on a different branch in the 
> classloader hierarchy than the controller service).
> The issue can be eliminated by using the processor's classloader to load the 
> JMS client classes instead of the controller service's. This can be achieved 
> via configuring the connection factory on the processor itself.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to