[
https://issues.apache.org/jira/browse/KAFKA-4247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ryan P updated KAFKA-4247:
--------------------------
Description:
https://github.com/confluentinc/kafka/blob/trunk/bin/kafka-run-class.sh#L128-L133
In the event CLASSPATH has not yet been populated this will result in
:$file
Normally this wouldn't be a problem however Connect's AbstractClassHearder uses
ClasspathHelper.forJavaClassPath() to collect it's eligible classes.
With a leading colon you will endup with a entry for null which is expanded to
the working directory.
java -cp ":" test
[]
java -cp ":Users" test
[file:/Users/ryan/, file:/Users/ryan/Users]
This is problematic if the script was run from the root directory since
Reflections will scan the directories recursively. Ultimately leading to a
situation where the entire FileSystem is scanned. This has proven problematic
for some Docker installations.
Typically this is worked around by editing the the kafka-run-class script
however I think we should handle this within Connect itself by excluding the
root directory.
was:
https://github.com/confluentinc/kafka/blob/trunk/bin/kafka-run-class.sh#L128-L133
In the event CLASSPATH has not yet been populated this will result in
:$file
Normally this wouldn't be a problem however Connect's AbstractClassHearder uses
ClasspathHelper.forJavaClassPath() to collect it's eligible classes.
With a leading Colon you will endup with builder[0] = null which translates to
the working directory.
java -cp ":" test
[]
java -cp ":Users" test
[file:/Users/ryan/, file:/Users/ryan/Users]
This is problematic if the script was run from the root directory since
Reflections will scan the directories recursively. Ultimately leading to a
situation where the entire FileSystem is scanned. This has proven problematic
for some Docker installations.
Typically this is worked around by editing the the kafka-run-class script
however I think we should handle this within Connect itself by excluding the
root directory.
> kafka-run-class has potential to add a leading colon to classpath
> -----------------------------------------------------------------
>
> Key: KAFKA-4247
> URL: https://issues.apache.org/jira/browse/KAFKA-4247
> Project: Kafka
> Issue Type: Bug
> Components: KafkaConnect
> Reporter: Ryan P
> Assignee: Ryan P
>
> https://github.com/confluentinc/kafka/blob/trunk/bin/kafka-run-class.sh#L128-L133
> In the event CLASSPATH has not yet been populated this will result in
> :$file
> Normally this wouldn't be a problem however Connect's AbstractClassHearder
> uses ClasspathHelper.forJavaClassPath() to collect it's eligible classes.
> With a leading colon you will endup with a entry for null which is expanded
> to the working directory.
> java -cp ":" test
> []
> java -cp ":Users" test
> [file:/Users/ryan/, file:/Users/ryan/Users]
> This is problematic if the script was run from the root directory since
> Reflections will scan the directories recursively. Ultimately leading to a
> situation where the entire FileSystem is scanned. This has proven problematic
> for some Docker installations.
> Typically this is worked around by editing the the kafka-run-class script
> however I think we should handle this within Connect itself by excluding the
> root directory.
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)