rdhabalia closed pull request #2496: Fix: auto-ack flag always set true URL: https://github.com/apache/incubator-pulsar/pull/2496
This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java index 399e95a302..7eb1dff649 100644 --- a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java +++ b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java @@ -200,6 +200,7 @@ public void testCreateFunction() throws Exception { "--inputs", inputTopicName, "--output", outputTopicName, "--jar", "SomeJar.jar", + "--auto-ack", "false", "--tenant", "sample", "--namespace", "ns1", "--className", DummyFunction.class.getName(), @@ -209,6 +210,7 @@ public void testCreateFunction() throws Exception { assertEquals(fnName, creater.getFunctionName()); assertEquals(inputTopicName, creater.getInputs()); assertEquals(outputTopicName, creater.getOutput()); + assertEquals(false, creater.isAutoAck()); verify(functions, times(1)).createFunction(any(FunctionDetails.class), anyString()); diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java index 18d483c563..b58aa95aec 100644 --- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java +++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java @@ -311,8 +311,8 @@ void processArguments() throws Exception { // for backwards compatibility purposes @Parameter(names = "--autoAck", description = "Whether or not the framework will automatically acknowleges messages", hidden = true) protected Boolean DEPRECATED_autoAck = null; - @Parameter(names = "--auto-ack", description = "Whether or not the framework will automatically acknowleges messages") - protected Boolean autoAck ; + @Parameter(names = "--auto-ack", description = "Whether or not the framework will automatically acknowleges messages", arity = 1) + protected boolean autoAck = true; // for backwards compatibility purposes @Parameter(names = "--timeoutMs", description = "The message timeout in milliseconds", hidden = true) protected Long DEPRECATED_timeoutMs; @@ -451,11 +451,7 @@ void processArguments() throws Exception { functionConfig.setWindowConfig(windowConfig); - if (null != autoAck) { - functionConfig.setAutoAck(autoAck); - } else { - functionConfig.setAutoAck(true); - } + functionConfig.setAutoAck(autoAck); if (null != jarFile) { functionConfig.setJar(jarFile); @@ -570,7 +566,7 @@ private void inferMissingArguments(FunctionConfig functionConfig) { WindowUtils.inferDefaultConfigs(windowConfig); // set auto ack to false since windowing framework is responsible // for acking and not the function framework - if (autoAck != null && autoAck == true) { + if (autoAck) { throw new ParameterException("Cannot enable auto ack when using windowing functionality"); } functionConfig.setAutoAck(false); ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services