Вы должны вызывать этот метод только один раз, прежде чем создавать экземпляры репозитория в разных потоках.
Из SVNRepositoryFactoryImpl javadoc:
сделать это один раз в вашем приложении, прежде чем использовать библиотеку, позволяющую работать с хранилищем через svn-протокол (через svn и svn + ssh)
Вот пример кода с 2 репозиториями (мононить):
SVNRepositoryFactoryImpl.setup(); // ONCE!
String url1 = "svn://host1/path1";
SVNRepository repository1 = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url1));
String url2 = "svn://host2/path2";
SVNRepository repository2 = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url2));
В многопоточной среде вы можете создать класс, реализующий Runnable:
public class ProcessSVN implements Runnable {
private String url;
public ProcessSVN(String url) {
this.url = url;
}
public void run() {
SVNRepository repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url));
// do stuff with repository
}
}
И используйте это так:
SVNRepositoryFactoryImpl.setup(); // STILL ONCE!
(new Thread(new ProcessSVN("http://svnurl1"))).start();
(new Thread(new ProcessSVN("http://svnurl2"))).start();