You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/03/19 22:22:27 UTC
svn commit: r925427 - in
/subversion/trunk/subversion/bindings/javahl/native: CreateJ.cpp CreateJ.h
InfoCallback.cpp InfoCallback.h NotifyCallback.cpp StatusCallback.cpp
StatusCallback.h
Author: hwright
Date: Fri Mar 19 21:22:26 2010
New Revision: 925427
URL: http://svn.apache.org/viewvc?rev=925427&view=rev
Log:
JavaHL: More local reference management using JNI frames. Also, shuffle a
few "create Java object" methods to the CreateJ class.
[ in subversion/bindings/javahl/ ]
* native/CreateJ.cpp
(Info2, Status, NotifyInformation): New.
* native/StatusCallback.cpp,
native/StatusCallback.h
(doStatus): Add a reference frame.
(createJavaStatus): Remove.
* native/InfoCallback.cpp,
native/InfoCallback.h
(createJavaInfo2): Remove.
(singleInfo): Add a reference frame.
* native/CreateJ.h
(Info2, Status, NotifyInformation): New.
* native/NotifyCallback.cpp
(onNotify): Strip out the "create NotifyInformation" bits.
Modified:
subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
subversion/trunk/subversion/bindings/javahl/native/CreateJ.h
subversion/trunk/subversion/bindings/javahl/native/InfoCallback.cpp
subversion/trunk/subversion/bindings/javahl/native/InfoCallback.h
subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp
subversion/trunk/subversion/bindings/javahl/native/StatusCallback.cpp
subversion/trunk/subversion/bindings/javahl/native/StatusCallback.h
Modified: subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp?rev=925427&r1=925426&r2=925427&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp Fri Mar 19 21:22:26 2010
@@ -31,6 +31,7 @@
#include "EnumMapper.h"
#include "RevisionRange.h"
#include "CreateJ.h"
+#include "../include/org_apache_subversion_javahl_Revision.h"
jobject
CreateJ::ConflictDescriptor(const svn_wc_conflict_description_t *desc)
@@ -250,6 +251,122 @@ CreateJ::Info(const svn_wc_entry_t *entr
return env->PopLocalFrame(jinfo);
}
+jobject
+CreateJ::Info2(const char *path, const svn_info_t *info)
+{
+ JNIEnv *env = JNIUtil::getEnv();
+
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
+
+ jclass clazz = env->FindClass(JAVA_PACKAGE "/Info2");
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ static jmethodID mid = 0;
+ if (mid == 0)
+ {
+ mid = env->GetMethodID(clazz, "<init>",
+ "(Ljava/lang/String;Ljava/lang/String;J"
+ "L"JAVA_PACKAGE"/NodeKind;"
+ "Ljava/lang/String;Ljava/lang/String;"
+ "JJLjava/lang/String;"
+ "L"JAVA_PACKAGE"/Lock;"
+ "ZILjava/lang/String;JJJ"
+ "Ljava/lang/String;Ljava/lang/String;"
+ "Ljava/lang/String;Ljava/lang/String;"
+ "Ljava/lang/String;Ljava/lang/String;JJ"
+ "L"JAVA_PACKAGE"/Depth;"
+ "L"JAVA_PACKAGE"/ConflictDescriptor;)V");
+ if (mid == 0 || JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+ }
+
+ jstring jpath = JNIUtil::makeJString(path);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jurl = JNIUtil::makeJString(info->URL);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jreposRootUrl = JNIUtil::makeJString(info->repos_root_URL);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jreportUUID = JNIUtil::makeJString(info->repos_UUID);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jlastChangedAuthor =
+ JNIUtil::makeJString(info->last_changed_author);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jlock = CreateJ::Lock(info->lock);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jcopyFromUrl = JNIUtil::makeJString(info->copyfrom_url);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jchecksum = JNIUtil::makeJString(info->checksum);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jconflictOld = JNIUtil::makeJString(info->conflict_old);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jconflictNew = JNIUtil::makeJString(info->conflict_new);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jconflictWrk = JNIUtil::makeJString(info->conflict_wrk);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jprejfile = JNIUtil::makeJString(info->prejfile);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jchangelist = JNIUtil::makeJString(info->changelist);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jdesc = CreateJ::ConflictDescriptor(info->tree_conflict);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jnodeKind = EnumMapper::mapNodeKind(info->kind);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jlong jworkingSize = info->working_size == SVN_INFO_SIZE_UNKNOWN
+ ? -1 : (jlong) info->working_size;
+ jlong jreposSize = info->size == SVN_INFO_SIZE_UNKNOWN
+ ? -1 : (jlong) info->size;
+
+ jobject jinfo2 = env->NewObject(clazz, mid, jpath, jurl, (jlong) info->rev,
+ jnodeKind, jreposRootUrl, jreportUUID,
+ (jlong) info->last_changed_rev,
+ (jlong) info->last_changed_date,
+ jlastChangedAuthor, jlock,
+ info->has_wc_info ? JNI_TRUE : JNI_FALSE,
+ EnumMapper::mapScheduleKind(info->schedule),
+ jcopyFromUrl, (jlong) info->copyfrom_rev,
+ (jlong) info->text_time,
+ (jlong) info->prop_time, jchecksum,
+ jconflictOld, jconflictNew, jconflictWrk,
+ jprejfile, jchangelist,
+ jworkingSize, jreposSize,
+ EnumMapper::mapDepth(info->depth), jdesc);
+
+ return env->PopLocalFrame(jinfo2);
+}
jobject
CreateJ::Lock(const svn_lock_t *lock)
@@ -302,6 +419,274 @@ CreateJ::Lock(const svn_lock_t *lock)
return env->PopLocalFrame(jlock);
}
+jobject
+CreateJ::Status(const char *local_abspath, const svn_wc_status2_t *status)
+{
+ JNIEnv *env = JNIUtil::getEnv();
+
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
+
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/Status");
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ static jmethodID mid = 0;
+ if (mid == 0)
+ {
+ mid = env->GetMethodID(clazz, "<init>",
+ "(Ljava/lang/String;Ljava/lang/String;"
+ "L"JAVA_PACKAGE"/NodeKind;"
+ "JJJLjava/lang/String;"
+ "L"JAVA_PACKAGE"/Status$Kind;"
+ "L"JAVA_PACKAGE"/Status$Kind;"
+ "L"JAVA_PACKAGE"/Status$Kind;"
+ "L"JAVA_PACKAGE"/Status$Kind;"
+ "ZZZL"JAVA_PACKAGE"/ConflictDescriptor;"
+ "Ljava/lang/String;Ljava/lang/String;"
+ "Ljava/lang/String;Ljava/lang/String;"
+ "JZZLjava/lang/String;Ljava/lang/String;"
+ "Ljava/lang/String;"
+ "JL"JAVA_PACKAGE"/Lock;"
+ "JJL"JAVA_PACKAGE"/NodeKind;"
+ "Ljava/lang/String;Ljava/lang/String;)V");
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+ }
+ jstring jPath = JNIUtil::makeJString(local_abspath);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jUrl = NULL;
+ jobject jNodeKind = NULL;
+ jlong jRevision = org_apache_subversion_javahl_Revision_SVN_INVALID_REVNUM;
+ jlong jLastChangedRevision =
+ org_apache_subversion_javahl_Revision_SVN_INVALID_REVNUM;
+ jlong jLastChangedDate = 0;
+ jstring jLastCommitAuthor = NULL;
+ jobject jTextType = NULL;
+ jobject jPropType = NULL;
+ jobject jRepositoryTextType = NULL;
+ jobject jRepositoryPropType = NULL;
+ jboolean jIsLocked = JNI_FALSE;
+ jboolean jIsCopied = JNI_FALSE;
+ jboolean jIsSwitched = JNI_FALSE;
+ jboolean jIsFileExternal = JNI_FALSE;
+ jboolean jIsTreeConflicted = JNI_FALSE;
+ jobject jConflictDescription = NULL;
+ jstring jConflictOld = NULL;
+ jstring jConflictNew = NULL;
+ jstring jConflictWorking = NULL;
+ jstring jURLCopiedFrom = NULL;
+ jlong jRevisionCopiedFrom =
+ org_apache_subversion_javahl_Revision_SVN_INVALID_REVNUM;
+ jstring jLockToken = NULL;
+ jstring jLockComment = NULL;
+ jstring jLockOwner = NULL;
+ jlong jLockCreationDate = 0;
+ jobject jLock = NULL;
+ jlong jOODLastCmtRevision =
+ org_apache_subversion_javahl_Revision_SVN_INVALID_REVNUM;
+ jlong jOODLastCmtDate = 0;
+ jobject jOODKind = NULL;
+ jstring jOODLastCmtAuthor = NULL;
+ jstring jChangelist = NULL;
+ if (status != NULL)
+ {
+ jTextType = EnumMapper::mapStatusKind(status->text_status);
+ jPropType = EnumMapper::mapStatusKind(status->prop_status);
+ jRepositoryTextType = EnumMapper::mapStatusKind(
+ status->repos_text_status);
+ jRepositoryPropType = EnumMapper::mapStatusKind(
+ status->repos_prop_status);
+ jIsCopied = (status->copied == 1) ? JNI_TRUE: JNI_FALSE;
+ jIsLocked = (status->locked == 1) ? JNI_TRUE: JNI_FALSE;
+ jIsSwitched = (status->switched == 1) ? JNI_TRUE: JNI_FALSE;
+ jIsFileExternal = (status->file_external == 1) ? JNI_TRUE: JNI_FALSE;
+ jConflictDescription = CreateJ::ConflictDescriptor(status->tree_conflict);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jIsTreeConflicted = (status->tree_conflict != NULL)
+ ? JNI_TRUE: JNI_FALSE;
+ jLock = CreateJ::Lock(status->repos_lock);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jUrl = JNIUtil::makeJString(status->url);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jOODLastCmtRevision = status->ood_last_cmt_rev;
+ jOODLastCmtDate = status->ood_last_cmt_date;
+ jOODKind = EnumMapper::mapNodeKind(status->ood_kind);
+ jOODLastCmtAuthor = JNIUtil::makeJString(status->ood_last_cmt_author);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ const svn_wc_entry_t *entry = status->entry;
+ if (entry != NULL)
+ {
+ jNodeKind = EnumMapper::mapNodeKind(entry->kind);
+ jRevision = entry->revision;
+ jLastChangedRevision = entry->cmt_rev;
+ jLastChangedDate = entry->cmt_date;
+ jLastCommitAuthor = JNIUtil::makeJString(entry->cmt_author);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jConflictNew = JNIUtil::makeJString(entry->conflict_new);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jConflictOld = JNIUtil::makeJString(entry->conflict_old);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jConflictWorking= JNIUtil::makeJString(entry->conflict_wrk);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jURLCopiedFrom = JNIUtil::makeJString(entry->copyfrom_url);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jRevisionCopiedFrom = entry->copyfrom_rev;
+ jLockToken = JNIUtil::makeJString(entry->lock_token);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jLockComment = JNIUtil::makeJString(entry->lock_comment);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jLockOwner = JNIUtil::makeJString(entry->lock_owner);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jLockCreationDate = entry->lock_creation_date;
+
+ jChangelist = JNIUtil::makeJString(entry->changelist);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+ }
+ }
+
+ jobject ret = env->NewObject(clazz, mid, jPath, jUrl, jNodeKind, jRevision,
+ jLastChangedRevision, jLastChangedDate,
+ jLastCommitAuthor, jTextType, jPropType,
+ jRepositoryTextType, jRepositoryPropType,
+ jIsLocked, jIsCopied, jIsTreeConflicted,
+ jConflictDescription, jConflictOld, jConflictNew,
+ jConflictWorking, jURLCopiedFrom,
+ jRevisionCopiedFrom, jIsSwitched, jIsFileExternal,
+ jLockToken, jLockOwner,
+ jLockComment, jLockCreationDate, jLock,
+ jOODLastCmtRevision, jOODLastCmtDate,
+ jOODKind, jOODLastCmtAuthor, jChangelist);
+
+ return env->PopLocalFrame(ret);
+}
+
+jobject
+CreateJ::NotifyInformation(const svn_wc_notify_t *wcNotify)
+{
+ JNIEnv *env = JNIUtil::getEnv();
+
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
+
+ static jmethodID midCT = 0;
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/NotifyInformation");
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ if (midCT == 0)
+ {
+ midCT = env->GetMethodID(clazz, "<init>",
+ "(Ljava/lang/String;"
+ "L"JAVA_PACKAGE"/NotifyInformation$Action;"
+ "L"JAVA_PACKAGE"/NodeKind;Ljava/lang/String;"
+ "L"JAVA_PACKAGE"/Lock;"
+ "Ljava/lang/String;"
+ "L"JAVA_PACKAGE"/NotifyInformation$Status;"
+ "L"JAVA_PACKAGE"/NotifyInformation$Status;"
+ "L"JAVA_PACKAGE"/NotifyInformation$LockStatus;"
+ "JLjava/lang/String;"
+ "L"JAVA_PACKAGE"/RevisionRange;"
+ "Ljava/lang/String;)V");
+ if (JNIUtil::isJavaExceptionThrown() || midCT == 0)
+ POP_AND_RETURN_NULL;
+ }
+
+ // convert the parameter to their Java relatives
+ jstring jPath = JNIUtil::makeJString(wcNotify->path);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jAction = EnumMapper::mapNotifyAction(wcNotify->action);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jKind = EnumMapper::mapNodeKind(wcNotify->kind);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jMimeType = JNIUtil::makeJString(wcNotify->mime_type);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jLock = CreateJ::Lock(wcNotify->lock);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jErr = JNIUtil::makeSVNErrorMessage(wcNotify->err);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jContentState = EnumMapper::mapNotifyState(wcNotify->content_state);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jPropState = EnumMapper::mapNotifyState(wcNotify->prop_state);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jLockState = EnumMapper::mapNotifyLockState(wcNotify->lock_state);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jChangelistName = JNIUtil::makeJString(wcNotify->changelist_name);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jMergeRange = NULL;
+ if (wcNotify->merge_range)
+ {
+ jMergeRange = RevisionRange::makeJRevisionRange(wcNotify->merge_range);
+ if (jMergeRange == NULL)
+ POP_AND_RETURN_NULL;
+ }
+
+ jstring jpathPrefix = JNIUtil::makeJString(wcNotify->path_prefix);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ // call the Java method
+ jobject jInfo = env->NewObject(clazz, midCT, jPath, jAction,
+ jKind, jMimeType, jLock, jErr,
+ jContentState, jPropState, jLockState,
+ (jlong) wcNotify->revision, jChangelistName,
+ jMergeRange, jpathPrefix);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ return env->PopLocalFrame(jInfo);
+}
jobject
CreateJ::RevisionRangeList(apr_array_header_t *ranges)
Modified: subversion/trunk/subversion/bindings/javahl/native/CreateJ.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CreateJ.h?rev=925427&r1=925426&r2=925427&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CreateJ.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.h Fri Mar 19 21:22:26 2010
@@ -29,6 +29,7 @@
#include <jni.h>
#include "svn_wc.h"
+#include "svn_client.h"
#include <vector>
@@ -47,9 +48,18 @@ class CreateJ
Info(const svn_wc_entry_t *entry);
static jobject
+ Info2(const char *path, const svn_info_t *info);
+
+ static jobject
Lock(const svn_lock_t *lock);
static jobject
+ Status(const char *local_abspath, const svn_wc_status2_t *status);
+
+ static jobject
+ NotifyInformation(const svn_wc_notify_t *notify);
+
+ static jobject
RevisionRangeList(apr_array_header_t *ranges);
static jobject
Modified: subversion/trunk/subversion/bindings/javahl/native/InfoCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/InfoCallback.cpp?rev=925427&r1=925426&r2=925427&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/InfoCallback.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/InfoCallback.cpp Fri Mar 19 21:22:26 2010
@@ -70,6 +70,11 @@ InfoCallback::singleInfo(const char *pat
{
JNIEnv *env = JNIUtil::getEnv();
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return SVN_NO_ERROR;
+
// The method id will not change during the time this library is
// loaded, so it can be cached.
static jmethodID mid = 0;
@@ -77,202 +82,21 @@ InfoCallback::singleInfo(const char *pat
{
jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/InfoCallback");
if (JNIUtil::isJavaExceptionThrown())
- return SVN_NO_ERROR;
+ POP_AND_RETURN(SVN_NO_ERROR);
mid = env->GetMethodID(clazz, "singleInfo",
"(L"JAVA_PACKAGE"/Info2;)V");
if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- return SVN_NO_ERROR;
-
- env->DeleteLocalRef(clazz);
- if (JNIUtil::isJavaExceptionThrown())
- return SVN_NO_ERROR;
+ POP_AND_RETURN(SVN_NO_ERROR);
}
- jobject jinfo2 = createJavaInfo2(path, info, pool);
+ jobject jinfo2 = CreateJ::Info2(path, info);
if (jinfo2 == NULL || JNIUtil::isJavaExceptionThrown())
- return SVN_NO_ERROR;
+ POP_AND_RETURN(SVN_NO_ERROR);
env->CallVoidMethod(m_callback, mid, jinfo2);
- if (JNIUtil::isJavaExceptionThrown())
- return SVN_NO_ERROR;
-
- env->DeleteLocalRef(jinfo2);
// Return SVN_NO_ERROR here regardless of an exception or not.
+ env->PopLocalFrame(NULL);
return SVN_NO_ERROR;
}
-
-jobject
-InfoCallback::createJavaInfo2(const char *path, const svn_info_t *info,
- apr_pool_t *pool)
-{
- JNIEnv *env = JNIUtil::getEnv();
- jclass clazz = env->FindClass(JAVA_PACKAGE "/Info2");
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- static jmethodID mid = 0;
- if (mid == 0)
- {
- mid = env->GetMethodID(clazz, "<init>",
- "(Ljava/lang/String;Ljava/lang/String;J"
- "L"JAVA_PACKAGE"/NodeKind;"
- "Ljava/lang/String;Ljava/lang/String;"
- "JJLjava/lang/String;"
- "L"JAVA_PACKAGE"/Lock;"
- "ZILjava/lang/String;JJJ"
- "Ljava/lang/String;Ljava/lang/String;"
- "Ljava/lang/String;Ljava/lang/String;"
- "Ljava/lang/String;Ljava/lang/String;JJ"
- "L"JAVA_PACKAGE"/Depth;"
- "L"JAVA_PACKAGE"/ConflictDescriptor;)V");
- if (mid == 0 || JNIUtil::isJavaExceptionThrown())
- return NULL;
- }
-
- jstring jpath = JNIUtil::makeJString(path);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jurl = JNIUtil::makeJString(info->URL);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jreposRootUrl = JNIUtil::makeJString(info->repos_root_URL);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jreportUUID = JNIUtil::makeJString(info->repos_UUID);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jlastChangedAuthor =
- JNIUtil::makeJString(info->last_changed_author);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jobject jlock = CreateJ::Lock(info->lock);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jcopyFromUrl = JNIUtil::makeJString(info->copyfrom_url);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jchecksum = JNIUtil::makeJString(info->checksum);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jconflictOld = JNIUtil::makeJString(info->conflict_old);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jconflictNew = JNIUtil::makeJString(info->conflict_new);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jconflictWrk = JNIUtil::makeJString(info->conflict_wrk);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jprejfile = JNIUtil::makeJString(info->prejfile);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jchangelist = JNIUtil::makeJString(info->changelist);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jobject jdesc = CreateJ::ConflictDescriptor(info->tree_conflict);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jobject jnodeKind = EnumMapper::mapNodeKind(info->kind);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jlong jworkingSize = info->working_size == SVN_INFO_SIZE_UNKNOWN
- ? -1 : (jlong) info->working_size;
- jlong jreposSize = info->size == SVN_INFO_SIZE_UNKNOWN
- ? -1 : (jlong) info->size;
-
- jobject jinfo2 = env->NewObject(clazz, mid, jpath, jurl, (jlong) info->rev,
- jnodeKind, jreposRootUrl, jreportUUID,
- (jlong) info->last_changed_rev,
- (jlong) info->last_changed_date,
- jlastChangedAuthor, jlock,
- info->has_wc_info ? JNI_TRUE : JNI_FALSE,
- EnumMapper::mapScheduleKind(info->schedule),
- jcopyFromUrl, (jlong) info->copyfrom_rev,
- (jlong) info->text_time,
- (jlong) info->prop_time, jchecksum,
- jconflictOld, jconflictNew, jconflictWrk,
- jprejfile, jchangelist,
- jworkingSize, jreposSize,
- EnumMapper::mapDepth(info->depth), jdesc);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(clazz);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jnodeKind);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jpath);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jurl);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jreposRootUrl);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jlastChangedAuthor);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jlock);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jcopyFromUrl);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jchecksum);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jconflictOld);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jconflictNew);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jconflictWrk);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jprejfile);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jchangelist);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jdesc);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- return jinfo2;
-}
Modified: subversion/trunk/subversion/bindings/javahl/native/InfoCallback.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/InfoCallback.h?rev=925427&r1=925426&r2=925427&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/InfoCallback.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/InfoCallback.h Fri Mar 19 21:22:26 2010
@@ -57,10 +57,6 @@ class InfoCallback
* A local reference to the corresponding Java object.
*/
jobject m_callback;
-
- jobject createJavaInfo2(const char *path,
- const svn_info_t *info,
- apr_pool_t *pool);
};
#endif // INFOCALLBACK_H
Modified: subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp?rev=925427&r1=925426&r2=925427&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/NotifyCallback.cpp Fri Mar 19 21:22:26 2010
@@ -135,141 +135,7 @@ NotifyCallback::onNotify(const svn_wc_no
return;
}
- static jmethodID midCT = 0;
- jclass clazz = env->FindClass(JAVA_PACKAGE"/NotifyInformation");
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- if (midCT == 0)
- {
- midCT = env->GetMethodID(clazz, "<init>",
- "(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/NotifyInformation$Action;"
- "L"JAVA_PACKAGE"/NodeKind;Ljava/lang/String;"
- "L"JAVA_PACKAGE"/Lock;"
- "Ljava/lang/String;"
- "L"JAVA_PACKAGE"/NotifyInformation$Status;"
- "L"JAVA_PACKAGE"/NotifyInformation$Status;"
- "L"JAVA_PACKAGE"/NotifyInformation$LockStatus;"
- "JLjava/lang/String;"
- "L"JAVA_PACKAGE"/RevisionRange;"
- "Ljava/lang/String;)V");
- if (JNIUtil::isJavaExceptionThrown() || midCT == 0)
- return;
- }
-
- // convert the parameter to their Java relatives
- jstring jPath = JNIUtil::makeJString(wcNotify->path);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jobject jAction = EnumMapper::mapNotifyAction(wcNotify->action);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jobject jKind = EnumMapper::mapNodeKind(wcNotify->kind);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jstring jMimeType = JNIUtil::makeJString(wcNotify->mime_type);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jobject jLock = CreateJ::Lock(wcNotify->lock);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jstring jErr = JNIUtil::makeSVNErrorMessage(wcNotify->err);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jobject jContentState = EnumMapper::mapNotifyState(wcNotify->content_state);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jobject jPropState = EnumMapper::mapNotifyState(wcNotify->prop_state);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jobject jLockState = EnumMapper::mapNotifyLockState(wcNotify->lock_state);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jstring jChangelistName = JNIUtil::makeJString(wcNotify->changelist_name);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- jobject jMergeRange;
- if (wcNotify->merge_range)
- {
- jMergeRange = RevisionRange::makeJRevisionRange(wcNotify->merge_range);
- if (jMergeRange == NULL)
- return;
- }
- else
- {
- jMergeRange = NULL;
- }
-
- jstring jpathPrefix = JNIUtil::makeJString(wcNotify->path_prefix);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- // call the Java method
- jobject jInfo = env->NewObject(clazz, midCT, jPath, jAction,
- jKind, jMimeType, jLock, jErr,
- jContentState, jPropState, jLockState,
- (jlong) wcNotify->revision, jChangelistName,
- jMergeRange, jpathPrefix);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- // release all the temporary Java objects
- env->DeleteLocalRef(jPath);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jLockState);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jPropState);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jContentState);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jKind);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jAction);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jMimeType);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jErr);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jLock);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(clazz);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jChangelistName);
- if (JNIUtil::isJavaExceptionThrown())
- return;
-
- env->DeleteLocalRef(jpathPrefix);
+ jobject jInfo = CreateJ::NotifyInformation(wcNotify);
if (JNIUtil::isJavaExceptionThrown())
return;
Modified: subversion/trunk/subversion/bindings/javahl/native/StatusCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/StatusCallback.cpp?rev=925427&r1=925426&r2=925427&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/StatusCallback.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/StatusCallback.cpp Fri Mar 19 21:22:26 2010
@@ -29,8 +29,6 @@
#include "EnumMapper.h"
#include "JNIUtil.h"
#include "svn_time.h"
-#include "../include/org_apache_subversion_javahl_NodeKind.h"
-#include "../include/org_apache_subversion_javahl_Revision.h"
/**
* Create a StatusCallback object
@@ -71,6 +69,11 @@ StatusCallback::doStatus(const char *loc
{
JNIEnv *env = JNIUtil::getEnv();
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return SVN_NO_ERROR;
+
static jmethodID mid = 0; // the method id will not change during
// the time this library is loaded, so
// it can be cached.
@@ -78,268 +81,22 @@ StatusCallback::doStatus(const char *loc
{
jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/StatusCallback");
if (JNIUtil::isJavaExceptionThrown())
- return SVN_NO_ERROR;
+ POP_AND_RETURN(SVN_NO_ERROR);
mid = env->GetMethodID(clazz, "doStatus",
"(L"JAVA_PACKAGE"/Status;)V");
if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- return SVN_NO_ERROR;
-
- env->DeleteLocalRef(clazz);
- if (JNIUtil::isJavaExceptionThrown())
- return SVN_NO_ERROR;
+ POP_AND_RETURN(SVN_NO_ERROR);
}
- jobject jStatus = createJavaStatus(local_abspath, status);
+ jobject jStatus = CreateJ::Status(local_abspath, status);
if (JNIUtil::isJavaExceptionThrown())
- return SVN_NO_ERROR;
+ POP_AND_RETURN(SVN_NO_ERROR);
env->CallVoidMethod(m_callback, mid, jStatus);
- if (JNIUtil::isJavaExceptionThrown())
- return SVN_NO_ERROR;
-
- env->DeleteLocalRef(jStatus);
// We return here regardless of whether an exception is thrown or not,
// so we do not need to explicitly check for one.
- return SVN_NO_ERROR;
-}
-
-jobject
-StatusCallback::createJavaStatus(const char *local_abspath,
- const svn_wc_status2_t *status)
-{
- JNIEnv *env = JNIUtil::getEnv();
- jclass clazz = env->FindClass(JAVA_PACKAGE"/Status");
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- static jmethodID mid = 0;
- if (mid == 0)
- {
- mid = env->GetMethodID(clazz, "<init>",
- "(Ljava/lang/String;Ljava/lang/String;"
- "L"JAVA_PACKAGE"/NodeKind;"
- "JJJLjava/lang/String;"
- "L"JAVA_PACKAGE"/Status$Kind;"
- "L"JAVA_PACKAGE"/Status$Kind;"
- "L"JAVA_PACKAGE"/Status$Kind;"
- "L"JAVA_PACKAGE"/Status$Kind;"
- "ZZZL"JAVA_PACKAGE"/ConflictDescriptor;"
- "Ljava/lang/String;Ljava/lang/String;"
- "Ljava/lang/String;Ljava/lang/String;"
- "JZZLjava/lang/String;Ljava/lang/String;"
- "Ljava/lang/String;"
- "JL"JAVA_PACKAGE"/Lock;"
- "JJL"JAVA_PACKAGE"/NodeKind;"
- "Ljava/lang/String;Ljava/lang/String;)V");
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
- }
- jstring jPath = JNIUtil::makeJString(local_abspath);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jUrl = NULL;
- jobject jNodeKind = NULL;
- jlong jRevision = org_apache_subversion_javahl_Revision_SVN_INVALID_REVNUM;
- jlong jLastChangedRevision =
- org_apache_subversion_javahl_Revision_SVN_INVALID_REVNUM;
- jlong jLastChangedDate = 0;
- jstring jLastCommitAuthor = NULL;
- jobject jTextType = NULL;
- jobject jPropType = NULL;
- jobject jRepositoryTextType = NULL;
- jobject jRepositoryPropType = NULL;
- jboolean jIsLocked = JNI_FALSE;
- jboolean jIsCopied = JNI_FALSE;
- jboolean jIsSwitched = JNI_FALSE;
- jboolean jIsFileExternal = JNI_FALSE;
- jboolean jIsTreeConflicted = JNI_FALSE;
- jobject jConflictDescription = NULL;
- jstring jConflictOld = NULL;
- jstring jConflictNew = NULL;
- jstring jConflictWorking = NULL;
- jstring jURLCopiedFrom = NULL;
- jlong jRevisionCopiedFrom =
- org_apache_subversion_javahl_Revision_SVN_INVALID_REVNUM;
- jstring jLockToken = NULL;
- jstring jLockComment = NULL;
- jstring jLockOwner = NULL;
- jlong jLockCreationDate = 0;
- jobject jLock = NULL;
- jlong jOODLastCmtRevision =
- org_apache_subversion_javahl_Revision_SVN_INVALID_REVNUM;
- jlong jOODLastCmtDate = 0;
- jobject jOODKind = NULL;
- jstring jOODLastCmtAuthor = NULL;
- jstring jChangelist = NULL;
- if (status != NULL)
- {
- jTextType = EnumMapper::mapStatusKind(status->text_status);
- jPropType = EnumMapper::mapStatusKind(status->prop_status);
- jRepositoryTextType = EnumMapper::mapStatusKind(
- status->repos_text_status);
- jRepositoryPropType = EnumMapper::mapStatusKind(
- status->repos_prop_status);
- jIsCopied = (status->copied == 1) ? JNI_TRUE: JNI_FALSE;
- jIsLocked = (status->locked == 1) ? JNI_TRUE: JNI_FALSE;
- jIsSwitched = (status->switched == 1) ? JNI_TRUE: JNI_FALSE;
- jIsFileExternal = (status->file_external == 1) ? JNI_TRUE: JNI_FALSE;
- jConflictDescription = CreateJ::ConflictDescriptor(status->tree_conflict);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jIsTreeConflicted = (status->tree_conflict != NULL)
- ? JNI_TRUE: JNI_FALSE;
- jLock = CreateJ::Lock(status->repos_lock);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jUrl = JNIUtil::makeJString(status->url);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jOODLastCmtRevision = status->ood_last_cmt_rev;
- jOODLastCmtDate = status->ood_last_cmt_date;
- jOODKind = EnumMapper::mapNodeKind(status->ood_kind);
- jOODLastCmtAuthor = JNIUtil::makeJString(status->ood_last_cmt_author);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- const svn_wc_entry_t *entry = status->entry;
- if (entry != NULL)
- {
- jNodeKind = EnumMapper::mapNodeKind(entry->kind);
- jRevision = entry->revision;
- jLastChangedRevision = entry->cmt_rev;
- jLastChangedDate = entry->cmt_date;
- jLastCommitAuthor = JNIUtil::makeJString(entry->cmt_author);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jConflictNew = JNIUtil::makeJString(entry->conflict_new);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jConflictOld = JNIUtil::makeJString(entry->conflict_old);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jConflictWorking= JNIUtil::makeJString(entry->conflict_wrk);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jURLCopiedFrom = JNIUtil::makeJString(entry->copyfrom_url);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jRevisionCopiedFrom = entry->copyfrom_rev;
- jLockToken = JNIUtil::makeJString(entry->lock_token);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jLockComment = JNIUtil::makeJString(entry->lock_comment);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jLockOwner = JNIUtil::makeJString(entry->lock_owner);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jLockCreationDate = entry->lock_creation_date;
-
- jChangelist = JNIUtil::makeJString(entry->changelist);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
- }
- }
-
- jobject ret = env->NewObject(clazz, mid, jPath, jUrl, jNodeKind, jRevision,
- jLastChangedRevision, jLastChangedDate,
- jLastCommitAuthor, jTextType, jPropType,
- jRepositoryTextType, jRepositoryPropType,
- jIsLocked, jIsCopied, jIsTreeConflicted,
- jConflictDescription, jConflictOld, jConflictNew,
- jConflictWorking, jURLCopiedFrom,
- jRevisionCopiedFrom, jIsSwitched, jIsFileExternal,
- jLockToken, jLockOwner,
- jLockComment, jLockCreationDate, jLock,
- jOODLastCmtRevision, jOODLastCmtDate,
- jOODKind, jOODLastCmtAuthor, jChangelist);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(clazz);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
- env->DeleteLocalRef(jPath);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jUrl);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jLastCommitAuthor);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jTextType);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jPropType);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jRepositoryTextType);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jRepositoryPropType);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jConflictNew);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jConflictOld);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jConflictWorking);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jURLCopiedFrom);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jLockComment);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jLockOwner);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jLockToken);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jLock);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jOODLastCmtAuthor);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- env->DeleteLocalRef(jChangelist);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- return ret;
+ env->PopLocalFrame(NULL);
+ return SVN_NO_ERROR;
}
Modified: subversion/trunk/subversion/bindings/javahl/native/StatusCallback.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/StatusCallback.h?rev=925427&r1=925426&r2=925427&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/StatusCallback.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/StatusCallback.h Fri Mar 19 21:22:26 2010
@@ -54,9 +54,6 @@ class StatusCallback
* This a local reference to the Java object.
*/
jobject m_callback;
-
- jobject createJavaStatus(const char *local_abspath,
- const svn_wc_status2_t *status);
};
#endif // STATUSCALLBACK_H