A bug with Scala's duck typing implementation allows methods of non-public classes that implement public interfaces (or override public base class methods) to get invoked directly on the non-public class' member (which is illegal and provokes an IllegalAccessException) rather than indirectly via the public parent class or interface method.
A bug with Scala's duck typing implementation allows methods of non-public classes that implement public interfaces (or override public base class methods) to get invoked directly on the non-public class' member (which is illegal and provokes an IllegalAccessException) rather than indirectly via the public parent class or interface method. The safeClose / ReflectUtils stuff is to work around that. When Scala's duck type bugs are fixed, this should be removed.