C0urante commented on PR #14064:
URL: https://github.com/apache/kafka/pull/14064#issuecomment-1660814545
Hmmm... getting an NPE when I try to run the command now:
```
Cannot invoke "java.util.Set.removeIf(java.util.function.Predicate)" because
the return value of "java.util.Map.get(Object)" is null
java.lang.NullPointerException: Cannot invoke
"java.util.Set.removeIf(java.util.function.Predicate)" because the return value
of "java.util.Map.get(Object)" is null
at
org.apache.kafka.tools.ConnectPluginPath.lambda$enumerateRows$5(ConnectPluginPath.java:289)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at
org.apache.kafka.connect.runtime.isolation.PluginScanResult.lambda$forEach$0(PluginScanResult.java:136)
at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4204)
at
org.apache.kafka.connect.runtime.isolation.PluginScanResult.forEach(PluginScanResult.java:136)
at
org.apache.kafka.tools.ConnectPluginPath.enumerateRows(ConnectPluginPath.java:285)
at
org.apache.kafka.tools.ConnectPluginPath.lambda$runCommand$2(ConnectPluginPath.java:234)
at
java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180)
at
java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at
java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at
org.apache.kafka.tools.ConnectPluginPath.runCommand(ConnectPluginPath.java:233)
at
org.apache.kafka.tools.ConnectPluginPath.mainNoExit(ConnectPluginPath.java:84)
at
org.apache.kafka.tools.ConnectPluginPath.main(ConnectPluginPath.java:76)
```
This happens with both the `--plugin-location` and `--plugin-path` flags,
when performed on directories that worked well with the CLI on previous commits.
Regarding "following the direct listing with a separator that is easy to
parse (an empty line), and then printing a summary (# of plugins, # of classes,
# of sink connectors, # that will be changed by sync-manifests, etc)" -- love
this, great idea 👍
Regarding the discussion on aliases and eager printing--what if we printed
the full set of aliases for each plugin without doing any collision detection,
which would allow us to print things eagerly, but then made a note of any
collisions that we detected in the summary section? IMO it's more valuable to
print things quickly than to have completely-accurate, collision-free info on
aliases, especially if running the script against a large plugin path.
As far as everything else goes--unlike most reviews, I'm doing a lot of
manual testing for this one, so I'll hold off on another complete round until
we can resolve the NPE issue; LMK if you're not getting the same thing and I
can try to figure out what's going wrong on my end.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]