On 06.07.2017 23:11, Philip Martin wrote: > Philip Martin <phi...@codematters.co.uk> writes: > >> I've upgraded my JDK and it produced all these warnings.
Adding the exception checks is correct. Rewriting everything to use the jniwrapper abstraction would be even better, but that's a huge-ish heap of work. > There is a second class of warnings of the form: > > WARNING: JNI local refs: 57, exceeds capacity: 56 > > These are generated in two places: JNIUtil::putErrorsInTrace() and > Java_org_apache_subversion_javahl_util_PropLib_unparseExternals(). > > I'm not sure how best to fix these so I have a local hack in > JNIUtil::wrappedCreateClientException to remove most of them: > > // Create a local frame for our references > - env->PushLocalFrame(LOCAL_FRAME_SIZE); > + env->PushLocalFrame(LOCAL_FRAME_SIZE + 100); Mmph ... it kinda hurts to see how limited the JNI API is in this respect. We could either increase the LOCAL_FRAME_SIZE variable, or create a new frame within each iteration of the loop. -- Brane