Hi Ronny, Ronny Standtke <[email protected]> writes: > This reproducibly failes with the following output: > /* File: org/freedesktop/UDisks2/Block.java */ > package org.freedesktop.UDisks2; > ERROR: Failed to parse DBus type signature: h (h). Attached you can find a patch which interprets UNIX_FD types (DBus char h) as an uint32, which is not an entirely satisfactory solution, but makes the tool work for most of the use-cases.
-- Best regards, Michael
>From 9531c9cb746ec67a57fc2c8d213ecd4679c93335 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg <[email protected]> Date: Wed, 17 Jun 2015 13:49:55 +0200 Subject: [PATCH] quick and dirty fix to make CreateInterface work with interfaces containing UNIX_FD --- org/freedesktop/dbus/Marshalling.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/org/freedesktop/dbus/Marshalling.java b/org/freedesktop/dbus/Marshalling.java index 06c9a8c..eec1e49 100644 --- a/org/freedesktop/dbus/Marshalling.java +++ b/org/freedesktop/dbus/Marshalling.java @@ -334,6 +334,11 @@ public class Marshalling c = getJavaType(dbus.substring(i+1), contained, 2); i+=c+1; break; + case 'h': + // TODO: Expose the additional fds that the UNIX_FD type + // provides. + rv.add(UInt32.class); + break; default: throw new DBusException(MessageFormat.format(_("Failed to parse DBus type signature: {0} ({1})."), new Object[] { dbus, dbus.charAt(i) })); } -- 2.1.0

