summaryrefslogtreecommitdiff
path: root/subversion/bindings/javahl/native/InputStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/bindings/javahl/native/InputStream.cpp')
-rw-r--r--subversion/bindings/javahl/native/InputStream.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/subversion/bindings/javahl/native/InputStream.cpp b/subversion/bindings/javahl/native/InputStream.cpp
index 1c73ba2..ac10f9e 100644
--- a/subversion/bindings/javahl/native/InputStream.cpp
+++ b/subversion/bindings/javahl/native/InputStream.cpp
@@ -54,7 +54,8 @@ svn_stream_t *InputStream::getStream(const SVN::Pool &pool)
// Create a stream with this as the baton and set the read and
// close functions.
svn_stream_t *ret = svn_stream_create(this, pool.getPool());
- svn_stream_set_read(ret, InputStream::read);
+ svn_stream_set_read2(ret, InputStream::read,
+ NULL /* only partial read support */);
svn_stream_set_close(ret, InputStream::close);
return ret;
}
@@ -68,6 +69,9 @@ svn_stream_t *InputStream::getStream(const SVN::Pool &pool)
*/
svn_error_t *InputStream::read(void *baton, char *buffer, apr_size_t *len)
{
+ if (0 == *len)
+ return SVN_NO_ERROR;
+
JNIEnv *env = JNIUtil::getEnv();
// An object of our class is passed in as the baton.
InputStream *that = static_cast<InputStream *>(baton);