We have had a few users report a weird error that looks like they are getting an ArrayIndexOutOfBoundsException except that it appears that it is coming out of the native code. This happens during an update operation. I am going to paste some of the native code in here, in case anyone sees anything in the array handling that looks wrong. The use of ++i instead of i++ looks odd to me, but I am not a C++ programmer and the general code patterns.
const apr_array_header_t *array = targets.array(subPool); SVN_JNI_ERR(targets.error_occured(), NULL); SVN_JNI_ERR(svn_client_update4(&revs, array, revision.revision(), depth, depthIsSticky, ignoreExternals, allowUnverObstructions, TRUE /* adds_as_modification */, makeParents, ctx, subPool.getPool()), NULL); JNIEnv *env = JNIUtil::getEnv(); jlongArray jrevs = env->NewLongArray(revs->nelts); if (JNIUtil::isJavaExceptionThrown()) return NULL; jlong *jrevArray = env->GetLongArrayElements(jrevs, NULL); if (JNIUtil::isJavaExceptionThrown()) return NULL; for (int i = 0; i < revs->nelts; ++i) { jlong rev = APR_ARRAY_IDX(revs, i, svn_revnum_t); jrevArray[i] = rev; } env->ReleaseLongArrayElements(jrevs, jrevArray, 0); return jrevs; -- Thanks Mark Phippard http://markphip.blogspot.com/