Журнал Coldfusion и SVNKit

Я пытаюсь использовать SVNKit для получения журнала записей SVN в Coldfusion. Я скачал последние jar-файлы SVNKit и закинул их в папку lib в папке WEB-INF/lib.

Вот мой код, который должен возвращать массив записей журнала, но этот код возвращает исключение нулевого указателя в Coldfusion 9.0.2.

SVNURL = createObject('java','org.tmatesoft.svn.core.SVNURL').parseURIEncoded(svnurl);
drf = createObject("java","org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory");
drf.setup();

rf = drf.create(SVNURL);
SVNWCUtil = createObject("java","org.tmatesoft.svn.core.wc.SVNWCUtil");
authManager = SVNWCUtil.createDefaultAuthenticationManager(user,pass);

rf.setAuthenticationManager(authManager);

log = rf.log(JavaCast("String[]",[]),JavaCast("null",""),JavaCast("long",10),JavaCast("long",15),true,true);

rf.closeSession();

При запуске этого кода я получаю следующую ошибку.

Система попыталась использовать неопределенное значение, что обычно указывает на программную ошибку либо в вашем коде, либо в системном коде. Нулевые указатели — это еще одно название неопределенных значений.

Что указывает на эту строку..

log = rf.log(JavaCast("String[]",[]),JavaCast("null",""),JavaCast("long",10),JavaCast("long",15),true,true);

Я перенес этот же код в Railo, и все работает нормально. Я просто не понимаю, почему ACF задыхается от метода log().

Для начала я использовал пример Распечатка истории репозитория на SVNKit Wiki.

Мы будем очень признательны за любые предложения по работе с Adobe Coldfusion. На CF10 не тестировал.


person abbottmw    schedule 25.06.2013    source источник
comment
Возможно проблема в JVM. Сравните требования SVNKit JVM с тем, на чем работает CF9.0.2.   -  person imthepitts    schedule 25.06.2013
comment
Я не нашел, где перечислены требования SVNKit JVM, но я заменил JRE CF, который использует, и все равно получаю ошибку.   -  person abbottmw    schedule 25.06.2013
comment
Если вы сбрасываете rf, показывает ли он сигнатуру метода, который вы пытаетесь использовать?   -  person imthepitts    schedule 25.06.2013
comment
Хорошо... похоже, мне нужно было добавить JavaCast(boolean,true) к последним двум аргументам, чтобы заставить его работать. Да, rf содержит знак метода...   -  person abbottmw    schedule 25.06.2013


Ответы (1)


Я не использовал JavaCast("boolean",true) для последних двух аргументов в функции log(). После этого все работало нормально.

Не забудьте проверить и использовать JavaCast()!

log = rf.log(JavaCast("String[]",[]),JavaCast("null",""),JavaCast("long",10),JavaCast("long",15),JavaCast("boolean",true),JavaCast("boolean",true));
person abbottmw    schedule 25.06.2013