I think something is now up with withAutoConnect(false) in the latest code.
This on it's own ...
var bldr = DBusConnectionBuilder.forAddress(baddr);
bldr.transportConfig().withAutoConnect(false);
var conx = bldr.build();
conx.connect();
.. does not work, resulting in an exception when build() is called.
org.freedesktop.dbus.exceptions.DBusException: Not Connected
at org.freedesktop.dbus@5.0.0-SNAPSHOT/org.freedesktop.dbus.connections.impl.DBusConnection.connect(DBusConnection.java:98)
at org.freedesktop.dbus@5.0.0-SNAPSHOT/org.freedesktop.dbus.connections.impl.DBusConnectionBuilder.build(DBusConnectionBuilder.java:202)
at com.sshtools.djfeet.ui/com.sshtools.djfeet.ui.NewBusPage.run(NewBusPage.java:203)
You have to do this ...
var bldr = DBusConnectionBuilder.forAddress(baddr);
bldr.withRegisterSelf(false);
bldr.transportConfig().withAutoConnect(false);
var conx = bldr.build();
conx.connect();
This connects fine, but it means the Hello() was never sent and any subsequent messages are just going to fail. As far as I can tell, its not possible to send the hello myself either, as an internal list is updated at that point.
Incidentally, the reason I tried without auto-connect in the first place was to get some control over exceptions. I have an external transport (you may remember i mentioned an SSH transport before). If that SSH connection fails for a reason I know a retry will not help, I have to now throw a some unchecked exception (e.g. IllegalStateException) instead of IOException which seems to make it try again. I can defeat this behaviour by setting TransportConfig.setTimeout() to exactly 500.
I think something is now up with
withAutoConnect(false)
in the latest code.This on it's own ...
.. does not work, resulting in an exception when
build()
is called.You have to do this ...
This connects fine, but it means the
Hello()
was never sent and any subsequent messages are just going to fail. As far as I can tell, its not possible to send the hello myself either, as an internal list is updated at that point.Incidentally, the reason I tried without auto-connect in the first place was to get some control over exceptions. I have an external transport (you may remember i mentioned an SSH transport before). If that SSH connection fails for a reason I know a retry will not help, I have to now throw a some unchecked exception (e.g.
IllegalStateException
) instead ofIOException
which seems to make it try again. I can defeat this behaviour by settingTransportConfig.setTimeout()
to exactly 500.