dajac commented on a change in pull request #9334: URL: https://github.com/apache/kafka/pull/9334#discussion_r494856451
########## File path: core/src/main/scala/kafka/admin/TopicCommand.scala ########## @@ -69,16 +71,26 @@ object TopicCommand extends Logging { else if (opts.hasDeleteOption) topicService.deleteTopic(opts) } catch { + case e: ExecutionException => + if (e.getCause != null) + printException(e.getCause) + else + printException(e) + exitCode = 1 case e: Throwable => - println("Error while executing topic command : " + e.getMessage) - error(Utils.stackTrace(e)) + printException(e) exitCode = 1 } finally { topicService.close() Exit.exit(exitCode) } } + private def printException(e: Throwable): Unit = { + println("Error while executing topic command : " + e.getMessage) + error(Utils.stackTrace(e)) Review comment: That's a very good question. I guess that we did so in order to just print out the stacktrace without the message. Otherwise, we would have the error message printed out by the `println`, followed by the same message printed out by logger, followed by the stacktrace. Having the message twice is not necessary. I had a quick look at other commands and we do so everywhere. I will open a JIRA to make tools more consistent. Good idea. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to 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