[ https://issues.apache.org/jira/browse/KAFKA-5953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16174490#comment-16174490 ]
Jiri Pechanec edited comment on KAFKA-5953 at 9/21/17 9:19 AM: --------------------------------------------------------------- Maybe {{getResource}} method on ClassLoader should be overridden too. was (Author: jpechane): Maybe {getResource} method on ClassLoader should be overridden too. > Connect classloader isolation may be broken for JDBC drivers > ------------------------------------------------------------ > > Key: KAFKA-5953 > URL: https://issues.apache.org/jira/browse/KAFKA-5953 > Project: Kafka > Issue Type: Bug > Components: KafkaConnect > Affects Versions: 0.11.0.0 > Reporter: Jiri Pechanec > Priority: Critical > > Let's suppose there are two connectors deployed > # using JDBC driver (Debezium MySQL connector) > # using PostgreSQL JDBC driver (JDBC sink). > Connector 1 is started first - it executes a statement > {code:java} > Connection conn = DriverManager.getConnection(url, props); > {code} > As a result a {{DriverManager}} calls {{ServiceLoader}} and searches for all > JDBC drivers. The postgres driver from connector 2) is found associated with > classloader from connector 1). > Connector 2 is started after that - it executes a statement > {code:java} > connection = DriverManager.getConnection(url, username, password); > {code} > DriverManager finds the connector that was loaded in step before but becuase > the classloader is different - now we use classloader 2) so it refuses to > load the class and no JDBC driver is found. -- This message was sent by Atlassian JIRA (v6.4.14#64029)