On 16.03.2015 17:54, Bert Huijben wrote:
A fix for this generic problem has been applied to trunk in r1664938 (further 
tweaks/extensions in 1664939,1664940,1664978,1664984).

Great -- this is exactly what I was looking for.

This introduces some behavior changes (such as the one you noted), so 
backporting needs discussion here. Thanks for starting the discussion ;-)

Silently dropping an exception and continuing to process the operation is quite unexpected. Hence, this could be considered as bugfix instead of behavior change :)

SVNKit usually allows to return a SubversionException from its various callbacks. As far as I understand your patch, it delivers the same Exception object which is thrown in Java code (possibly wrapped). So extending JavaHL's callback signatures by SubversionException would be reasonable, too. Use cases are mainly to deliver checked ProgressCancelledExceptions.

-Marc


On 16.03.2015 17:54, Bert Huijben wrote:


-----Original Message-----
From: Marc Strapetz [mailto:marc.strap...@syntevo.com]
Sent: maandag 16 maart 2015 17:30
To: dev@subversion.apache.org
Subject: JavaHL: Exceptions in LogMessageCallback.singleMessage should abort
the log immediately

If e.g. a RuntimeException is thrown in
LogMessageCallback#singleMessage, it's not processed in
LogMessageCallback::singleMessage and the log is continued nevertheless:

(1) At line 77 in LogMessageCallback.cpp, there should be returned an
appropriate error code.

(2) After line 122, JNIUtil::isJavaExceptionThrown() should be called
and there should be returned an appropriate error code.

In both cases, the returned error code should result in stopping the
low-level log; rethrowing the Exception in RemoteSession::getLog won't
be necessary, as this can be established easily from within client code
itself.

This is a common problem that applies to almost all callbacks in JavaHL in <= 
1.9.

A fix for this generic problem has been applied to trunk in r1664938 (further 
tweaks/extensions in 1664939,1664940,1664978,1664984).

This introduces some behavior changes (such as the one you noted), so 
backporting needs discussion here. Thanks for starting the discussion ;-)

        Bert



Reply via email to