} catch (Exception ignore) { app.logEvent (this+": "+ignore);
    public void check () {	// long now = System.currentTimeMillis ();	// System.out.print ("checking "+Thread.currentThread ());	try {	    String[] list = appDir.list ();	    for (int i=0; i<list.length; i++) {	        File protoDir = new File (appDir, list[i]);	        // cut out ".." and other directories that contain "."	        if (isValidTypeName (list[i]) && protoDir.isDirectory ()) {	            Prototype proto = getPrototype (list[i]);	            if (proto != null) {	                // check if existing prototype needs update	                // app.logEvent (protoDir.lastModified ());	                updatePrototype (list[i], protoDir, proto);	            } else {	                // create new prototype	                proto = new Prototype (protoDir, app);	                registerPrototype (list[i], protoDir, proto);	                prototypes.put (list[i], proto);	                if ("hopobject".equalsIgnoreCase (list[i]))	                    nodeProto = proto;	                // give logger thread a chance to tell what's going on	                Thread.yield();	            }	        }	    }	} catch (Exception ignore) {	    app.logEvent (this+": "+ignore);	}	if (rewire) {	    // there have been changes @ DbMappings	    app.rewireDbMappings ();	    rewire = false;	}	// app.logEvent (" ...done @ "+ (System.currentTimeMillis () - now)+ "--- "+idleSeconds);    }