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