This is an automated email from the ASF dual-hosted git repository. rgoers pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/flume.git
commit 9f2807d5519f0ab25025f7a73bd1a8730fabba6f Author: Ralph Goers <[email protected]> AuthorDate: Thu Sep 22 14:43:32 2022 -0700 FLUME-3437 - Validate the provider url --- .../src/main/java/org/apache/flume/source/jms/JMSSource.java | 8 ++++++++ .../src/test/java/org/apache/flume/source/jms/TestJMSSource.java | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java b/flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java index 502938a1b..216225871 100644 --- a/flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java +++ b/flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java @@ -100,6 +100,14 @@ public class JMSSource extends AbstractPollableSource implements BatchSizeSuppor JMSSourceConfiguration.INITIAL_CONTEXT_FACTORY, "").trim(); providerUrl = context.getString(JMSSourceConfiguration.PROVIDER_URL, "").trim(); + try { + URI uri = new URI(providerUrl); + String scheme = uri.getScheme(); + assertTrue(scheme == null || scheme.equals(JAVA_SCHEME), + "Unsupported JNDI URI: " + providerUrl); + } catch (URISyntaxException ex) { + logger.warn("Invalid JNDI URI - {}", providerUrl); + } destinationName = context.getString(JMSSourceConfiguration.DESTINATION_NAME, "").trim(); diff --git a/flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java b/flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java index 5a008afd1..6414428aa 100644 --- a/flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java +++ b/flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java @@ -144,6 +144,13 @@ public class TestJMSSource extends JMSMessageConsumerTestBase { source.configure(context); } + @Test(expected = IllegalArgumentException.class) + public void testConfigureWithLdapProvider() throws Exception { + context.put(JMSSourceConfiguration.PROVIDER_URL, "ldap://localhost:389/test"); + source.configure(context); + } + + @Test public void testStartConsumerCreateThrowsException() throws Exception { doThrow(new RuntimeException("Expected")).when(source).createConsumer();
