Github user JoshRosen commented on the issue:

    https://github.com/apache/spark/pull/16866
  
    In terms of API compatibility, I believe that the classes in 
`network-common` are public simply due to being implemented in Java. However, 
for the sake of argument let's say that someone _did_ use them in their own 
code. Adding an exception to an interface shouldn't break binary compatibility 
because it doesn't change the method signature. It might result in weird 
runtime behavior since an exception might be thrown which client code doesn't 
expect, but I think that our network code can callback into Scala code which 
throws arbitrary exceptions, so this problem already existed.
    
    In terms of source compatibility, this would have an impact on external 
Java code building against these sources since that code would now need to 
throw a new exception, but I don't think this is a common use-case and there 
are easy workarounds in such cases (either update the code or update the build 
to compile against the old interface even though you run against the new 
implementation (since binary compat is the same)).


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