for (int i = 0; i < lastRepoScan.length; i++) {
for (int i = 0; i < list.size(); i++) {
    private void checkRepositories() throws IOException {        List list = app.getRepositories();        // first check if we need to create or adapt our array of last scans        if (lastRepoScan == null || lastRepoScan.length != list.size()) {            lastRepoScan = new long[list.size()];        }        // walk through repositories and check if any of them have changed.        for (int i = 0; i < lastRepoScan.length; i++) {            Repository repository = (Repository) list.get(i);            if (repository.lastModified() != lastRepoScan[i]) {                lastRepoScan[i] = repository.lastModified();                checkRepository(repository);            }        }        // loop through prototypes and check if type.properties needs updates        // it's important that we do this _after_ potentially new prototypes        // have been created in the previous loop.        for (Iterator i = prototypes.values().iterator(); i.hasNext();) {            Prototype proto = (Prototype) i.next();            // update prototype's type mapping            DbMapping dbmap = proto.getDbMapping();            if ((dbmap != null) && dbmap.needsUpdate()) {                // call dbmap.update(). This also checks the                // parent prototype for prototypes other than                // global and HopObject, which is a bit awkward...                // I mean we're the type manager, so this should                // be part of our job, right?                proto.props.update();                dbmap.update();            }        }    }