if (DBusConnection.EXCEPTION_DEBUG) DBEe.printStackTrace();
if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
   private DBusConnection(String address) throws DBusException   {      exportedObjects = new HashMap<String,ExportedObject>();      importedObjects = new HashMap<DBusInterface,RemoteObject>();      exportedObjects.put(null, new ExportedObject(new _globalhandler()));      handledSignals = new HashMap<SignalTuple,Vector<DBusSigHandler>>();      pendingCalls = new EfficientMap(PENDING_MAP_INITIAL_SIZE);      busnames = new Vector<String>();      outgoing = new EfficientQueue(PENDING_MAP_INITIAL_SIZE);      pendingErrors = new LinkedList<Error>();      runnables = new LinkedList<Runnable>();      workers = new LinkedList<_workerthread>();      objectTree = new ObjectTree();      synchronized (workers) {         for (int i = 0; i < THREADCOUNT; i++) {            _workerthread t = new _workerthread();            t.start();            workers.add(t);         }      }      _run = true;      synchronized (_reflock) {         _refcount = 1;       }      addr = address;         try {         transport = new Transport(addr);      } catch (IOException IOe) {         if (EXCEPTION_DEBUG)            IOe.printStackTrace();                     throw new DBusException("Failed to connect to bus "+IOe.getMessage());      }      // start listening      thread = new _thread();      thread.start();            // register disconnect handlers      DBusSigHandler h = new _sighandler();      addSigHandlerWithoutMatch(org.freedesktop.DBus.Local.Disconnected.class, h);      addSigHandlerWithoutMatch(org.freedesktop.DBus.NameAcquired.class, h);      // register ourselves      _dbus = (DBus) getRemoteObject("org.freedesktop.DBus", "/org/freedesktop/DBus", DBus.class);      try {         busnames.add(_dbus.Hello());      } catch (DBusExecutionException DBEe) {         if (DBusConnection.EXCEPTION_DEBUG) DBEe.printStackTrace();         throw new DBusException(DBEe.getMessage());      }   }