final boolean duplicates = false;
    public void testListener() throws Exception {        final Set addSet = new HashSet();        final Set commitSet = new HashSet();        final Set[] currentSet = new Set[] { null };        final boolean duplicates = false;        ISVNNotifyListener listener = new ISVNNotifyListener() {            public void setCommand(int command) {                if (command == ISVNNotifyListener.Command.ADD) {                    currentSet[0] = addSet;                } else {                    currentSet[0] = commitSet;                }            }                        public void logCommandLine(String commandLine) {}            public void logMessage(String message) {}            public void logError(String message) {}            public void logRevision(long revision) {}            public void logCompleted(String message) {}              public void onNotify(File path, SVNNodeKind kind) {                currentSet[0].add(path);            }        };                Target target = (Target)project.getTargets().get("testListener");        // first task is "copy", second one is "svn"        Task task = target.getTasks()[1];        SvnTask svnTask;        if (task instanceof UnknownElement) {            // not sure how ant works but it seems to work using that            UnknownElement unknownElement = (UnknownElement)task;            unknownElement.maybeConfigure();            svnTask = (SvnTask)unknownElement.getTask();         }else {            svnTask = (SvnTask)task;        }        svnTask.setJavahl(isJavaHLTest());        svnTask.setJavasvn(isJavaSVNTest());                svnTask.addNotifyListener(listener);        executeTarget("testListener");                assertEquals(6,addSet.size()); // 6 for add and 6 for commit                assertEquals(6,commitSet.size()); // 6 for add and 6 for commit                assertTrue(addSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest").getCanonicalFile()));        assertTrue(addSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/dir1").getCanonicalFile()));        assertTrue(addSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/dir1/file3.txt").getCanonicalFile()));                assertTrue(addSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/dir1/file4.txt").getCanonicalFile()));        assertTrue(addSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/file1.txt").getCanonicalFile()));        assertTrue(addSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/file2.txt").getCanonicalFile()));        assertTrue(commitSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest").getCanonicalFile()));        assertTrue(commitSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/dir1").getCanonicalFile()));        assertTrue(commitSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/dir1/file3.txt").getCanonicalFile()));                assertTrue(commitSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/dir1/file4.txt").getCanonicalFile()));        assertTrue(commitSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/file1.txt").getCanonicalFile()));        assertTrue(commitSet.contains(new File(WORKINGCOPY_DIR+"/listenerTest/file2.txt").getCanonicalFile()));            }