You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/03/14 07:26:22 UTC

svn commit: r1456343 - in /subversion/trunk/subversion/bindings/javahl/native: CreateJ.cpp JNIUtil.cpp

Author: brane
Date: Thu Mar 14 06:26:22 2013
New Revision: 1456343

URL: http://svn.apache.org/r1456343
Log:
[in subversion/bindings/javahl/native]
* CreateJ.cpp (CreateJ::ClientNotifyInformation): Update exception message.
* JNIUtil.cpp (JNIUtil::handleSVNError):
   Check for overflow when converting a C size_t to a JNI jsize.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp

Modified: subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp?rev=1456343&r1=1456342&r2=1456343&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp Thu Mar 14 06:26:22 2013
@@ -734,7 +734,7 @@ CreateJ::ClientNotifyInformation(const s
   if (jhunkFuzz != wcNotify->hunk_fuzz)
     {
       env->ThrowNew(env->FindClass("java.lang.ArithmeticException"),
-                    "Overflow converting C unsigned long to Java int");
+                    "Overflow converting C svn_linenum_t to Java int");
       POP_AND_RETURN_NULL;
     }
 

Modified: subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1456343&r1=1456342&r2=1456343&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp Thu Mar 14 06:26:22 2013
@@ -512,8 +512,14 @@ void JNIUtil::handleSVNError(svn_error_t
   if (isJavaExceptionThrown())
     POP_AND_RETURN_NOTHING();
 
-  jobjectArray jStackTrace = env->NewObjectArray(newStackTrace.size(), stClazz,
-                                                 NULL);
+  const jsize stSize = static_cast<jsize>(newStackTrace.size());
+  if (stSize != newStackTrace.size())
+    {
+      env->ThrowNew(env->FindClass("java.lang.ArithmeticException"),
+                    "Overflow converting C size_t to JNI jsize");
+      POP_AND_RETURN_NOTHING();
+    }
+  jobjectArray jStackTrace = env->NewObjectArray(stSize, stClazz, NULL);
   if (isJavaExceptionThrown())
     POP_AND_RETURN_NOTHING();