onInitialize();
AccessController.doPrivileged(new PrivilegedAction() { public Object run() { onInitialize(); return null; } });
	private final int incRefCount() {		final boolean initialize;		final int rc;		synchronized (initCloseLock) {			refCount++;			rc = refCount;			initialize = (refCount == 1);		}		log.debug("refCount.inc=" + rc);		if (initialize) {			final JNodeFrameBufferDevice dev = (JNodeFrameBufferDevice) GraphicsEnvironment					.getLocalGraphicsEnvironment().getDefaultScreenDevice();			if (dev == null) {				throw new AWTError("No framebuffer device found");			}            log.info("Supported graphics configurations: ");            GraphicsConfiguration[] configurations = dev.getConfigurations();            for(GraphicsConfiguration g_conf : configurations){                log.info(g_conf);            }            String screen_size = (String)AccessController.doPrivileged(new GetPropertyAction("jnode.awt.screensize", "none"));            if("none".equals(screen_size)) {			    config = (JNodeGraphicsConfiguration) dev.getDefaultConfiguration();            } else {                boolean found = false;                for(GraphicsConfiguration g_conf : configurations){                    if(screen_size.equals(g_conf.toString())){                        config = (JNodeGraphicsConfiguration) g_conf;                        found = true;                        break;                    }                }                if(!found){                    config = (JNodeGraphicsConfiguration) dev.getDefaultConfiguration();                }            }            log.info("Using: " + config);			this.api = dev.getAPI();			try {				log.debug("Opening AWT: Using device " + dev.getIDstring());				this.graphics = api.open(config.getConfig());				if (graphics == null) {					log.debug("No Graphics for device: " + dev.getIDstring());				}				screenSize.width = config.getConfig().getScreenWidth();				screenSize.height = config.getConfig().getScreenHeight();                                final EventQueue eventQueue = getSystemEventQueueImpl();				this.keyboardHandler = new KeyboardHandler(eventQueue);				this.mouseHandler = new MouseHandler(dev.getDevice(),						screenSize, eventQueue);                keyboardHandler.install();				onInitialize();				this.refCount = rc;			} catch (DeviceException ex) {				decRefCount(true);				throw (AWTError) new AWTError(ex.getMessage()).initCause(ex);			} catch (UnknownConfigurationException ex) {				decRefCount(true);				throw (AWTError) new AWTError(ex.getMessage()).initCause(ex);			} catch (AlreadyOpenException ex) {				decRefCount(true);				throw (AWTError) new AWTError(ex.getMessage()).initCause(ex);			} catch (Throwable ex) {				decRefCount(true);				log.error("Unknown exception", ex);				throw (AWTError) new AWTError(ex.getMessage()).initCause(ex);			}		}		return rc;	}