Github user rcsenkbeil commented on the pull request:

    https://github.com/apache/spark/pull/1929#issuecomment-52651504
  
    @heathermiller Thanks for the feedback! It looks like @gkossakowski 
commented here: 
[SI-6052](https://issues.scala-lang.org/browse/SI-6502?focusedCommentId=70407&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-70407).
    
    So, it looks like issues that might not be tackled by the current pull 
request are as follows:
    
    1. what should happen when appended jar contains package that overlap with 
what's already on classpath?
    2. what should happen when appended jar contains a class that shadows 
existing class?
    
    At least, he makes me believe that the invalidateClassPaths doesn't handle 
that. While I didn't mention it in the pull request earlier, I made assumptions 
that entries added wouldn't overlap with the existing classpaths. If the 
feature is added later to properly handle this, even better. For now, it looks 
like this implementation works as long as you don't add conflicting classpath 
entries. @mateiz, I'm not sure if that is a small enough problem for you to 
want this or not.
    
    Personally, I haven't run into these issues with Apache libraries that I've 
used with the patch. Nor have I run into issues trying out different jars for 
testing such as oddballs like [JGoodies](http://www.jgoodies.com/) and 
[lwjgl](http://lwjgl.org/). Obviously, if someone wants to import jars at 
runtime, they need to be aware of conflicting classes.
    
    I did just test this with the following files:
    
    Placed inside TestJar.jar
    ```
    package com.ibm.testjar;
    
    public class TestClass {
        public void runMe() {
            System.out.println("I WAS RUN!");
        }
    }
    ```
    
    Placed inside TestJar2.jar
    ```
    package com.ibm.testjar;
    
    public class TestClass2 {
        public void runMe() {
            System.out.println("I WAS ALSO RUN!");
        }
    }
    ```
    
    And running yields something like this:
    ```
    scala> :cp /path/to/TestJar.jar
    
    scala> :cp /path/to/TestJar2.jar
    
    scala> import com.ibm.testjar._
    
    scala> new TestClass().runMe
    I WAS RUN!
    scala> new TestClass2().runMe
    I WAS ALSO RUN!
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to