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 01:07:30 UTC
svn commit: r1543991 - in
/subversion/trunk/subversion/bindings/javahl/native/jniwrapper:
jni_base.cpp jni_env.hpp jni_exception.hpp jni_javahl_exception.hpp
jni_stack.hpp
Author: brane
Date: Thu Nov 21 00:07:30 2013
New Revision: 1543991
URL: http://svn.apache.org/r1543991
Log:
Put JavaHL/jniwrapper's exception signal into the correct namespace.
[in subversion/bindings/javahl]
* native/jniwrapper/jni_javahl_exception.hpp: Removed.
* native/jniwrapper/jni_env.hpp: Do not include jni_javahl_exception.hpp.
(Java::SignalExceptionThrown): replaces JavaHL::JavaException, and is
no longer derived from std::exception.
(Java::Env::throw_java_exception, Java::Env::check_java_exception):
Update references to JavaHL::JavaException.
* native/jniwrapper/jni_base.cpp,
native/jniwrapper/jni_exception.hpp,
native/jniwrapper/jni_stack.hpp:
Update all references to JavaHL::JavaException.
Removed:
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_javahl_exception.hpp
Modified:
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_env.hpp
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp
Modified: subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp?rev=1543991&r1=1543990&r2=1543991&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp Thu Nov 21 00:07:30 2013
@@ -212,29 +212,10 @@ const char* const IndexOutOfBoundsExcept
const char* const IOException::m_class_name =
"java/io/IOException";
-} // namespace Java
-
-
-namespace JavaHL {
-
-// class JavaHL::JavaException
-
-JavaException::~JavaException() throw() {}
-
-const char* JavaException::what() const throw()
-{
- // FIXME: Implement this?
- return "";
-}
-
-} // namespace JavaHL
-
// Implementation of jni_stack.hpp
-namespace Java {
-
-void handle_svn_error(::Java::Env env, ::svn_error_t* err)
+void handle_svn_error(Env env, ::svn_error_t* err)
{
jthrowable cause = NULL;
@@ -244,14 +225,13 @@ void handle_svn_error(::Java::Env env, :
if (env.ExceptionCheck())
{
cause = env.ExceptionOccurred();
- const jclass excls = ::Java::ClassCache::get_subversion_exception();
- if (env.IsInstanceOf(cause, excls))
+ if (env.IsInstanceOf(cause, ClassCache::get_subversion_exception()))
{
// XXX FIXME: Should really have a special error code
// specifically for propagating Java exceptions from
// callbacks through native code.
svn_error_clear(err);
- throw ::JavaHL::JavaException();
+ throw SignalExceptionThrown();
}
}
@@ -260,7 +240,7 @@ void handle_svn_error(::Java::Env env, :
env.ExceptionClear();
::JNIUtil::handleSVNError(err, cause);
- throw ::JavaHL::JavaException();
+ throw SignalExceptionThrown();
}
} // namespace Java
Modified: subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_env.hpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_env.hpp?rev=1543991&r1=1543990&r2=1543991&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_env.hpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_env.hpp Thu Nov 21 00:07:30 2013
@@ -30,8 +30,6 @@
#include "svn_private_config.h"
-#include "jni_javahl_exception.hpp"
-
#ifdef SVN_JAVAHL_DEBUG
# ifndef SVN_JAVAHL_JNIWRAPPER_LOG
# include <iostream>
@@ -45,6 +43,17 @@
namespace Java {
/**
+ * A C++ exception object for signalling that a Java exception has
+ * been thrown.
+ *
+ * Thrown to unwind the stack while avoiding code clutter when a Java
+ * exception is detected in the JNI environment.
+ *
+ * @since New in 1.9.
+ */
+class SignalExceptionThrown {};
+
+/**
* Auto-initializing proxy for the JNI method ID.
*
* Behaves like a @c jmethodID but automatically initializes to @c NULL.
@@ -542,13 +551,13 @@ private:
void throw_java_exception() const
{
- throw ::JavaHL::JavaException();
+ throw SignalExceptionThrown();
}
void check_java_exception() const
{
if (m_env->ExceptionCheck())
- throw ::JavaHL::JavaException();
+ throw SignalExceptionThrown();
}
void throw_java_out_of_memory(const char* message) const;
Modified: subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp?rev=1543991&r1=1543990&r2=1543991&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp Thu Nov 21 00:07:30 2013
@@ -27,7 +27,6 @@
#include "jni_env.hpp"
#include "jni_object.hpp"
-#include "jni_javahl_exception.hpp"
namespace Java {
@@ -60,7 +59,7 @@ public:
void raise() const
{
throw_java_exception();
- throw ::JavaHL::JavaException();
+ throw SignalExceptionThrown();
}
/**
@@ -73,7 +72,7 @@ public:
void raise(const char* message) const
{
throw_java_exception(message);
- throw ::JavaHL::JavaException();
+ throw SignalExceptionThrown();
}
/**
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=1543991&r1=1543990&r2=1543991&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 00:07:30 2013
@@ -102,7 +102,7 @@
* @since New in 1.9.
*/
#define SVN_JAVAHL_JNI_CATCH_TO_EXCEPTION(X) \
- catch (const ::JavaHL::JavaException&) \
+ catch (const ::Java::SignalExceptionThrown&) \
{ \
SVN_JAVAHL_ASSERT_EXCEPTION_THROWN(::Java::Env(jenv)); \
} \
@@ -158,7 +158,7 @@
{ \
S; \
} \
- catch (const ::JavaHL::JavaException&) \
+ catch (const ::Java::SignalExceptionThrown&) \
{ \
SVN_JAVAHL_ASSERT_EXCEPTION_THROWN((E)); \
return svn_error_create((C), NULL, _("Java exception")); \