[
https://issues.apache.org/jira/browse/NIFI-1378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15090862#comment-15090862
]
Joseph Witt commented on NIFI-1378:
-----------------------------------
problem is easily reproduced with this unit test
{code}
@Test
public void testInvalidURL() throws Exception {
GetJMSQueue getJmsQueue = new GetJMSQueue();
TestRunner runner = TestRunners.newTestRunner(getJmsQueue);
runner.setProperty(JmsProperties.JMS_PROVIDER,
JmsProperties.ACTIVEMQ_PROVIDER);
runner.setProperty(JmsProperties.URL, "localhost");
runner.setProperty(JmsProperties.DESTINATION_NAME, "queue.testing");
runner.setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE,
JmsProperties.ACK_MODE_AUTO);
runner.run();
}
{code}
The issue occurs here in
https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java#L366
That call does 'uri.getScheme()' and in this case where the URI is simply
'localhost' there is no scheme (it is null) and thus the NPE. So validation of
the URI for JMS should likely ensure the scheme is provided. Checking for a
spec on valid JMS URIs.
> GetJMSQueue throws NPE with invalid URL
> ---------------------------------------
>
> Key: NIFI-1378
> URL: https://issues.apache.org/jira/browse/NIFI-1378
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Affects Versions: 0.4.1
> Reporter: Joseph Witt
> Fix For: 0.5.0
>
>
> GetJMSQueue throws an NPE. Easily reproduced even without an actual JMS
> broker setup. Use a URL of 'localhost' and some bogus topic.
> {quote}
> 2016-01-10 01:20:23,430 WARN [Timer-Driven Process Thread-3]
> o.a.n.c.t.ContinuallyRunProcessorTask Administratively Yielding
> GetJMSQueue[id=e1ce5a1b-818a-4b84-b913-7
> 16e9206c73e] due to uncaught Exception: java.lang.NullPointerException
> 2016-01-10 01:20:23,431 WARN [Timer-Driven Process Thread-3]
> o.a.n.c.t.ContinuallyRunProcessorTask
> java.lang.NullPointerException: null
> at
> org.apache.nifi.processors.standard.util.JmsFactory.createConnectionFactory(JmsFactory.java:366)
> ~[na:na]
> at
> org.apache.nifi.processors.standard.util.JmsFactory.createConnection(JmsFactory.java:111)
> ~[na:na]
> at
> org.apache.nifi.processors.standard.util.JmsFactory.createConnection(JmsFactory.java:104)
> ~[na:na]
> at
> org.apache.nifi.processors.standard.util.JmsFactory.createQueueMessageConsumer(JmsFactory.java:239)
> ~[na:na]
> at
> org.apache.nifi.processors.standard.GetJMSQueue.onTrigger(GetJMSQueue.java:63)
> ~[na:na]
> at
> org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
> ~[nifi-api-1.1.1.0-12.jar:1.1.1.0-12]
> at
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1146)
> ~[nifi-framework-core-1.1.1.0-12.jar:1.1.1.0-12]
> at
> org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:139)
> [nifi-framework-core-1.1.1.0-12.jar:1.1.1.0-12]
> at
> org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:49)
> [nifi-framework-core-1.1.1.0-12.jar:1.1.1.0-12]
> at
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:119)
> [nifi-framework-core-1.1.1.0-12.jar:1.1.1.0-12]
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> [na:1.7.0_79]
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
> [na:1.7.0_79]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
> [na:1.7.0_79]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> [na:1.7.0_79]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> [na:1.7.0_79]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [na:1.7.0_79]
> at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)