Author: rhuijben
Date: Thu Jun 24 14:54:46 2010
New Revision: 957569

URL: http://svn.apache.org/viewvc?rev=957569&view=rev
Log:
* subversion/bindings/javahl/native/CreateJ.cpp
  (CreateJ::Status): Use svn_wc__node_get_info_bits() and
    svn_wc__node_get_copyfrom_info() to get information that was previously
    retrieved by reading a svn_wc_entry_t.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp

Modified: subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp?rev=957569&r1=957568&r2=957569&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp Thu Jun 24 
14:54:46 2010
@@ -546,34 +546,48 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
 
       if (status->versioned)
         {
-          /* ### This call returns SVN_ERR_ENTRY_NOT_FOUND for all not found
-             ### cases including the (for status) ignored 
-             ### SVN_ERR_NODE_UNEXPECTED_KIND!. Needs a workaround for 100%
-             ### compatibility with <= 1.6 */
-          svn_error_t *err = svn_wc__get_entry_versioned(&entry, wc_ctx, 
local_abspath,
-                                                         svn_node_unknown, 
FALSE, FALSE,
-                                                         pool, pool);
-
-          if (err && err->apr_err == SVN_ERR_ENTRY_NOT_FOUND)
-            svn_error_clear(err);
-          else
-            SVN_JNI_ERR(err, NULL);
-         }
+          const char *conflict_new, *conflict_old, *conflict_wrk;
+          const char *copyfrom_url;
+          svn_revnum_t copyfrom_rev;
+
+          /* This call returns SVN_ERR_ENTRY_NOT_FOUND for some hidden
+             cases, which we can just ignore here as hidden nodes
+             are not in text or property conflict. */
+          svn_error_t *err = svn_wc__node_get_info_bits(NULL,
+                                                        NULL, 
+                                                        &conflict_old,
+                                                        &conflict_new,
+                                                        &conflict_wrk,
+                                                        NULL,
+                                                        wc_ctx, local_abspath,
+                                                        pool, pool);
+
+          if (err)
+            {
+               if (err->apr_err == SVN_ERR_ENTRY_NOT_FOUND)
+                 svn_error_clear(err);
+               else
+                 SVN_JNI_ERR(err, NULL);
+            }
 
-      if (entry != NULL)
-        {
-          jConflictNew = JNIUtil::makeJString(entry->conflict_new);
+          jConflictNew = JNIUtil::makeJString(conflict_new);
           if (JNIUtil::isJavaExceptionThrown())
             POP_AND_RETURN_NULL;
 
-          jConflictOld = JNIUtil::makeJString(entry->conflict_old);
+          jConflictOld = JNIUtil::makeJString(conflict_old);
           if (JNIUtil::isJavaExceptionThrown())
             POP_AND_RETURN_NULL;
 
-          jConflictWorking= JNIUtil::makeJString(entry->conflict_wrk);
+          jConflictWorking= JNIUtil::makeJString(conflict_wrk);
           if (JNIUtil::isJavaExceptionThrown())
             POP_AND_RETURN_NULL;
 
+          SVN_JNI_ERR(svn_wc__node_get_copyfrom_info(&copyfrom_url,
+                                                     &copyfrom_rev,
+                                                     NULL,
+                                                     wc_ctx, local_abspath,
+                                                     pool, pool), NULL);
+
           jURLCopiedFrom = JNIUtil::makeJString(entry->copyfrom_url);
           if (JNIUtil::isJavaExceptionThrown())
             POP_AND_RETURN_NULL;


Reply via email to