svn commit: r1851333 - in /subversion/trunk/subversion/bindings/javahl: native/ src/org/apache/subversion/javahl/ src/org/apache/subversion/javahl/callback/ tests/org/apache/subversion/javahl/

2019-01-15 Thread brane
Author: brane
Date: Tue Jan 15 10:20:26 2019
New Revision: 1851333

URL: http://svn.apache.org/viewvc?rev=1851333&view=rev
Log:
Fix issue #4801: Make JavaHL blame return byte[] file contents in the
blame callback instead of assuming they can be converted to String.

[in subversion/bindings/javahl/src/org/apache/subversion/javahl]
* ISVNClient.java
  (ISVNClient.blame): Add a new overload that uses the new BlameLineCallback.
   Deprecate the other two overloads that use BlameCallback.
* SVNClient.java
  (SVNClient.blame): Implement new native overload and deprecate the old ones.
  (SVNClient.BlameCallbackAdapter): New helper class.

* callback/BlameCallback.java
  (BlameCallback): Deprecated.
* callback/BlameLineCallback.java
  (BlameLineCallback): New, replaces BlameCallback.

[in subversion/bindings/javahl/tests/org/apache/subversion/javahl]
* BasicTests.java
  (testBasicBlame, testBlameWithDiffOptions): Suppress deprecation warnings
   as these tests use the old API, and should continue to do so in order to
   test the callback adapter.
  (testBinaryBlame): New test case.
  (collectBlameLines, BlameCallbackImpl): Suppress deprecation warnings.
  (BlameLineCallbackImpl): New helper class.
* ExceptionTests.java
  (testBlameCallback): Use the new API in this test case.

[in subversion/bindings/javahl/native]
* org_apache_subversion_javahl_SVNClient.cpp
  (Java_org_apache_subversion_javahl_SVNClient_blame): Update parameter order.
* BlameCallback.cpp
  (BlameCallback::singleLine): Use BlameLineCallback instead of BlameCallback.

Added:

subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameLineCallback.java
   (with props)
Modified:
subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp

subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp

subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java

subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java

subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java

subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java

subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java

Modified: subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp?rev=1851333&r1=1851332&r2=1851333&view=diff
==
--- subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp 
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp Tue 
Jan 15 10:20:26 2019
@@ -89,13 +89,13 @@ BlameCallback::singleLine(apr_int64_t li
   static jmethodID mid = 0;
   if (mid == 0)
 {
-  jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/BlameCallback"));
+  jclass clazz = 
env->FindClass(JAVAHL_CLASS("/callback/BlameLineCallback"));
   if (JNIUtil::isJavaExceptionThrown())
 POP_AND_RETURN(SVN_NO_ERROR);
 
   mid = env->GetMethodID(clazz, "singleLine",
  "(JJLjava/util/Map;JLjava/util/Map;"
- "Ljava/lang/String;Ljava/lang/String;Z)V");
+ "Ljava/lang/String;Z[B)V");
   if (JNIUtil::isJavaExceptionThrown() || mid == 0)
 POP_AND_RETURN(SVN_NO_ERROR);
 }
@@ -117,14 +117,14 @@ BlameCallback::singleLine(apr_int64_t li
   if (JNIUtil::isJavaExceptionThrown())
 POP_AND_RETURN(SVN_NO_ERROR);
 
-  jstring jline = JNIUtil::makeJString(line->data);
+  jbyteArray jline = JNIUtil::makeJByteArray(line);
   if (JNIUtil::isJavaExceptionThrown())
 POP_AND_RETURN(SVN_NO_ERROR);
 
   // call the Java method
   env->CallVoidMethod(m_callback, mid, (jlong)line_no, (jlong)revision,
   jrevProps, (jlong)mergedRevision, jmergedRevProps,
-  jmergedPath, jline, (jboolean)localChange);
+  jmergedPath, (jboolean)localChange, jline);
 
   POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }

Modified: 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1851333&r1=1851332&r2=1851333&view=diff
==
--- 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
 Tue Jan 15 10:20:26 2019
@@ -1658,8 +1658,8 @@ JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_blame
 (JNIEnv *env, jobject jthis, jstring jp

svn commit: r1851335 - /subversion/trunk/CHANGES

2019-01-15 Thread brane
Author: brane
Date: Tue Jan 15 10:58:49 2019
New Revision: 1851335

URL: http://svn.apache.org/viewvc?rev=1851335&view=rev
Log:
* CHANGES: Record r1851333 and reword r1845408.

Modified:
subversion/trunk/CHANGES

Modified: subversion/trunk/CHANGES
URL: 
http://svn.apache.org/viewvc/subversion/trunk/CHANGES?rev=1851335&r1=1851334&r2=1851335&view=diff
==
--- subversion/trunk/CHANGES (original)
+++ subversion/trunk/CHANGES Tue Jan 15 10:58:49 2019
@@ -36,7 +36,8 @@ https://svn.apache.org/repos/asf/subvers
 * All C++ code is compiled in C++11 mode by default (r1849202)
 
   - Bindings:
-* Fixed potential core dump in JavaHL's ISVNClient.diff (r1845408)
+* JavaHL: Fixed potential core dump in ISVNClient.diff (r1845408)
+* JavaHL: Let clients decode file contents from ISVNClient.blame (r1851333)
 
 
 Version 1.11.1




svn commit: r1851358 - /subversion/trunk/subversion/tests/libsvn_fs/locks-test.c

2019-01-15 Thread brane
Author: brane
Date: Tue Jan 15 14:08:59 2019
New Revision: 1851358

URL: http://svn.apache.org/viewvc?rev=1851358&view=rev
Log:
* subversion/tests/libsvn_fs/locks-test.c (obtain_write_lock_failure):
   Add a comment that explains why this test fails when run as root.
   No functional change.

Modified:
subversion/trunk/subversion/tests/libsvn_fs/locks-test.c

Modified: subversion/trunk/subversion/tests/libsvn_fs/locks-test.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_fs/locks-test.c?rev=1851358&r1=1851357&r2=1851358&view=diff
==
--- subversion/trunk/subversion/tests/libsvn_fs/locks-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_fs/locks-test.c Tue Jan 15 
14:08:59 2019
@@ -1089,6 +1089,9 @@ lock_cb_error(const svn_test_opts_t *opt
   return SVN_NO_ERROR;
 }
 
+/* XXX NOTE:
+   This test will fail on most Unix-like systems when run as the
+   root user, because flock() will ignore file permissions. */
 static svn_error_t *
 obtain_write_lock_failure(const svn_test_opts_t *opts,
   apr_pool_t *pool)