This is a backward-compatible release with a few bugfixes:
- Python side: added a guard condition in object finalization to
prevent exceptions when the program exits (long standing bug!).
- Python side: The daemonize_redirect flag is not set to True by default to preserve backward compatibility prior to 0.9.
- Java side: Py4J will use the current thread’s classloader instead of
the root classloader to load a class from a fully qualified name. This
behavior is configurable globally in py4j.reflection.ReflectionUtil.
Thanks to @JoshRosen.
- Documentation: made a simpler and easier to understand example of
callback (Java calling Python).
- Github 0.9.2 milestone
If you see any backward-incompatible changes, do not hesitate to fill a bug report.
This release has been made possible by the generous contributions from many users. Every bug reports, patches, pull requests, ideas or help on the mailing list is greatly appreciated.
The next release major release, 0.10, will bring two exciting features
to Py4J: a new optional threading model that is more efficient with
recursion and callbacks and support for reading a byte stream from
Java by a Python client.
Unfortunately, the 0.10 release will break backward compatibility if
you extend Py4J (custom commands, GatewayServer listener,
GatewayServer extension), but it will be easy to adapt your code. If
you simply use Py4J by creating instances of GatewayServer and
JavaGateway, your code will work without any changes.