rp = DBusConnection.deSerializeParameters(rp, ((ParameterizedType) m.getGenericReturnType()).getActualTypeArguments());
rp = Marshalling.deSerializeParameters(rp, ((ParameterizedType) m.getGenericReturnType()).getActualTypeArguments());
   public static Object convertRV(String sig, Object[] rp, Method m) throws DBusException   {      Class c = m.getReturnType();      if (null == rp) {          if(null == c || Void.TYPE.equals(c)) return null;         else throw new DBusExecutionException("Wrong return type (expected void)");      }      switch (rp.length) {         case 0:            if (null == c || Void.TYPE.equals(c))               return null;            else throw new DBusExecutionException("Wrong return type (expected void)");         case 1:            try {                rp = DBusConnection.deSerializeParameters(rp,                      new Type[] { m.getGenericReturnType() });            }            catch (Exception e) {                if (DBusConnection.EXCEPTION_DEBUG) e.printStackTrace();               throw new DBusExecutionException("Wrong return type (failed to de-serialize correct types: "+e.getMessage()+")");            }            return rp[0];         default:            // check we are meant to return multiple values            if (!Tuple.class.isAssignableFrom(c))               throw new DBusExecutionException("Wrong return type (not expecting Tuple)");            try {               rp = DBusConnection.deSerializeParameters(rp, ((ParameterizedType) m.getGenericReturnType()).getActualTypeArguments());            } catch (Exception e) {                if (DBusConnection.EXCEPTION_DEBUG) e.printStackTrace();               throw new DBusExecutionException("Wrong return type (failed to de-serialize correct types: "+e.getMessage()+")");            }            Constructor cons = c.getConstructors()[0];            try {               return cons.newInstance(rp);            } catch (Exception e) {               if (DBusConnection.EXCEPTION_DEBUG)                  e.printStackTrace();               throw new DBusException(e.getMessage());            }      }   }