@Override
    protected void parse(final ProtocolFactory protocols, final Local folder) throws AccessDeniedException {
        for(Local child : folder.list().filter(new Filter<Local>() {
            @Override
            public boolean accept(Local file) {
                if(file.isDirectory()) {
                    return true;
                }
                return "xml".equals(file.getExtension());
            }

            @Override
            public Pattern toPattern() {
                return Pattern.compile(".*\\.xml");
            }
        })) {
            if(child.isDirectory()) {
                this.parse(protocols, child);
            }
            else {
                this.read(protocols, child);
            }
        }
    }
@Test(expected = AccessDeniedException.class)
    public void testParse() throws Exception {
        new SmartFtpBookmarkCollection().read(new ProtocolFactory(), new Local(System.getProperty("java.io.tmpdir"), "f"));
    }