[ 
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)

Reply via email to