You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2015/11/30 11:24:23 UTC
svn commit: r1717223 [5/50] - in /subversion/branches/ra-git: ./ build/
build/ac-macros/ build/generator/ build/generator/templates/
contrib/hook-scripts/ notes/ notes/api-errata/1.9/ notes/move-tracking/
subversion/ subversion/bindings/ctypes-python/c...
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/CommitCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/CommitCallback.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/CommitCallback.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/CommitCallback.cpp Mon Nov 30 10:24:16 2015
@@ -80,13 +80,13 @@ CommitCallback::commitInfo(const svn_com
static jmethodID sm_mid = 0;
if (sm_mid == 0)
{
- jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/CommitCallback");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/CommitCallback"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
sm_mid = env->GetMethodID(clazz,
"commitInfo",
- "(L"JAVA_PACKAGE"/CommitInfo;)V");
+ "(" JAVAHL_ARG("/CommitInfo;") ")V");
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
}
@@ -96,10 +96,8 @@ CommitCallback::commitInfo(const svn_com
POP_AND_RETURN(SVN_NO_ERROR);
env->CallVoidMethod(m_callback, sm_mid, jcommitInfo);
- // No need to check for an exception here, because we return anyway.
- env->PopLocalFrame(NULL);
- return SVN_NO_ERROR;
+ POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/CommitEditor.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/CommitEditor.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/CommitEditor.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/CommitEditor.cpp Mon Nov 30 10:24:16 2015
@@ -48,7 +48,7 @@ CommitEditor::getCppObject(jobject jthis
{
static jfieldID fid = 0;
jlong cppAddr = SVNBase::findCppAddrForJObject(
- jthis, &fid, JAVA_PACKAGE"/remote/CommitEditor");
+ jthis, &fid, JAVAHL_CLASS("/remote/CommitEditor"));
return (cppAddr == 0 ? NULL : reinterpret_cast<CommitEditor*>(cppAddr));
}
@@ -136,7 +136,7 @@ void CommitEditor::dispose(jobject jthis
abort();
static jfieldID fid = 0;
- SVNBase::dispose(jthis, &fid, JAVA_PACKAGE"/remote/CommitEditor");
+ SVNBase::dispose(jthis, &fid, JAVAHL_CLASS("/remote/CommitEditor"));
}
namespace {
@@ -184,7 +184,7 @@ build_checksum(jobject jchecksum, SVN::P
if (0 == digest_mid || 0 == kind_mid)
{
- jclass cls = env->FindClass(JAVA_PACKAGE"/types/Checksum");
+ jclass cls = env->FindClass(JAVAHL_CLASS("/types/Checksum"));
if (JNIUtil::isJavaExceptionThrown())
return checksum;
@@ -192,7 +192,7 @@ build_checksum(jobject jchecksum, SVN::P
if (JNIUtil::isJavaExceptionThrown())
return checksum;
kind_mid = env->GetMethodID(cls, "getKind", "()L"
- JAVA_PACKAGE"/types/Checksum$Kind;");
+ JAVAHL_CLASS("/types/Checksum$Kind;"));
if (JNIUtil::isJavaExceptionThrown())
return checksum;
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/CommitMessage.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/CommitMessage.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/CommitMessage.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/CommitMessage.cpp Mon Nov 30 10:24:16 2015
@@ -73,7 +73,7 @@ CommitMessage::getCommitMessage(const ch
static jmethodID midCallback = 0;
if (midCallback == 0)
{
- jclass clazz2 = env->FindClass(JAVA_PACKAGE"/callback/CommitMessageCallback");
+ jclass clazz2 = env->FindClass(JAVAHL_CLASS("/callback/CommitMessageCallback"));
if (JNIUtil::isJavaExceptionThrown())
return SVN_NO_ERROR;
@@ -106,7 +106,7 @@ CommitMessage::getCommitMessage(const ch
midCallback,
CreateJ::Set(jitems));
if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(SVN_NO_ERROR);
+ POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
if (jmessage != NULL)
{
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/CopySources.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/CopySources.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/CopySources.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/CopySources.cpp Mon Nov 30 10:24:16 2015
@@ -60,7 +60,7 @@ CopySources::makeJCopySource(const char
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
- jclass clazz = env->FindClass(JAVA_PACKAGE "/types/CopySource");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/CopySource"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -69,8 +69,8 @@ CopySources::makeJCopySource(const char
{
ctor = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;"
- "L" JAVA_PACKAGE "/types/Revision;"
- "L" JAVA_PACKAGE "/types/Revision;)V");
+ JAVAHL_ARG("/types/Revision;")
+ JAVAHL_ARG("/types/Revision;") ")V");
if (JNIUtil::isExceptionThrown())
POP_AND_RETURN_NULL;
}
@@ -88,7 +88,7 @@ CopySources::array(SVN::Pool &pool)
apr_pool_t *p = pool.getPool();
JNIEnv *env = JNIUtil::getEnv();
- jclass clazz = env->FindClass(JAVA_PACKAGE "/types/CopySource");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/CopySource"));
if (JNIUtil::isJavaExceptionThrown())
return NULL;
@@ -132,7 +132,7 @@ CopySources::array(SVN::Pool &pool)
if (getRevision == 0)
{
getRevision = env->GetMethodID(clazz, "getRevision",
- "()L"JAVA_PACKAGE"/types/Revision;");
+ "()" JAVAHL_ARG("/types/Revision;"));
if (JNIUtil::isJavaExceptionThrown() || getRevision == 0)
return NULL;
}
@@ -151,7 +151,7 @@ CopySources::array(SVN::Pool &pool)
if (getPegRevision == 0)
{
getPegRevision = env->GetMethodID(clazz, "getPegRevision",
- "()L"JAVA_PACKAGE"/types/Revision;");
+ "()" JAVAHL_ARG("/types/Revision;"));
if (JNIUtil::isJavaExceptionThrown() || getPegRevision == 0)
return NULL;
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/CreateJ.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/CreateJ.cpp Mon Nov 30 10:24:16 2015
@@ -54,7 +54,7 @@ CreateJ::ConflictDescriptor(const svn_wc
return NULL;
// Create an instance of the conflict descriptor.
- jclass clazz = env->FindClass(JAVA_PACKAGE "/ConflictDescriptor");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/ConflictDescriptor"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -62,16 +62,16 @@ CreateJ::ConflictDescriptor(const svn_wc
if (ctor == 0)
{
ctor = env->GetMethodID(clazz, "<init>", "(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/ConflictDescriptor$Kind;"
- "L"JAVA_PACKAGE"/types/NodeKind;"
+ JAVAHL_ARG("/ConflictDescriptor$Kind;")
+ JAVAHL_ARG("/types/NodeKind;")
"Ljava/lang/String;ZLjava/lang/String;"
- "L"JAVA_PACKAGE"/ConflictDescriptor$Action;"
- "L"JAVA_PACKAGE"/ConflictDescriptor$Reason;"
- "L"JAVA_PACKAGE"/ConflictDescriptor$Operation;"
+ JAVAHL_ARG("/ConflictDescriptor$Action;")
+ JAVAHL_ARG("/ConflictDescriptor$Reason;")
+ JAVAHL_ARG("/ConflictDescriptor$Operation;")
"Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/ConflictVersion;"
- "L"JAVA_PACKAGE"/types/ConflictVersion;"
+ JAVAHL_ARG("/types/ConflictVersion;")
+ JAVAHL_ARG("/types/ConflictVersion;")
"Ljava/lang/String;[B[B[B[B)V");
if (JNIUtil::isJavaExceptionThrown() || ctor == 0)
POP_AND_RETURN_NULL;
@@ -177,7 +177,7 @@ CreateJ::ConflictVersion(const svn_wc_co
return NULL;
// Create an instance of the conflict version.
- jclass clazz = env->FindClass(JAVA_PACKAGE "/types/ConflictVersion");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/ConflictVersion"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -187,7 +187,7 @@ CreateJ::ConflictVersion(const svn_wc_co
ctor = env->GetMethodID(clazz, "<init>", "(Ljava/lang/String;"
"Ljava/lang/String;J"
"Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/NodeKind;"
+ JAVAHL_ARG("/types/NodeKind;")
")V");
if (JNIUtil::isJavaExceptionThrown() || ctor == 0)
POP_AND_RETURN_NULL;
@@ -228,7 +228,7 @@ CreateJ::Checksum(const svn_checksum_t *
if (JNIUtil::isJavaExceptionThrown())
return NULL;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/types/Checksum");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/Checksum"));
if (JNIUtil::isExceptionThrown())
POP_AND_RETURN_NULL;
@@ -238,7 +238,7 @@ CreateJ::Checksum(const svn_checksum_t *
{
midConstructor = env->GetMethodID(clazz, "<init>",
"([B"
- "L"JAVA_PACKAGE"/types/Checksum$Kind;"
+ JAVAHL_ARG("/types/Checksum$Kind;")
")V");
if (JNIUtil::isExceptionThrown())
POP_AND_RETURN_NULL;
@@ -273,7 +273,7 @@ CreateJ::DirEntry(const char *path, cons
if (JNIUtil::isJavaExceptionThrown())
return SVN_NO_ERROR;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/types/DirEntry");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/DirEntry"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -282,7 +282,7 @@ CreateJ::DirEntry(const char *path, cons
{
mid = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/NodeKind;"
+ JAVAHL_ARG("/types/NodeKind;")
"JZJJLjava/lang/String;)V");
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -327,7 +327,7 @@ CreateJ::Info(const char *path, const sv
if (JNIUtil::isJavaExceptionThrown())
return NULL;
- jclass clazz = env->FindClass(JAVA_PACKAGE "/types/Info");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/Info"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -337,15 +337,16 @@ CreateJ::Info(const char *path, const sv
mid = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;J"
- "L"JAVA_PACKAGE"/types/NodeKind;"
+ JAVAHL_ARG("/types/NodeKind;")
"Ljava/lang/String;Ljava/lang/String;"
"JJLjava/lang/String;"
- "L"JAVA_PACKAGE"/types/Lock;Z"
- "L"JAVA_PACKAGE"/types/Info$ScheduleKind;"
+ JAVAHL_ARG("/types/Lock;Z")
+ JAVAHL_ARG("/types/Info$ScheduleKind;")
"Ljava/lang/String;JJ"
- "L"JAVA_PACKAGE"/types/Checksum;"
+ JAVAHL_ARG("/types/Checksum;")
"Ljava/lang/String;JJ"
- "L"JAVA_PACKAGE"/types/Depth;Ljava/util/Set;)V");
+ JAVAHL_ARG("/types/Depth;Ljava/util/Set;")
+ ")V");
if (mid == 0 || JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
}
@@ -472,7 +473,7 @@ CreateJ::Lock(const svn_lock_t *lock)
if (JNIUtil::isJavaExceptionThrown())
return NULL;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/types/Lock");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/Lock"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -586,7 +587,7 @@ CreateJ::ChangedPath(const char *path, s
if (JNIUtil::isJavaExceptionThrown())
return NULL;
- jclass clazzCP = env->FindClass(JAVA_PACKAGE"/types/ChangePath");
+ jclass clazzCP = env->FindClass(JAVAHL_CLASS("/types/ChangePath"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -596,10 +597,11 @@ CreateJ::ChangedPath(const char *path, s
midCP = env->GetMethodID(clazzCP,
"<init>",
"(Ljava/lang/String;JLjava/lang/String;"
- "L"JAVA_PACKAGE"/types/ChangePath$Action;"
- "L"JAVA_PACKAGE"/types/NodeKind;"
- "L"JAVA_PACKAGE"/types/Tristate;"
- "L"JAVA_PACKAGE"/types/Tristate;)V");
+ JAVAHL_ARG("/types/ChangePath$Action;")
+ JAVAHL_ARG("/types/NodeKind;")
+ JAVAHL_ARG("/types/Tristate;")
+ JAVAHL_ARG("/types/Tristate;")
+ ")V");
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
}
@@ -647,7 +649,7 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
if (JNIUtil::isJavaExceptionThrown())
return NULL;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/types/Status");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/Status"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -656,18 +658,18 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
{
mid = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/NodeKind;"
+ JAVAHL_ARG("/types/NodeKind;")
"JJJLjava/lang/String;"
- "L"JAVA_PACKAGE"/types/Status$Kind;"
- "L"JAVA_PACKAGE"/types/Status$Kind;"
- "L"JAVA_PACKAGE"/types/Status$Kind;"
- "L"JAVA_PACKAGE"/types/Status$Kind;"
- "L"JAVA_PACKAGE"/types/Status$Kind;"
- "L"JAVA_PACKAGE"/types/Status$Kind;"
- "ZZL"JAVA_PACKAGE"/types/Depth;"
- "ZZZL"JAVA_PACKAGE"/types/Lock;"
- "L"JAVA_PACKAGE"/types/Lock;"
- "JJL"JAVA_PACKAGE"/types/NodeKind;"
+ JAVAHL_ARG("/types/Status$Kind;")
+ JAVAHL_ARG("/types/Status$Kind;")
+ JAVAHL_ARG("/types/Status$Kind;")
+ JAVAHL_ARG("/types/Status$Kind;")
+ JAVAHL_ARG("/types/Status$Kind;")
+ JAVAHL_ARG("/types/Status$Kind;")
+ "ZZ" JAVAHL_ARG("/types/Depth;")
+ "ZZZ" JAVAHL_ARG("/types/Lock;")
+ JAVAHL_ARG("/types/Lock;")
+ "JJ" JAVAHL_ARG("/types/NodeKind;")
"Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;Ljava/lang/String;)V");
if (JNIUtil::isJavaExceptionThrown())
@@ -790,7 +792,7 @@ CreateJ::ClientNotifyInformation(const s
return NULL;
static jmethodID midCT = 0;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/ClientNotifyInformation");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/ClientNotifyInformation"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -798,16 +800,16 @@ CreateJ::ClientNotifyInformation(const s
{
midCT = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/ClientNotifyInformation$Action;"
- "L"JAVA_PACKAGE"/types/NodeKind;"
+ JAVAHL_ARG("/ClientNotifyInformation$Action;")
+ JAVAHL_ARG("/types/NodeKind;")
"Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/Lock;"
+ JAVAHL_ARG("/types/Lock;")
"Ljava/lang/String;Ljava/util/List;"
- "L"JAVA_PACKAGE"/ClientNotifyInformation$Status;"
- "L"JAVA_PACKAGE"/ClientNotifyInformation$Status;"
- "L"JAVA_PACKAGE"/ClientNotifyInformation$LockStatus;"
+ JAVAHL_ARG("/ClientNotifyInformation$Status;")
+ JAVAHL_ARG("/ClientNotifyInformation$Status;")
+ JAVAHL_ARG("/ClientNotifyInformation$LockStatus;")
"JLjava/lang/String;"
- "L"JAVA_PACKAGE"/types/RevisionRange;"
+ JAVAHL_ARG("/types/RevisionRange;")
"Ljava/lang/String;"
"Ljava/lang/String;Ljava/lang/String;"
"Ljava/util/Map;JJJJJJI)V");
@@ -923,16 +925,16 @@ CreateJ::ReposNotifyInformation(const sv
return NULL;
static jmethodID midCT = 0;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/ReposNotifyInformation");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/ReposNotifyInformation"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
if (midCT == 0)
{
midCT = env->GetMethodID(clazz, "<init>",
- "(L"JAVA_PACKAGE"/ReposNotifyInformation$Action;"
+ "(" JAVAHL_ARG("/ReposNotifyInformation$Action;")
"JLjava/lang/String;JJJ"
- "L"JAVA_PACKAGE"/ReposNotifyInformation$NodeAction;"
+ JAVAHL_ARG("/ReposNotifyInformation$NodeAction;")
"Ljava/lang/String;)V");
if (JNIUtil::isJavaExceptionThrown() || midCT == 0)
POP_AND_RETURN_NULL;
@@ -981,7 +983,7 @@ CreateJ::CommitItem(svn_client_commit_it
if (JNIUtil::isJavaExceptionThrown())
return NULL;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitItem");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/CommitItem"));
if (JNIUtil::isExceptionThrown())
POP_AND_RETURN_NULL;
@@ -991,7 +993,7 @@ CreateJ::CommitItem(svn_client_commit_it
{
midConstructor = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/NodeKind;"
+ JAVAHL_ARG("/types/NodeKind;")
"ILjava/lang/String;"
"Ljava/lang/String;J"
"Ljava/lang/String;)V");
@@ -1063,7 +1065,7 @@ CreateJ::CommitInfo(const svn_commit_inf
return NULL;
static jmethodID midCT = 0;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitInfo");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/CommitInfo"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -1158,17 +1160,18 @@ void fill_property_map(jobject map,
if (JNIUtil::isJavaExceptionThrown())
return;
- jbyteArray jpropVal = (!val ? NULL
- : JNIUtil::makeJByteArray(val));
+ jbyteArray jpropVal = (val ? JNIUtil::makeJByteArray(val) : NULL);
if (JNIUtil::isJavaExceptionThrown())
return;
- m_env->CallObjectMethod(m_map, m_put_mid, jpropName, jpropVal);
+ jobject ret = m_env->CallObjectMethod(m_map, m_put_mid,
+ jpropName, jpropVal);
if (JNIUtil::isJavaExceptionThrown())
return;
- m_env->DeleteLocalRef(jpropName);
+ m_env->DeleteLocalRef(ret);
m_env->DeleteLocalRef(jpropVal);
+ m_env->DeleteLocalRef(jpropName);
}
JNIEnv*& m_env;
@@ -1214,6 +1217,7 @@ void fill_property_map(jobject map,
POP_AND_RETURN_NOTHING();
}
}
+ POP_AND_RETURN_NOTHING();
}
jobject property_map(apr_hash_t *prop_hash, apr_array_header_t* prop_diffs,
@@ -1322,7 +1326,7 @@ jobject CreateJ::InheritedProps(apr_arra
}
jclass item_cls = env->FindClass(
- JAVA_PACKAGE"/callback/InheritedProplistCallback$InheritedItem");
+ JAVAHL_CLASS("/callback/InheritedProplistCallback$InheritedItem"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
@@ -1375,7 +1379,7 @@ jobject CreateJ::Mergeinfo(svn_mergeinfo
// Transform mergeinfo into Java Mergeinfo object.
JNIEnv *env = JNIUtil::getEnv();
- jclass clazz = env->FindClass(JAVA_PACKAGE "/types/Mergeinfo");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/types/Mergeinfo"));
if (JNIUtil::isJavaExceptionThrown())
return NULL;
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/Credential.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/Credential.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/Credential.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/Credential.cpp Mon Nov 30 10:24:16 2015
@@ -29,17 +29,17 @@ namespace JavaHL {
// Class JavaHL::Credential
const char* const Credential::m_class_name =
- JAVA_PACKAGE"/SVNUtil$Credential";
+ JAVAHL_CLASS("/SVNUtil$Credential");
Credential::ClassImpl::ClassImpl(::Java::Env env, jclass cls)
: ::Java::Object::ClassImpl(env, cls),
m_mid_ctor(
env.GetMethodID(cls, "<init>",
- "(L"JAVA_PACKAGE"/SVNUtil$Credential$Kind;"
+ "(" JAVAHL_ARG("/SVNUtil$Credential$Kind;")
"Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;Ljava/lang/String;"
- "L"JAVA_PACKAGE"/callback/AuthnCallback$SSLServerCertInfo;"
- "L"JAVA_PACKAGE"/callback/AuthnCallback$SSLServerCertFailures;"
+ JAVAHL_ARG("/callback/AuthnCallback$SSLServerCertInfo;")
+ JAVAHL_ARG("/callback/AuthnCallback$SSLServerCertFailures;")
"Ljava/lang/String;)V"))
{}
@@ -62,14 +62,14 @@ Credential::Credential(::Java::Env env,
// Enum JavaHL::Credential::Kind
const char* const Credential::Kind::m_class_name =
- JAVA_PACKAGE"/SVNUtil$Credential$Kind";
+ JAVAHL_CLASS("/SVNUtil$Credential$Kind");
Credential::Kind::ClassImpl::ClassImpl(::Java::Env env, jclass cls)
: ::Java::Object::ClassImpl(env, cls),
m_static_mid_from_string(
env.GetStaticMethodID(cls, "fromString",
"(Ljava/lang/String;)"
- "L"JAVA_PACKAGE"/SVNUtil$Credential$Kind;"))
+ JAVAHL_ARG("/SVNUtil$Credential$Kind;")))
{}
Credential::Kind::ClassImpl::~ClassImpl() {}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp Mon Nov 30 10:24:16 2015
@@ -69,12 +69,12 @@ DiffSummaryReceiver::onSummary(const svn
if (callback == 0)
{
// Initialize the method ID.
- clazz = env->FindClass(JAVA_PACKAGE "/callback/DiffSummaryCallback");
+ clazz = env->FindClass(JAVAHL_CLASS("/callback/DiffSummaryCallback"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
callback = env->GetMethodID(clazz, "onSummary",
- "(L"JAVA_PACKAGE"/DiffSummary;)V");
+ "(" JAVAHL_ARG("/DiffSummary;") ")V");
if (JNIUtil::isJavaExceptionThrown() || callback == 0)
POP_AND_RETURN(SVN_NO_ERROR);
}
@@ -82,7 +82,7 @@ DiffSummaryReceiver::onSummary(const svn
// Do some prep work for tranforming the DIFF parameter into a
// Java equivalent.
static jmethodID ctor = 0;
- clazz = env->FindClass(JAVA_PACKAGE "/DiffSummary");
+ clazz = env->FindClass(JAVAHL_CLASS("/DiffSummary"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
@@ -90,8 +90,8 @@ DiffSummaryReceiver::onSummary(const svn
{
ctor = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/DiffSummary$DiffKind;Z"
- "L"JAVA_PACKAGE"/types/NodeKind;)V");
+ JAVAHL_ARG("/DiffSummary$DiffKind;") "Z"
+ JAVAHL_ARG("/types/NodeKind;") ")V");
if (JNIUtil::isJavaExceptionThrown() || ctor == 0)
POP_AND_RETURN(SVN_NO_ERROR);
}
@@ -117,8 +117,5 @@ DiffSummaryReceiver::onSummary(const svn
// Invoke the Java DiffSummaryReceiver callback.
env->CallVoidMethod(m_receiver, callback, jDiffSummary);
- // We return whether an exception was thrown or not.
-
- env->PopLocalFrame(NULL);
- return SVN_NO_ERROR;
+ POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/EditorCallbacks.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/EditorCallbacks.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/EditorCallbacks.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/EditorCallbacks.cpp Mon Nov 30 10:24:16 2015
@@ -34,23 +34,22 @@ namespace JavaHL {
// class JavaHL::ProvideBaseCallback
const char* const ProvideBaseCallback::m_class_name =
- JAVA_PACKAGE"/ISVNEditor$ProvideBaseCallback";
+ JAVAHL_CLASS("/ISVNEditor$ProvideBaseCallback");
ProvideBaseCallback::ClassImpl::ClassImpl(::Java::Env env, jclass cls)
: ::Java::Object::ClassImpl(env, cls),
m_mid_get_contents(
- env.GetMethodID(cls,
- "getContents",
- "(Ljava/lang/String;)"
- "L"JAVA_PACKAGE
- "/ISVNEditor$ProvideBaseCallback$ReturnValue;"))
+ env.GetMethodID(
+ cls, "getContents",
+ "(Ljava/lang/String;)"
+ JAVAHL_ARG("/ISVNEditor$ProvideBaseCallback$ReturnValue;")))
{}
ProvideBaseCallback::ClassImpl::~ClassImpl() {}
const char* const ProvideBaseCallback::ReturnValue::m_class_name =
- JAVA_PACKAGE"/ISVNEditor$ProvideBaseCallback$ReturnValue";
+ JAVAHL_CLASS("/ISVNEditor$ProvideBaseCallback$ReturnValue");
ProvideBaseCallback::ReturnValue::ClassImpl::ClassImpl(
::Java::Env env, jclass cls)
@@ -73,23 +72,22 @@ ProvideBaseCallback::ReturnValue::get_gl
// class JavaHL::ProvidePropsCallback
const char* const ProvidePropsCallback::m_class_name =
- JAVA_PACKAGE"/ISVNEditor$ProvidePropsCallback";
+ JAVAHL_CLASS("/ISVNEditor$ProvidePropsCallback");
ProvidePropsCallback::ClassImpl::ClassImpl(::Java::Env env, jclass cls)
: ::Java::Object::ClassImpl(env, cls),
m_mid_get_props(
- env.GetMethodID(cls,
- "getProperties",
- "(Ljava/lang/String;)"
- "L"JAVA_PACKAGE
- "/ISVNEditor$ProvidePropsCallback$ReturnValue;"))
+ env.GetMethodID(
+ cls, "getProperties",
+ "(Ljava/lang/String;)"
+ JAVAHL_ARG("/ISVNEditor$ProvidePropsCallback$ReturnValue;")))
{}
ProvidePropsCallback::ClassImpl::~ClassImpl() {}
const char* const ProvidePropsCallback::ReturnValue::m_class_name =
- JAVA_PACKAGE"/ISVNEditor$ProvidePropsCallback$ReturnValue";
+ JAVAHL_CLASS("/ISVNEditor$ProvidePropsCallback$ReturnValue");
ProvidePropsCallback::ReturnValue::ClassImpl::ClassImpl(
::Java::Env env, jclass cls)
@@ -111,7 +109,7 @@ ProvidePropsCallback::ReturnValue::get_p
// class JavaHL::GetNodeKindCallback
const char* const GetNodeKindCallback::m_class_name =
- JAVA_PACKAGE"/ISVNEditor$GetNodeKindCallback";
+ JAVAHL_CLASS("/ISVNEditor$GetNodeKindCallback");
GetNodeKindCallback::ClassImpl::ClassImpl(::Java::Env env, jclass cls)
: ::Java::Object::ClassImpl(env, cls),
@@ -119,7 +117,7 @@ GetNodeKindCallback::ClassImpl::ClassImp
env.GetMethodID(cls,
"getKind",
"(Ljava/lang/String;J)"
- "L"JAVA_PACKAGE"/types/NodeKind;"))
+ JAVAHL_ARG("/types/NodeKind;")))
{}
GetNodeKindCallback::ClassImpl::~ClassImpl() {}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/EditorProxy.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/EditorProxy.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/EditorProxy.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/EditorProxy.cpp Mon Nov 30 10:24:16 2015
@@ -123,7 +123,7 @@ get_editor_method(jmethodID& mid, const
return SVN_NO_ERROR; // Already known.
JNIEnv* env = JNIUtil::getEnv();
- jclass cls = env->FindClass(JAVA_PACKAGE"/ISVNEditor");
+ jclass cls = env->FindClass(JAVAHL_CLASS("/ISVNEditor"));
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
SVN_JNI_CATCH(mid = env->GetMethodID(cls, name, sig),
SVN_ERR_RA_SVN_EDIT_ABORTED);
@@ -151,29 +151,32 @@ EditorProxy::cb_add_directory(void *bato
apr_pool_t *scratch_pool)
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_add_directory('%s')\n", relpath);
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "addDirectory",
- "(Ljava/lang/String;"
- "Ljava/lang/Iterable;"
- "Ljava/util/Map;J)V"));
-
- jstring jrelpath = JNIUtil::makeJString(relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jchildren = (!children ? NULL : CreateJ::StringSet(children));
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jrelpath, jchildren, jprops,
- jlong(replaces_rev)),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "addDirectory",
+ "(Ljava/lang/String;"
+ "Ljava/lang/Iterable;"
+ "Ljava/util/Map;J)V"));
+
+ jstring jrelpath = JNIUtil::makeJString(relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jchildren = (!children ? NULL : CreateJ::StringSet(children));
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jrelpath, jchildren, jprops,
+ jlong(replaces_rev));
+ });
return SVN_NO_ERROR;
}
@@ -187,36 +190,37 @@ EditorProxy::cb_add_file(void *baton,
apr_pool_t *scratch_pool)
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_add_file('%s')\n", relpath);
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "addFile",
- "(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/Checksum;"
- "Ljava/io/InputStream;"
- "Ljava/util/Map;J)V"));
-
- jstring jrelpath = JNIUtil::makeJString(relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jchecksum = CreateJ::Checksum(checksum);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jcontents = NULL;
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- if (contents != NULL)
- SVN_JAVAHL_CATCH(Java::Env(), SVN_ERR_RA_SVN_EDIT_ABORTED,
- jcontents = wrap_input_stream(contents));
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jrelpath, jchecksum, jcontents,
- jprops, jlong(replaces_rev)),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "addFile",
+ "(Ljava/lang/String;"
+ JAVAHL_ARG("/types/Checksum;")
+ "Ljava/io/InputStream;"
+ "Ljava/util/Map;J)V"));
+
+ jstring jrelpath = JNIUtil::makeJString(relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jchecksum = CreateJ::Checksum(checksum);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ jobject jcontents = NULL;
+ if (contents != NULL)
+ jcontents = wrap_input_stream(contents);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jrelpath, jchecksum, jcontents,
+ jprops, jlong(replaces_rev));
+ });
return SVN_NO_ERROR;
}
@@ -229,29 +233,32 @@ EditorProxy::cb_add_symlink(void *baton,
apr_pool_t *scratch_pool)
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_add_symlink('%s')\n", relpath);
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "addSymlink",
- "(Ljava/lang/String;"
- "Ljava/lang/String;"
- "Ljava/util/Map;J)V"));
-
- jstring jrelpath = JNIUtil::makeJString(relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jstring jtarget = JNIUtil::makeJString(target);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jrelpath, jtarget, jprops,
- jlong(replaces_rev)),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "addSymlink",
+ "(Ljava/lang/String;"
+ "Ljava/lang/String;"
+ "Ljava/util/Map;J)V"));
+
+ jstring jrelpath = JNIUtil::makeJString(relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jstring jtarget = JNIUtil::makeJString(target);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jrelpath, jtarget, jprops,
+ jlong(replaces_rev));
+ });
return SVN_NO_ERROR;
}
@@ -263,27 +270,30 @@ EditorProxy::cb_add_absent(void *baton,
apr_pool_t *scratch_pool)
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_add_absent('%s')\n", relpath);
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "addAbsent",
- "(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/NodeKind;"
- "J)V"));
-
- jstring jrelpath = JNIUtil::makeJString(relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jkind = EnumMapper::mapNodeKind(kind);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jrelpath, jkind,
- jlong(replaces_rev)),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "addAbsent",
+ "(Ljava/lang/String;"
+ JAVAHL_ARG("/types/NodeKind;")
+ "J)V"));
+
+ jstring jrelpath = JNIUtil::makeJString(relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jkind = EnumMapper::mapNodeKind(kind);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jrelpath, jkind,
+ jlong(replaces_rev));
+ });
return SVN_NO_ERROR;
}
@@ -297,29 +307,32 @@ EditorProxy::cb_alter_directory(void *ba
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_alter_directory('%s', r%lld)\n",
//DEBUG: relpath, static_cast<long long>(revision));
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "alterDirectory",
- "(Ljava/lang/String;J"
- "Ljava/lang/Iterable;"
- "Ljava/util/Map;)V"));
-
- jstring jrelpath = JNIUtil::makeJString(relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jchildren = (!children ? NULL : CreateJ::StringSet(children));
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jrelpath, jlong(revision),
- jchildren, jprops),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "alterDirectory",
+ "(Ljava/lang/String;J"
+ "Ljava/lang/Iterable;"
+ "Ljava/util/Map;)V"));
+
+ jstring jrelpath = JNIUtil::makeJString(relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jchildren = (!children ? NULL : CreateJ::StringSet(children));
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jrelpath, jlong(revision),
+ jchildren, jprops);
+ });
return SVN_NO_ERROR;
}
@@ -334,36 +347,37 @@ EditorProxy::cb_alter_file(void *baton,
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_alter_file('%s', r%lld)\n",
//DEBUG: relpath, static_cast<long long>(revision));
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "alterFile",
- "(Ljava/lang/String;J"
- "L"JAVA_PACKAGE"/types/Checksum;"
- "Ljava/io/InputStream;"
- "Ljava/util/Map;)V"));
-
- jstring jrelpath = JNIUtil::makeJString(relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jchecksum = CreateJ::Checksum(checksum);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jcontents = NULL;
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- if (contents != NULL)
- SVN_JAVAHL_CATCH(Java::Env(), SVN_ERR_RA_SVN_EDIT_ABORTED,
- jcontents = wrap_input_stream(contents));
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jrelpath, jlong(revision),
- jchecksum, jcontents, jprops),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "alterFile",
+ "(Ljava/lang/String;J"
+ JAVAHL_ARG("/types/Checksum;")
+ "Ljava/io/InputStream;"
+ "Ljava/util/Map;)V"));
+
+ jstring jrelpath = JNIUtil::makeJString(relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jchecksum = CreateJ::Checksum(checksum);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ jobject jcontents = NULL;
+ if (contents != NULL)
+ jcontents = wrap_input_stream(contents);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jrelpath, jlong(revision),
+ jchecksum, jcontents, jprops);
+ });
return SVN_NO_ERROR;
}
@@ -377,29 +391,32 @@ EditorProxy::cb_alter_symlink(void *bato
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_alter_symlink('%s', r%lld)\n",
//DEBUG: relpath, static_cast<long long>(revision));
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "alterSymlink",
- "(Ljava/lang/String;J"
- "Ljava/lang/String;"
- "Ljava/util/Map;)V"));
-
- jstring jrelpath = JNIUtil::makeJString(relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jstring jtarget = JNIUtil::makeJString(target);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jrelpath, jlong(revision),
- jtarget, jprops),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "alterSymlink",
+ "(Ljava/lang/String;J"
+ "Ljava/lang/String;"
+ "Ljava/util/Map;)V"));
+
+ jstring jrelpath = JNIUtil::makeJString(relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jstring jtarget = JNIUtil::makeJString(target);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jrelpath, jlong(revision),
+ jtarget, jprops);
+ });
return SVN_NO_ERROR;
}
@@ -411,21 +428,24 @@ EditorProxy::cb_delete(void *baton,
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_delete('%s', r%lld)\n",
//DEBUG: relpath, static_cast<long long>(revision));
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "delete",
+ "(Ljava/lang/String;J)V"));
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "delete",
- "(Ljava/lang/String;J)V"));
+ jstring jrelpath = JNIUtil::makeJString(relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
- jstring jrelpath = JNIUtil::makeJString(relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid, jrelpath),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ env.CallVoidMethod(ep->m_jeditor, mid, jrelpath);
+ });
return SVN_NO_ERROR;
}
@@ -439,26 +459,29 @@ EditorProxy::cb_copy(void *baton,
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_copy('%s', r%lld, '%s')\n",
//DEBUG: src_relpath, static_cast<long long>(src_revision), dst_relpath);
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "copy",
- "(Ljava/lang/String;J"
- "Ljava/lang/String;J)V"));
-
- jstring jsrc_relpath = JNIUtil::makeJString(src_relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jstring jdst_relpath = JNIUtil::makeJString(dst_relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jsrc_relpath, jlong(src_revision),
- jdst_relpath, jlong(replaces_rev)),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "copy",
+ "(Ljava/lang/String;J"
+ "Ljava/lang/String;J)V"));
+
+ jstring jsrc_relpath = JNIUtil::makeJString(src_relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jstring jdst_relpath = JNIUtil::makeJString(dst_relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jsrc_relpath, jlong(src_revision),
+ jdst_relpath, jlong(replaces_rev));
+ });
return SVN_NO_ERROR;
}
@@ -472,26 +495,29 @@ EditorProxy::cb_move(void *baton,
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_move('%s', r%lld, '%s')\n",
//DEBUG: src_relpath, static_cast<long long>(src_revision), dst_relpath);
-
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "move",
- "(Ljava/lang/String;J"
- "Ljava/lang/String;J)V"));
-
- jstring jsrc_relpath = JNIUtil::makeJString(src_relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jstring jdst_relpath = JNIUtil::makeJString(dst_relpath);
- SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
- jsrc_relpath, jlong(src_revision),
- jdst_relpath, jlong(replaces_rev)),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "move",
+ "(Ljava/lang/String;J"
+ "Ljava/lang/String;J)V"));
+
+ jstring jsrc_relpath = JNIUtil::makeJString(src_relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+ jstring jdst_relpath = JNIUtil::makeJString(dst_relpath);
+ SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+ env.CallVoidMethod(ep->m_jeditor, mid,
+ jsrc_relpath, jlong(src_revision),
+ jdst_relpath, jlong(replaces_rev));
+ });
return SVN_NO_ERROR;
}
@@ -499,18 +525,21 @@ svn_error_t*
EditorProxy::cb_complete(void *baton, apr_pool_t *scratch_pool)
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_complete()\n");
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+ ep->m_valid = false;
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "complete", "()V"));
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
- ep->m_valid = false;
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "complete", "()V"));
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ env.CallVoidMethod(ep->m_jeditor, mid);
+ });
return SVN_NO_ERROR;
}
@@ -518,17 +547,20 @@ svn_error_t*
EditorProxy::cb_abort(void *baton, apr_pool_t *scratch_pool)
{
//DEBUG:fprintf(stderr, " (n) EditorProxy::cb_abort()\n");
+ const ::Java::Env env;
+ SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+ {
+ ::Java::LocalFrame frame(env);
+
+ EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+ if (!ep || !ep->m_valid)
+ return invalid_editor();
+ ep->m_valid = false;
+
+ static jmethodID mid = 0;
+ SVN_ERR(get_editor_method(mid, "abort", "()V"));
- EditorProxy* const ep = static_cast<EditorProxy*>(baton);
- if (!ep || !ep->m_valid)
- return invalid_editor();
- ep->m_valid = false;
-
- static jmethodID mid = 0;
- SVN_ERR(get_editor_method(mid, "abort", "()V"));
-
- SVN_JNI_CATCH(
- JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid),
- SVN_ERR_RA_SVN_EDIT_ABORTED);
+ env.CallVoidMethod(ep->m_jeditor, mid);
+ });
return SVN_NO_ERROR;
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/EditorProxy.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/EditorProxy.h?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/EditorProxy.h (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/EditorProxy.h Mon Nov 30 10:24:16 2015
@@ -27,6 +27,8 @@
#ifndef JAVAHL_EDITOR_PROXY_H
#define JAVAHL_EDITOR_PROXY_H
+#include <memory>
+
#include "svn_delta.h"
#include "private/svn_editor.h"
#include "private/svn_delta_private.h"
@@ -51,6 +53,8 @@ struct EditorProxyCallbacks
class EditorProxy
{
public:
+ typedef std::auto_ptr<EditorProxy> UniquePtr;
+
EditorProxy(jobject jeditor, apr_pool_t* edit_pool,
const char* repos_root_url, const char* base_relpath,
svn_cancel_func_t cancel_func, void* cancel_baton,
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/EnumMapper.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/EnumMapper.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/EnumMapper.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/EnumMapper.cpp Mon Nov 30 10:24:16 2015
@@ -37,13 +37,13 @@ jobject EnumMapper::mapChangePathAction(
switch (action)
{
case 'A':
- return mapEnum(JAVA_PACKAGE"/types/ChangePath$Action", 0);
+ return mapEnum(JAVAHL_CLASS("/types/ChangePath$Action"), 0);
case 'D':
- return mapEnum(JAVA_PACKAGE"/types/ChangePath$Action", 1);
+ return mapEnum(JAVAHL_CLASS("/types/ChangePath$Action"), 1);
case 'R':
- return mapEnum(JAVA_PACKAGE"/types/ChangePath$Action", 2);
+ return mapEnum(JAVAHL_CLASS("/types/ChangePath$Action"), 2);
case 'M':
- return mapEnum(JAVA_PACKAGE"/types/ChangePath$Action", 3);
+ return mapEnum(JAVAHL_CLASS("/types/ChangePath$Action"), 3);
default:
return NULL;
}
@@ -55,7 +55,7 @@ jobject EnumMapper::mapChangePathAction(
jobject EnumMapper::mapNotifyState(svn_wc_notify_state_t state)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ClientNotifyInformation$Status",
+ return mapEnum(JAVAHL_CLASS("/ClientNotifyInformation$Status"),
static_cast<int>(state));
}
@@ -65,14 +65,14 @@ jobject EnumMapper::mapNotifyState(svn_w
jobject EnumMapper::mapNotifyAction(svn_wc_notify_action_t action)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ClientNotifyInformation$Action",
+ return mapEnum(JAVAHL_CLASS("/ClientNotifyInformation$Action"),
static_cast<int>(action));
}
jobject EnumMapper::mapReposNotifyNodeAction(svn_node_action action)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ReposNotifyInformation$NodeAction",
+ return mapEnum(JAVAHL_CLASS("/ReposNotifyInformation$NodeAction"),
static_cast<int>(action));
}
@@ -82,7 +82,7 @@ jobject EnumMapper::mapReposNotifyNodeAc
jobject EnumMapper::mapReposNotifyAction(svn_repos_notify_action_t action)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ReposNotifyInformation$Action",
+ return mapEnum(JAVAHL_CLASS("/ReposNotifyInformation$Action"),
static_cast<int>(action));
}
@@ -92,7 +92,7 @@ jobject EnumMapper::mapReposNotifyAction
jobject EnumMapper::mapNodeKind(svn_node_kind_t nodeKind)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/types/NodeKind",
+ return mapEnum(JAVAHL_CLASS("/types/NodeKind"),
static_cast<int>(nodeKind));
}
@@ -102,7 +102,7 @@ jobject EnumMapper::mapNodeKind(svn_node
jobject EnumMapper::mapNotifyLockState(svn_wc_notify_lock_state_t state)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ClientNotifyInformation$LockStatus",
+ return mapEnum(JAVAHL_CLASS("/ClientNotifyInformation$LockStatus"),
static_cast<int>(state));
}
@@ -112,7 +112,7 @@ jobject EnumMapper::mapNotifyLockState(s
jobject EnumMapper::mapScheduleKind(svn_wc_schedule_t schedule)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/types/Info$ScheduleKind",
+ return mapEnum(JAVAHL_CLASS("/types/Info$ScheduleKind"),
static_cast<int>(schedule));
}
@@ -123,63 +123,63 @@ jobject EnumMapper::mapStatusKind(svn_wc
{
// We're assuming a valid value for the C enum above
// The offset here is +1
- return mapEnum(JAVA_PACKAGE"/types/Status$Kind",
+ return mapEnum(JAVAHL_CLASS("/types/Status$Kind"),
static_cast<int>(svnKind) - 1);
}
jobject EnumMapper::mapChecksumKind(svn_checksum_kind_t kind)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/types/Checksum$Kind",
+ return mapEnum(JAVAHL_CLASS("/types/Checksum$Kind"),
static_cast<int>(kind));
}
jobject EnumMapper::mapConflictKind(svn_wc_conflict_kind_t kind)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ConflictDescriptor$Kind",
+ return mapEnum(JAVAHL_CLASS("/ConflictDescriptor$Kind"),
static_cast<int>(kind));
}
jobject EnumMapper::mapConflictAction(svn_wc_conflict_action_t action)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ConflictDescriptor$Action",
+ return mapEnum(JAVAHL_CLASS("/ConflictDescriptor$Action"),
static_cast<int>(action));
}
jobject EnumMapper::mapConflictReason(svn_wc_conflict_reason_t reason)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ConflictDescriptor$Reason",
+ return mapEnum(JAVAHL_CLASS("/ConflictDescriptor$Reason"),
static_cast<int>(reason));
}
int EnumMapper::toMergeinfoLogKind(jobject jLogKind)
{
- return getOrdinal(JAVA_PACKAGE"/types/Mergeinfo$LogKind", jLogKind);
+ return getOrdinal(JAVAHL_CLASS("/types/Mergeinfo$LogKind"), jLogKind);
}
int EnumMapper::toLogLevel(jobject jLogLevel)
{
- return getOrdinal(JAVA_PACKAGE"/SVNClient$ClientLogLevel", jLogLevel);
+ return getOrdinal(JAVAHL_CLASS("/SVNClient$ClientLogLevel"), jLogLevel);
}
svn_node_kind_t EnumMapper::toNodeKind(jobject jNodeKind)
{
return svn_node_kind_t(
- getOrdinal(JAVA_PACKAGE"/types/NodeKind", jNodeKind));
+ getOrdinal(JAVAHL_CLASS("/types/NodeKind"), jNodeKind));
}
svn_checksum_kind_t EnumMapper::toChecksumKind(jobject jChecksumKind)
{
return svn_checksum_kind_t(
- getOrdinal(JAVA_PACKAGE"/types/Checksum$Kind", jChecksumKind));
+ getOrdinal(JAVAHL_CLASS("/types/Checksum$Kind"), jChecksumKind));
}
svn_tristate_t EnumMapper::toTristate(jobject jTristate)
{
- switch (getOrdinal(JAVA_PACKAGE"/types/Tristate", jTristate))
+ switch (getOrdinal(JAVAHL_CLASS("/types/Tristate"), jTristate))
{
case 1: return svn_tristate_false;
case 2: return svn_tristate_true;
@@ -190,14 +190,14 @@ svn_tristate_t EnumMapper::toTristate(jo
svn_depth_t EnumMapper::toDepth(jobject jdepth)
{
// The offset for depths is -2
- return static_cast<svn_depth_t>(getOrdinal(JAVA_PACKAGE"/types/Depth", jdepth) - 2);
+ return static_cast<svn_depth_t>(getOrdinal(JAVAHL_CLASS("/types/Depth"), jdepth) - 2);
}
svn_mergeinfo_inheritance_t
EnumMapper::toMergeinfoInheritance(jobject jInheritance)
{
return static_cast<svn_mergeinfo_inheritance_t>(
- getOrdinal(JAVA_PACKAGE"/types/Mergeinfo$Inheritance", jInheritance));
+ getOrdinal(JAVAHL_CLASS("/types/Mergeinfo$Inheritance"), jInheritance));
}
@@ -205,39 +205,39 @@ jobject EnumMapper::mapDepth(svn_depth_t
{
// We're assuming a valid value for the C enum above
// The offset for depths is -2
- return mapEnum(JAVA_PACKAGE"/types/Depth", static_cast<int>(depth) + 2);
+ return mapEnum(JAVAHL_CLASS("/types/Depth"), static_cast<int>(depth) + 2);
}
jobject EnumMapper::mapOperation(svn_wc_operation_t operation)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/ConflictDescriptor$Operation",
+ return mapEnum(JAVAHL_CLASS("/ConflictDescriptor$Operation"),
static_cast<int>(operation));
}
jobject EnumMapper::mapTristate(svn_tristate_t tristate)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/types/Tristate",
+ return mapEnum(JAVAHL_CLASS("/types/Tristate"),
static_cast<int>(tristate - svn_tristate_false));
}
svn_wc_conflict_choice_t EnumMapper::toConflictChoice(jobject jchoice)
{
return static_cast<svn_wc_conflict_choice_t>
- (getOrdinal(JAVA_PACKAGE"/ConflictResult$Choice", jchoice));
+ (getOrdinal(JAVAHL_CLASS("/ConflictResult$Choice"), jchoice));
}
svn_opt_revision_kind EnumMapper::toRevisionKind(jobject jkind)
{
return static_cast<svn_opt_revision_kind>
- (getOrdinal(JAVA_PACKAGE"/types/Revision$Kind", jkind));
+ (getOrdinal(JAVAHL_CLASS("/types/Revision$Kind"), jkind));
}
jobject EnumMapper::mapSummarizeKind(svn_client_diff_summarize_kind_t sKind)
{
// We're assuming a valid value for the C enum above
- return mapEnum(JAVA_PACKAGE"/DiffSummary$DiffKind",
+ return mapEnum(JAVAHL_CLASS("/DiffSummary$DiffKind"),
static_cast<int>(sKind));
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/ExternalItem.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/ExternalItem.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/ExternalItem.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/ExternalItem.cpp Mon Nov 30 10:24:16 2015
@@ -29,21 +29,22 @@
namespace JavaHL {
const char* const ExternalItem::m_class_name =
- JAVA_PACKAGE"/types/ExternalItem";
+ JAVAHL_CLASS("/types/ExternalItem");
ExternalItem::ClassImpl::ClassImpl(::Java::Env env, jclass cls)
: ::Java::Object::ClassImpl(env, cls),
m_mid_ctor(
env.GetMethodID(cls, "<init>",
"(ZLjava/lang/String;Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/Revision;"
- "L"JAVA_PACKAGE"/types/Revision;)V")),
+ JAVAHL_ARG("/types/Revision;")
+ JAVAHL_ARG("/types/Revision;")
+ ")V")),
m_fid_target_dir(env.GetFieldID(cls, "targetDir", "Ljava/lang/String;")),
m_fid_url(env.GetFieldID(cls, "url", "Ljava/lang/String;")),
m_fid_revision(env.GetFieldID(cls, "revision",
- "L"JAVA_PACKAGE"/types/Revision;")),
+ JAVAHL_ARG("/types/Revision;"))),
m_fid_peg_revision(env.GetFieldID(cls, "pegRevision",
- "L"JAVA_PACKAGE"/types/Revision;"))
+ JAVAHL_ARG("/types/Revision;")))
{}
ExternalItem::ClassImpl::~ClassImpl() {}
@@ -131,7 +132,7 @@ inline jobject get_static_revision(::Jav
{
return env.GetStaticObjectField(
cls, env.GetStaticFieldID(cls, field_name,
- "L"JAVA_PACKAGE"/types/Revision;"));
+ JAVAHL_ARG("/types/Revision;")));
}
} // anonymous namespace
@@ -145,12 +146,12 @@ jobject Revision::makeJRevision(const sv
if (rev.kind == svn_opt_revision_date)
{
const jclass cls = env.FindClass(
- JAVA_PACKAGE"/types/Revision$DateSpec");
+ JAVAHL_CLASS("/types/Revision$DateSpec"));
return env.NewObject(cls, env.GetMethodID(cls, "<init>", "(J)V"),
jlong(rev.value.date / 1000));
}
- const jclass cls = env.FindClass(JAVA_PACKAGE"/types/Revision");
+ const jclass cls = env.FindClass(JAVAHL_CLASS("/types/Revision"));
switch (rev.kind)
{
case svn_opt_revision_committed:
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/ImportFilterCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/ImportFilterCallback.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/ImportFilterCallback.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/ImportFilterCallback.cpp Mon Nov 30 10:24:16 2015
@@ -83,13 +83,14 @@ ImportFilterCallback::doImportFilter(svn
static jmethodID mid = 0;
if (mid == 0)
{
- jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/ImportFilterCallback");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/ImportFilterCallback"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
mid = env->GetMethodID(clazz, "filter",
"(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/types/NodeKind;Z)Z");
+ JAVAHL_ARG("/types/NodeKind;")
+ "Z)Z");
if (JNIUtil::isJavaExceptionThrown() || mid == 0)
POP_AND_RETURN(SVN_NO_ERROR);
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/InfoCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/InfoCallback.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/InfoCallback.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/InfoCallback.cpp Mon Nov 30 10:24:16 2015
@@ -80,12 +80,12 @@ InfoCallback::singleInfo(const char *pat
static jmethodID mid = 0;
if (mid == 0)
{
- jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/InfoCallback");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/InfoCallback"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
mid = env->GetMethodID(clazz, "singleInfo",
- "(L"JAVA_PACKAGE"/types/Info;)V");
+ "(" JAVAHL_ARG("/types/Info;") ")V");
if (JNIUtil::isJavaExceptionThrown() || mid == 0)
POP_AND_RETURN(SVN_NO_ERROR);
}
@@ -95,8 +95,6 @@ InfoCallback::singleInfo(const char *pat
POP_AND_RETURN(SVN_NO_ERROR);
env->CallVoidMethod(m_callback, mid, jinfo2);
- // Return SVN_NO_ERROR here regardless of an exception or not.
- env->PopLocalFrame(NULL);
- return SVN_NO_ERROR;
+ POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.cpp Mon Nov 30 10:24:16 2015
@@ -77,6 +77,11 @@ bool JNIUtil::g_initException;
int JNIUtil::g_logLevel = JNIUtil::noLog;
std::ofstream JNIUtil::g_logStream;
+/* The error code we will use to signal a Java exception */
+static const apr_status_t
+SVN_ERR_JAVAHL_WRAPPED = SVN_ERR_MALFUNC_CATEGORY_START
+ + SVN_ERR_CATEGORY_SIZE - 10;
+
/**
* Return the JNI environment to use
* @return the JNI environment
@@ -446,7 +451,8 @@ ErrorMessageStack assemble_error_message
{
/* When we're recursing, don't repeat the top-level message if its
* the same as before. */
- if (depth == 0 || err->apr_err != parent_apr_err)
+ if ((depth == 0 || err->apr_err != parent_apr_err)
+ && err->apr_err != SVN_ERR_JAVAHL_WRAPPED)
{
const char *message;
/* Is this a Subversion-specific error code? */
@@ -511,7 +517,7 @@ jobject construct_Jmessage_stack(const E
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/ClientException$ErrorMessage");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/ClientException$ErrorMessage"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
mid = env->GetMethodID(clazz, "<init>",
@@ -564,13 +570,13 @@ std::string JNIUtil::makeSVNErrorMessage
return buffer;
}
-void JNIUtil::wrappedHandleSVNError(svn_error_t *err, jthrowable jcause)
+jthrowable JNIUtil::wrappedCreateClientException(svn_error_t *err, jthrowable jcause)
{
jstring jmessage;
jobject jstack;
std::string msg = makeSVNErrorMessage(err, &jmessage, &jstack);
if (JNIUtil::isJavaExceptionThrown())
- return;
+ return NULL;
const char *source = NULL;
#ifdef SVN_DEBUG
@@ -586,6 +592,9 @@ void JNIUtil::wrappedHandleSVNError(svn_
#endif
#endif
+ if (!jcause)
+ jcause = JNIUtil::unwrapJavaException(err);
+
// Much of the following is stolen from throwNativeException(). As much as
// we'd like to call that function, we need to do some manual stack
// unrolling, so it isn't feasible.
@@ -595,11 +604,11 @@ void JNIUtil::wrappedHandleSVNError(svn_
// Create a local frame for our references
env->PushLocalFrame(LOCAL_FRAME_SIZE);
if (JNIUtil::isJavaExceptionThrown())
- return;
+ return NULL;
- jclass clazz = env->FindClass(JAVA_PACKAGE "/ClientException");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/ClientException"));
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
if (getLogLevel() >= exceptionLog)
{
@@ -613,11 +622,11 @@ void JNIUtil::wrappedHandleSVNError(svn_
g_logStream << std::endl;
}
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
jstring jsource = makeJString(source);
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
jmethodID mid = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;"
@@ -625,12 +634,12 @@ void JNIUtil::wrappedHandleSVNError(svn_
"Ljava/lang/String;I"
"Ljava/util/List;)V");
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
jobject nativeException = env->NewObject(clazz, mid, jmessage, jcause,
jsource, jint(err->apr_err),
jstack);
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
#ifdef SVN_ERR__TRACING
// Add all the C error stack trace information to the Java Exception
@@ -642,7 +651,7 @@ void JNIUtil::wrappedHandleSVNError(svn_
mid_gst = env->GetMethodID(clazz, "getStackTrace",
"()[Ljava/lang/StackTraceElement;");
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
}
Array stackTraceArray((jobjectArray) env->CallObjectMethod(nativeException,
mid_gst));
@@ -661,18 +670,18 @@ void JNIUtil::wrappedHandleSVNError(svn_
jclass stClazz = env->FindClass("java/lang/StackTraceElement");
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
const jsize stSize = static_cast<jsize>(newStackTrace.size());
if (stSize < 0 || stSize != newStackTrace.size())
{
env->ThrowNew(env->FindClass("java.lang.ArithmeticException"),
"Overflow converting C size_t to JNI jsize");
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
}
jobjectArray jStackTrace = env->NewObjectArray(stSize, stClazz, NULL);
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
int i = 0;
for (std::vector<jobject>::const_iterator it = newStackTrace.begin();
@@ -689,25 +698,34 @@ void JNIUtil::wrappedHandleSVNError(svn_
mid_sst = env->GetMethodID(clazz, "setStackTrace",
"([Ljava/lang/StackTraceElement;)V");
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
}
env->CallVoidMethod(nativeException, mid_sst, jStackTrace);
if (isJavaExceptionThrown())
- POP_AND_RETURN_NOTHING();
+ POP_AND_RETURN_NULL;
#endif
- env->Throw(static_cast<jthrowable>(env->PopLocalFrame(nativeException)));
+ return static_cast<jthrowable>(env->PopLocalFrame(nativeException));
}
-void JNIUtil::handleSVNError(svn_error_t *err, jthrowable jcause)
+jthrowable JNIUtil::createClientException(svn_error_t *err, jthrowable jcause)
{
+ jthrowable jexc = NULL;
try {
- wrappedHandleSVNError(err, jcause);
+ jexc = wrappedCreateClientException(err, jcause);
} catch (...) {
svn_error_clear(err);
throw;
}
svn_error_clear(err);
+ return jexc;
+}
+
+void JNIUtil::handleSVNError(svn_error_t *err, jthrowable jcause)
+{
+ jthrowable jexc = createClientException(err, jcause);
+ if (jexc)
+ getEnv()->Throw(jexc);
}
void JNIUtil::putFinalizedClient(SVNBase *object)
@@ -804,6 +822,25 @@ JNIUtil::checkJavaException(apr_status_t
err->message = apr_psprintf(err->pool, _("Java exception: %s"), msg);
else
err->message = _("Java exception");
+
+
+ /* ### TODO: Use apr_pool_userdata_set() on the pool we just created
+ for the error chain to keep track of the actual Java
+ exception while the error is inside Subversion.
+
+ Once the error chain re-enters JavaHL we can check
+ if there is a true exception that we can add to the chain.
+
+ If the error is cleared in Subversion (which may happen
+ during composing error chains, etc.) the cleanup handler
+ handles properly releasing the exception.
+
+ apr_status_t
+ apr_pool_userdata_set(const void *data,
+ const char *key,
+ apr_status_t (*cleanup)(void *),
+ apr_pool_t *pool)
+ */
return err;
}
@@ -1043,3 +1080,91 @@ svn_error_t *JNIUtil::preprocessPath(con
return NULL;
}
+
+/* Tag to use on the apr_pool_t to store a WrappedException reference */
+static const char *WrapExceptionTag = "org.apache.subversion.JavaHL.svnerror";
+
+class WrappedException
+{
+ JNIEnv *m_env;
+ jthrowable m_exception;
+#ifdef SVN_DEBUG
+ bool m_fetched;
+#endif
+public:
+ WrappedException(JNIEnv *env)
+ {
+ m_env = env;
+
+ // Fetch exception inside local frame
+ jthrowable exceptionObj = env->ExceptionOccurred();
+
+ // Now clear exception status
+ env->ExceptionClear();
+
+ // As adding a reference in exception state fails
+ m_exception = static_cast<jthrowable>(env->NewGlobalRef(exceptionObj));
+
+#ifdef SVN_DEBUG
+ m_fetched = false;
+#endif
+ }
+
+ static jthrowable get_exception(apr_pool_t *pool)
+ {
+ void *data;
+ if (! apr_pool_userdata_get(&data, WrapExceptionTag, pool))
+ {
+ WrappedException *we = reinterpret_cast<WrappedException *>(data);
+
+ if (we)
+ {
+#ifdef SVN_DEBUG
+ we->m_fetched = TRUE;
+#endif
+ // Create reference in local frame, as the pool will be cleared
+ return static_cast<jthrowable>(
+ we->m_env->NewLocalRef(we->m_exception));
+ }
+ }
+ return NULL;
+ }
+
+private:
+ ~WrappedException()
+ {
+#ifdef SVN_DEBUG
+ if (!m_fetched)
+ SVN_DBG(("Cleared svn_error_t * before Java exception was fetched"));
+#endif
+ m_env->DeleteGlobalRef(m_exception);
+ }
+public:
+ static apr_status_t cleanup(void *data)
+ {
+ WrappedException *we = reinterpret_cast<WrappedException *>(data);
+
+ delete we;
+ return APR_SUCCESS;
+ }
+};
+
+svn_error_t* JNIUtil::wrapJavaException()
+{
+ if (!isExceptionThrown())
+ return SVN_NO_ERROR;
+
+ svn_error_t *err = svn_error_create(SVN_ERR_JAVAHL_WRAPPED, NULL,
+ "Wrapped Java Exception");
+ apr_pool_userdata_set(new WrappedException(getEnv()), WrapExceptionTag,
+ WrappedException::cleanup, err->pool);
+ return err;
+}
+
+jthrowable JNIUtil::unwrapJavaException(const svn_error_t *err)
+{
+ if (!err)
+ return NULL;
+ return
+ WrappedException::get_exception(err->pool);
+}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.h?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.h (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.h Mon Nov 30 10:24:16 2015
@@ -38,13 +38,28 @@ class SVNBase;
#include <apr_time.h>
#include <string>
#include <vector>
+
struct svn_error_t;
+struct svn_string_t;
#include "svn_error.h"
-#define JAVA_PACKAGE "org/apache/subversion/javahl"
-struct svn_string_t;
+/**
+ * The name of the package in which the JavaHL classes are defined.
+ */
+#define JAVAHL_PACKAGE "org/apache/subversion/javahl"
+
+/**
+ * Construct a JavaHL class name for JNIEnv::FindClass.
+ */
+#define JAVAHL_CLASS(name) JAVAHL_PACKAGE name
+
+/**
+ * Construct a JavaHL class parameter name for JNIEnv::GetMethodID & co.
+ */
+#define JAVAHL_ARG(name) "L" JAVAHL_PACKAGE name
+
/**
* Class to hold a number of JNI related utility methods. No Objects
@@ -86,6 +101,9 @@ class JNIUtil
return getEnv()->ExceptionCheck();
}
+ static svn_error_t *wrapJavaException();
+ static jthrowable unwrapJavaException(const svn_error_t *err);
+
static void handleAPRError(int error, const char *op);
/**
@@ -118,6 +136,13 @@ class JNIUtil
static svn_error_t* checkJavaException(apr_status_t errorcode);
/**
+ * Create a Java exception corresponding to err, and run
+ * svn_error_clear() on err.
+ */
+ static jthrowable createClientException(svn_error_t *err,
+ jthrowable jcause = NULL);
+
+ /**
* Throw a Java exception corresponding to err, and run
* svn_error_clear() on err.
*/
@@ -143,7 +168,7 @@ class JNIUtil
*/
static void throwError(const char *message)
{
- raiseThrowable(JAVA_PACKAGE"/JNIError", message);
+ raiseThrowable(JAVAHL_CLASS("/JNIError"), message);
}
static apr_pool_t *getPool();
@@ -160,7 +185,8 @@ class JNIUtil
friend bool initialize_jni_util(JNIEnv *env);
static bool JNIGlobalInit(JNIEnv *env);
- static void wrappedHandleSVNError(svn_error_t *err, jthrowable jcause);
+ static jthrowable wrappedCreateClientException(svn_error_t *err,
+ jthrowable jcause);
static void putErrorsInTrace(svn_error_t *err,
std::vector<jobject> &stackTrace);
@@ -265,6 +291,16 @@ class JNIUtil
} \
while (0)
+#define POP_AND_RETURN_EXCEPTION_AS_SVNERROR() \
+ do \
+ { \
+ svn_error_t *svn__err_for_exception = JNIUtil::wrapJavaException(); \
+ \
+ env->PopLocalFrame(NULL); \
+ return svn__err_for_exception; \
+ } \
+ while (0)
+
/**
* A useful macro.
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.cpp Mon Nov 30 10:24:16 2015
@@ -87,13 +87,13 @@ ListCallback::doList(const char *path,
static jmethodID mid = 0;
if (mid == 0)
{
- jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/ListCallback");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/ListCallback"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
mid = env->GetMethodID(clazz, "doEntry",
- "(L"JAVA_PACKAGE"/types/DirEntry;"
- "L"JAVA_PACKAGE"/types/Lock;)V");
+ "(" JAVAHL_ARG("/types/DirEntry;")
+ JAVAHL_ARG("/types/Lock;") ")V");
if (JNIUtil::isJavaExceptionThrown() || mid == 0)
POP_AND_RETURN(SVN_NO_ERROR);
}
@@ -113,10 +113,8 @@ ListCallback::doList(const char *path,
// call the Java method
env->CallVoidMethod(m_callback, mid, jdirentry, jlock);
- // No need to check for exception here, because we'll just return anyway
- env->PopLocalFrame(NULL);
- return SVN_NO_ERROR;
+ POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
}
/**
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/LockTokenTable.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/LockTokenTable.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/LockTokenTable.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/LockTokenTable.cpp Mon Nov 30 10:24:16 2015
@@ -64,7 +64,7 @@ LockTokenTable::LockTokenTable(jobject j
{
JNIEnv *env = JNIUtil::getEnv();
- jclass lock_cls = env->FindClass(JAVA_PACKAGE"/types/Lock");
+ jclass lock_cls = env->FindClass(JAVAHL_CLASS("/types/Lock"));
if (JNIUtil::isExceptionThrown())
return;
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/LogMessageCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/LogMessageCallback.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/LogMessageCallback.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/LogMessageCallback.cpp Mon Nov 30 10:24:16 2015
@@ -81,7 +81,7 @@ LogMessageCallback::singleMessage(svn_lo
static jmethodID sm_mid = 0;
if (sm_mid == 0)
{
- jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/LogMessageCallback");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/LogMessageCallback"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
@@ -125,8 +125,6 @@ LogMessageCallback::singleMessage(svn_lo
(jlong)log_entry->revision,
jrevprops,
(jboolean)log_entry->has_children);
- // No need to check for an exception here, because we return anyway.
- env->PopLocalFrame(NULL);
- return SVN_NO_ERROR;
+ POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/MessageReceiver.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/MessageReceiver.cpp?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/MessageReceiver.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/MessageReceiver.cpp Mon Nov 30 10:24:16 2015
@@ -58,7 +58,7 @@ void MessageReceiver::receiveMessage(con
static jmethodID mid = 0;
if (mid == 0)
{
- jclass clazz = env->FindClass(JAVA_PACKAGE"/ISVNAdmin$MessageReceiver");
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/ISVNAdmin$MessageReceiver"));
if (JNIUtil::isJavaExceptionThrown())
return;