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/11/21 12:52:12 UTC

svn commit: r1544138 - in /subversion/trunk/subversion/bindings/javahl/native: jniwrapper/jni_stack.hpp org_apache_subversion_javahl_util_PropLib.cpp

Author: brane
Date: Thu Nov 21 11:52:12 2013
New Revision: 1544138

URL: http://svn.apache.org/r1544138
Log:
Provide compatibility exception checking boilerplate in JavaHL.

[in subversion/bindings/javahl]
* native/jniwrapper/jni_stack.hpp
  (SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK): New macro.

* native/org_apache_subversion_javahl_util_PropLib.cpp
  (Java_org_apache_subversion_javahl_util_PropLib_checkNodeProp):
   Use SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK instead of manual check.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp
    subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp

Modified: subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp?rev=1544138&r1=1544137&r2=1544138&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp Thu Nov 21 11:52:12 2013
@@ -176,6 +176,21 @@
       return svn_error_create((C), NULL, msg);                          \
     }
 
+/**
+ * Exception checker for the oldstyle implementation that does not use
+ * the @c Java::Env environment wrapper.
+ *
+ * @param E A wrapped environment (@c Java::Env) instance.
+ *
+ * @since New in 1.9.
+ */
+#define SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(E)  \
+  do {                                          \
+    if ((E).ExceptionCheck())                   \
+      throw ::Java::SignalExceptionThrown();    \
+  } while(0)
+
+
 namespace Java {
 
 /**

Modified: subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp?rev=1544138&r1=1544137&r2=1544138&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp Thu Nov 21 11:52:12 2013
@@ -225,8 +225,7 @@ Java_org_apache_subversion_javahl_util_P
       const Java::Env env(jenv);
 
       const svn_node_kind_t kind = EnumMapper::toNodeKind(jkind);
-      if (env.ExceptionCheck())
-        throw Java::SignalExceptionThrown();
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
 
       const Java::String name_str(env, jname);
       const Java::ByteArray value(env, jvalue);