public void postInitFav(final FavoriteLoadHandler loadHandler) {
        this.addTask(new Runnable() {
            public void run() {
                try {
                    FavoriteList favList = new FavoriteList();
                    if (restoreFavList(favList)) {
                        saveFavList(favList);
                    }
                    loadHandler.handleList(favList.getInternalArray(), favList.getServerCrc());
                    nextIndex = favList.size();
                } catch (IOException e) {
                    //old version error when reading
                    if(LOG.isError()) {
                        LOG.error("FavoritePersistence.postInitFav().run()", e);
                    }
                    loadHandler.handleException(e); 
                    deleteAll();
                } catch (PermissionsException e) {
                    if(LOG.isError()) {
                        LOG.error("FavoritePersistence.postInitFav().run()", e);
                    }
                    loadHandler.handleException(e); 
                    //cannot do much;
                } catch (RuntimeException e) {
                    //this is can be a programming error 
                    //or undetected corrupted data 
                    if(LOG.isError()) {
                        LOG.error("FavoritePersistence.postInitFav().run()", e);
                    }
                    loadHandler.handleException(e); 
                    deleteAll();
                }
            }
        });
    }