if (null == reply) throw new DBusExecutionException("No reply within specified time");
if (null == reply) throw new NoReply("No reply within specified time");
   public static Object executeRemoteMethod(RemoteObject ro, Method m, DBusConnection conn, Class<? extends DBusInterface> iface, boolean async, Object... args) throws DBusExecutionException   {      Type[] ts = m.getGenericParameterTypes();      try {         args = DBusConnection.convertParameters(args, ts);      } catch (Exception e) {         if (DBusConnection.EXCEPTION_DEBUG) e.printStackTrace();         throw new DBusExecutionException(e.getMessage());      }      MethodCall call = new MethodCall(ro.busname, ro.objectpath, DBusConnection.dollar_pattern.matcher(ro.iface.getName()).replaceAll("."), m.getName(), args);      if (ro.autostart) call.setFlags(MethodCall.AUTO_START);      if (async) call.setFlags(MethodCall.ASYNC);      if (m.isAnnotationPresent(DBus.Method.NoReply.class)) call.setFlags(MethodCall.NO_REPLY);      synchronized (conn.outgoing) {         conn.outgoing.add(call);      }      if (async) return new DBusAsyncReply(call, m);      // get reply      if (m.isAnnotationPresent(DBus.Method.NoReply.class)) return null;      DBusMessage reply = call.getReply();      if (null == reply) throw new DBusExecutionException("No reply within specified time");                     if (reply instanceof DBusErrorMessage)         ((DBusErrorMessage) reply).throwException();      return convertRV(reply.getParameters(), m);   }