You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2015/05/13 06:51:28 UTC

svn commit: r1679139 [1/7] - in /subversion/branches/1.10-cache-improvements: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ subversion/bindings/javahl/ subversion/bindings/javahl/native/ subversion/bindings/javahl/native/jniwra...

Author: stefan2
Date: Wed May 13 04:51:26 2015
New Revision: 1679139

URL: http://svn.apache.org/r1679139
Log:
On the 1.10-cache-improvements branch:
Sync with /trunk up to r1679137. Resolve text conflicts in cache tests
and membuffer code.

Added:
    subversion/branches/1.10-cache-improvements/subversion/svnbench/null-blame-cmd.c
      - copied unchanged from r1679101, subversion/trunk/subversion/svnbench/null-blame-cmd.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_fs/fs-sequential-test.c
      - copied unchanged from r1679101, subversion/trunk/subversion/tests/libsvn_fs/fs-sequential-test.c
    subversion/branches/1.10-cache-improvements/tools/dist/README.backport
      - copied unchanged from r1679101, subversion/trunk/tools/dist/README.backport
    subversion/branches/1.10-cache-improvements/tools/dist/backport/
      - copied from r1679101, subversion/trunk/tools/dist/backport/
    subversion/branches/1.10-cache-improvements/tools/dist/backport_tests_pl.py
      - copied unchanged from r1679101, subversion/trunk/tools/dist/backport_tests_pl.py
    subversion/branches/1.10-cache-improvements/tools/dist/backport_tests_py.py
      - copied unchanged from r1679101, subversion/trunk/tools/dist/backport_tests_py.py
    subversion/branches/1.10-cache-improvements/tools/dist/detect-conflicting-backports.py
      - copied unchanged from r1679101, subversion/trunk/tools/dist/detect-conflicting-backports.py
    subversion/branches/1.10-cache-improvements/tools/dist/merge-approved-backports.py
      - copied unchanged from r1679101, subversion/trunk/tools/dist/merge-approved-backports.py
Modified:
    subversion/branches/1.10-cache-improvements/   (props changed)
    subversion/branches/1.10-cache-improvements/CHANGES
    subversion/branches/1.10-cache-improvements/Makefile.in
    subversion/branches/1.10-cache-improvements/build.conf
    subversion/branches/1.10-cache-improvements/build/ac-macros/java.m4
    subversion/branches/1.10-cache-improvements/build/ac-macros/swig.m4
    subversion/branches/1.10-cache-improvements/build/generator/gen_base.py
    subversion/branches/1.10-cache-improvements/build/generator/gen_win_dependencies.py
    subversion/branches/1.10-cache-improvements/build/generator/templates/build-outputs.mk.ezt
    subversion/branches/1.10-cache-improvements/build/generator/templates/vcnet_vcxproj.ezt
    subversion/branches/1.10-cache-improvements/build/run_tests.py
    subversion/branches/1.10-cache-improvements/configure.ac
    subversion/branches/1.10-cache-improvements/gen-make.py
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/README
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.cpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.h
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.cpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.hpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/RemoteSession.cpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.cpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.h
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNAdminTests.java
    subversion/branches/1.10-cache-improvements/subversion/bindings/swig/INSTALL
    subversion/branches/1.10-cache-improvements/subversion/bindings/swig/include/apr.swg
    subversion/branches/1.10-cache-improvements/subversion/include/private/svn_client_private.h
    subversion/branches/1.10-cache-improvements/subversion/include/private/svn_cmdline_private.h
    subversion/branches/1.10-cache-improvements/subversion/include/private/svn_mutex.h
    subversion/branches/1.10-cache-improvements/subversion/include/private/svn_subr_private.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_client.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_diff.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_dirent_uri.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_error.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_fs.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_ra.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_repos.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_types.h
    subversion/branches/1.10-cache-improvements/subversion/include/svn_wc.h
    subversion/branches/1.10-cache-improvements/subversion/libsvn_client/client.h
    subversion/branches/1.10-cache-improvements/subversion/libsvn_client/copy.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_client/export.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs/editor.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs/fs-loader.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs/fs-loader.h
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_base/fs.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_base/id.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_base/lock.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_base/tree.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/cached_data.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/cached_data.h
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/dag.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/dag.h
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/fs.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/fs.h
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/id.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/lock.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/pack.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/pack.h
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/recovery.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/rep-cache.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/stats.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/structure
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/transaction.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_fs/tree.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_x/   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_x/fs.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_x/fs_id.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_x/lock.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_x/pack.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_x/pack.h
    subversion/branches/1.10-cache-improvements/subversion/libsvn_fs_x/tree.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_ra/ra_loader.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_ra_serf/serf.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_ra_serf/stat.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_ra_serf/util.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_repos/delta.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_repos/reporter.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_repos/repos.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/cache-inprocess.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/checksum.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/cmdline.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/config_file.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/config_win.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/dirent_uri.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/dso.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/hash.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/io.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/pool.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/stream.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_subr/x509parse.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_wc/deprecated.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_wc/diff_editor.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_wc/diff_local.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_wc/wc-metadata.sql
    subversion/branches/1.10-cache-improvements/subversion/libsvn_wc/wc_db.c
    subversion/branches/1.10-cache-improvements/subversion/libsvn_wc/wc_db_update_move.c
    subversion/branches/1.10-cache-improvements/subversion/mod_dav_svn/liveprops.c
    subversion/branches/1.10-cache-improvements/subversion/mod_dav_svn/repos.c
    subversion/branches/1.10-cache-improvements/subversion/mod_dav_svn/util.c
    subversion/branches/1.10-cache-improvements/subversion/mod_dav_svn/version.c
    subversion/branches/1.10-cache-improvements/subversion/po/de.po
    subversion/branches/1.10-cache-improvements/subversion/svn/auth-cmd.c
    subversion/branches/1.10-cache-improvements/subversion/svn/conflict-callbacks.c
    subversion/branches/1.10-cache-improvements/subversion/svn/list-cmd.c
    subversion/branches/1.10-cache-improvements/subversion/svn/similarity.c
    subversion/branches/1.10-cache-improvements/subversion/svn/status-cmd.c
    subversion/branches/1.10-cache-improvements/subversion/svn/svn.c
    subversion/branches/1.10-cache-improvements/subversion/svnadmin/svnadmin.c
    subversion/branches/1.10-cache-improvements/subversion/svnbench/cl.h
    subversion/branches/1.10-cache-improvements/subversion/svnbench/svnbench.c
    subversion/branches/1.10-cache-improvements/subversion/svnmucc/svnmucc.c
    subversion/branches/1.10-cache-improvements/subversion/svnrdump/svnrdump.c
    subversion/branches/1.10-cache-improvements/subversion/svnserve/serve.c
    subversion/branches/1.10-cache-improvements/subversion/svnsync/svnsync.c
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/basic_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/checkout_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/commit_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/copy_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/diff_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn--help_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn--version--quiet_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn--version--quiet_stdout   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stdout   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn--version_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn--version_stdout   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help--version_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help--version_stdout   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help_bogus-cmd_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help_bogus-cmd_stdout   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout   (contents, props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_stderr   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/getopt_tests_data/svn_stdout   (props changed)
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/lock_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/svnmucc_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/svnsync_authz_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/switch_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/update_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_client/client-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_fs/fs-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_ra/ra-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_subr/cache-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_subr/checksum-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_subr/io-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/1.10-cache-improvements/subversion/tests/svn_test.h
    subversion/branches/1.10-cache-improvements/subversion/tests/svn_test_main.c
    subversion/branches/1.10-cache-improvements/tools/buildbot/slaves/svn-x64-macosx/mkramdisk.sh
    subversion/branches/1.10-cache-improvements/tools/buildbot/slaves/svn-x64-macosx/setenv.sh
    subversion/branches/1.10-cache-improvements/tools/buildbot/slaves/svn-x64-macosx/svncheck-bindings.sh
    subversion/branches/1.10-cache-improvements/tools/client-side/bash_completion
    subversion/branches/1.10-cache-improvements/tools/dist/backport.pl
    subversion/branches/1.10-cache-improvements/tools/dist/backport_tests.py   (contents, props changed)
    subversion/branches/1.10-cache-improvements/tools/dist/release.py
    subversion/branches/1.10-cache-improvements/win-tests.py

Propchange: subversion/branches/1.10-cache-improvements/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed May 13 04:51:26 2015
@@ -52,6 +52,7 @@ serf
 gmock-fused
 .git
 .gitignore
+.idea
 compile_commands.json
 .kdev4
 *.kdev4

Propchange: subversion/branches/1.10-cache-improvements/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 13 04:51:26 2015
@@ -89,3 +89,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
+/subversion/trunk:1669166-1679137

Modified: subversion/branches/1.10-cache-improvements/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/CHANGES?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/CHANGES (original)
+++ subversion/branches/1.10-cache-improvements/CHANGES Wed May 13 04:51:26 2015
@@ -189,6 +189,9 @@ http://svn.apache.org/repos/asf/subversi
       unversioned obstructions (r1659381)
     * windows: improve checkout performance on windows by using sqlite truncate
       journal mode rather than delete (r1659426)
+    * status: now accept '-r' argument (r1671164, 1672578, 1673228)
+    * ls: improve performance of '-v' on tag directories (r1673153)
+    * resolve: improve conflict prompts for binary files (r1667228 et al)
 
   - Client-side bugfixes:
     * export: fix problem exporting symlinks on windows (r1476093)
@@ -298,6 +301,12 @@ http://svn.apache.org/repos/asf/subversi
     * info: provide results in a stable order (r1662030)
     * revert: allow depth limited reverts of nodes that only have not-present
       and/or excluded child nodes (r1662091)
+    * wc: fix calculating repo path after commits of nodes that shadow a
+      switched (not-present) node (r1663991, r1666258, r1674032)
+    * update: resolve assertion on bad update report involving incomplete
+      status (r1663671, r1666832)
+    * update: allow a real file to replace a file external (r1664035)
+    * merge: raise a tree conflict on root of obstructing dir (r1666690)
 
   - Server-side bugfixes:
     * svnserve: don't ignore socket initialization errors (r1544253)
@@ -372,6 +381,15 @@ http://svn.apache.org/repos/asf/subversi
     * fsfs: fix pool lifetime issue in lock handling (r1659314)
     * mod_dav_svn: properly log assertions and malfuctions (r1660480)
     * svnadmin load/dump: preserve deletion of svn:date from r0 (issue #4563)
+    * svnrdump: don't provide HEAD+1 as base revision when loading deletes
+      (r1664684)
+    * mod_dav_svn: improve error message sent with a 405 status code
+      (r1665195, r1666096, r1666379)
+    * make detection of invalid base revision on commit behave the same on
+      all RA layers (r1664664, r1664672, r1664674)
+    * mod_dav_svn: emit the first few log items as soon as they are available
+      (r1666965, r1667120)
+    * mod_dav_svn: prevent a tree walk on copy sources (issue #4351)
 
   - Client-side and server-side bugfixes:
     * use less memory when retrieving extension from filename (r1548480)
@@ -424,6 +442,7 @@ http://svn.apache.org/repos/asf/subversi
     * bash_completion: add '--pin-externals' (r1662250)
     * bash_completion: stop offering deprecated options (r1662291)
     * bash_completion: add '--show-item' and '--no-newline' (r1662622)
+    * svnbench: add null-blame command (r1673785, r1673803, r1674015)
 
  Developer-visible changes:
   - General:
@@ -495,6 +514,11 @@ http://svn.apache.org/repos/asf/subversi
     * fix bugs and performance issues using svn_wc_walk_entries3() (r1661110)
     * support using Python 3 for building (r1661247)
     * don't add -lstdc++ on FreeBSD 10 (r1662329)
+    * add build support for Visual Studio 2015 (r1663183, r1663184)
+    * fix test failures when running from a directory whose name contains
+      characters that must be escaped when used in a URL. (r1664997)
+    * fix breakage of the serf ra session with svn_ra_get_dir2() and
+      svn_ra_get_log2().  (r1665213, r1665259, r1665609)
 
   - API changes:
     * new RA callbacks for managing ra_svn tunnels:
@@ -533,8 +557,8 @@ http://svn.apache.org/repos/asf/subversi
     * svn_auth_first_credentials(): provides an error rather than crashing if
       auth_baton is NULL (r1544320)
     * svn_auth_set_parameter(): Do nothing if auth_baton is NULL (r1544320)
-    * new API svn_relpath_limit which returns a relpath with a maximum number
-      of path components (r1545123)
+    * new API svn_relpath_prefix which returns a relpath with a maximum number
+      of path components (r1545123, r1673282)
     * svn_fs_initialize() is now threadsafe (r1546409)
     * svn_checksum_kind_t has two new FNV-1a checksums (r1546699)
     * svn_fs_lock: control characters are not allowed in lock tokens (r1547445)
@@ -620,6 +644,7 @@ http://svn.apache.org/repos/asf/subversi
     * svn_string_dup() will accept a NULL pointer and return a NULL (r1657254)
     * svn_ra_get_file_revs2() now handles SVN_INVALID_REVNUM as HEAD (r1660463)
     * new API svn_error_quick_wrapf() (r1662668)
+    * new API svn_fs_node_has_props() (r1673170, r1673172, r1673692, r1673746)
 
   - Bindings:
     * javahl: add support for the RA layer (r1494650 et al)
@@ -690,6 +715,9 @@ http://svn.apache.org/repos/asf/subversi
     * swig-py: add support for svn_fs_lock_many(), svn_fs_unlock_many(),
       svn_repos_fs_lock_many() and svn_repos_fs_unlock_many() (r1662867)
     * swig-py: fix support for svn_ra_lock() and svn_ra_unlock() (r1662891)
+    * javahl: allow java callbacks to throw errors back to the svn code
+      (r1664938, r1664939, r1664940, r1664978, r1664984)
+    * swig-pl: fix some stack memory problems (r1668618, 1671388)
 
 
 Version 1.8.13

Modified: subversion/branches/1.10-cache-improvements/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/Makefile.in?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/Makefile.in (original)
+++ subversion/branches/1.10-cache-improvements/Makefile.in Wed May 13 04:51:26 2015
@@ -498,17 +498,17 @@ clean-javahl:
 check-tigris-javahl: javahl-compat
 	@FIX_JAVAHL_LIB@
 	$(TEST_SHLIB_VAR_JAVAHL) \
-	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
+	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
 
 check-apache-javahl: javahl
 	@FIX_JAVAHL_LIB@
 	$(TEST_SHLIB_VAR_JAVAHL) \
-	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
+	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
 
 check-deprecated-authn-javahl: javahl
 	@FIX_JAVAHL_LIB@
 	$(TEST_SHLIB_VAR_JAVAHL) \
-	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true" org.apache.subversion.javahl.RunTests
+	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true" org.apache.subversion.javahl.RunTests
 
 check-javahl: check-apache-javahl
 

Modified: subversion/branches/1.10-cache-improvements/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/build.conf?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/build.conf (original)
+++ subversion/branches/1.10-cache-improvements/build.conf Wed May 13 04:51:26 2015
@@ -867,7 +867,7 @@ libs = libsvn_test libsvn_fs libsvn_delt
 msvc-force-static = yes
 
 [fs-test]
-description = Test locks in libsvn_fs
+description = Tests in libsvn_fs
 type = exe
 path = subversion/tests/libsvn_fs
 sources = fs-test.c
@@ -875,6 +875,15 @@ install = test
 libs = libsvn_test libsvn_fs libsvn_delta
        libsvn_fs_util libsvn_subr aprutil apriconv apr
 
+[fs-sequential-test]
+description = Tests in libsvn_fs run sequentially
+type = exe
+path = subversion/tests/libsvn_fs
+sources = fs-sequential-test.c
+install = test
+libs = libsvn_test libsvn_fs libsvn_delta
+       libsvn_fs_util libsvn_subr aprutil apriconv apr
+
 # ----------------------------------------------------------------------------
 # Tests for libsvn_repos
 
@@ -1492,7 +1501,7 @@ type = project
 path = build/win32
 libs = __ALL__
        fs-test fs-base-test fs-fsfs-test fs-fs-pack-test fs-fs-fuzzy-test
-       fs-fs-private-test fs-x-pack-test string-table-test
+       fs-fs-private-test fs-x-pack-test string-table-test fs-sequential-test
        skel-test strings-reps-test changes-test locks-test
        repos-test dump-load-test
        checksum-test compat-test config-test hashdump-test mergeinfo-test

Modified: subversion/branches/1.10-cache-improvements/build/ac-macros/java.m4
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/build/ac-macros/java.m4?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/build/ac-macros/java.m4 (original)
+++ subversion/branches/1.10-cache-improvements/build/ac-macros/java.m4 Wed May 13 04:51:26 2015
@@ -62,10 +62,13 @@ AC_DEFUN(SVN_FIND_JDK,
   JDK_SUITABLE=no
   AC_MSG_CHECKING([for JDK])
   if test $where = check; then
-    dnl Prefer /Library/Java/Home first to try to be nice on Darwin.
-    dnl We'll correct later if we get caught in the tangled web of JAVA_HOME.
+    dnl Prefer /usr/libexec/java_home, then /Library/Java/Home first
+    dnl to try to be nice on Darwin.  We'll correct later if we get
+    dnl caught in the tangled web of JAVA_HOME.
     if test -x "$JAVA_HOME/bin/java"; then
       JDK="$JAVA_HOME"
+    elif test -x "/usr/libexec/java_home"; then
+      JDK=`/usr/libexec/java_home`
     elif test -x "/Library/Java/Home/bin/java"; then
       JDK="/Library/Java/Home"
     elif test -x "/usr/bin/java"; then
@@ -148,49 +151,22 @@ AC_DEFUN(SVN_FIND_JDK,
     JAVADOC="$JAVA_BIN/javadoc"
     JAR="$JAVA_BIN/jar"
 
-    dnl Prefer Jikes (for speed) if available.
-    jikes_options="/usr/local/bin/jikes /usr/bin/jikes"
+    dnl Once upon a time we preferred Jikes for speed.
+    dnl Jikes is dead, long live Jikes!
     AC_ARG_WITH(jikes,
                 AS_HELP_STRING([--with-jikes=PATH],
-                               [Specify the path to a jikes binary to use
-                                it as your Java compiler.  The default is to
-                                look for jikes (PATH optional).  This behavior
-                                can be switched off by supplying 'no'.]),
+                   [Deprecated. Provided for backward compatibility.]),
     [
-        if test "$withval" != "no" && test "$withval" != "yes"; then
-          dnl Assume a path was provided.
-          jikes_options="$withval $jikes_options"
-        fi
-        requested_jikes="$withval"  # will be 'yes' if path unspecified
-    ])
-    if test "$requested_jikes" != "no"; then
-      dnl Look for a usable jikes binary.
-      for jikes in $jikes_options; do
-        if test -z "$jikes_found" && test -x "$jikes"; then
-          jikes_found="yes"
-          JAVAC="$jikes"
-          JAVA_CLASSPATH="$JRE_LIB_DIR"
-          for jar in $JRE_LIB_DIR/*.jar; do
-            JAVA_CLASSPATH="$JAVA_CLASSPATH:$jar"
-          done
-        fi
-      done
-    fi
-    if test -n "$requested_jikes" && test "$requested_jikes" != "no"; then
-      dnl Jikes was explicitly requested.  Verify that it was provided.
-      if test -z "$jikes_found"; then
-        AC_MSG_ERROR([Could not find a usable version of Jikes])
-      elif test -n "$jikes_found" && test "$requested_jikes" != "yes" &&
-           test "$JAVAC" != "$requested_jikes"; then
-        AC_MSG_WARN([--with-jikes PATH was invalid, substitute found])
+      if test "$withval" != "no"; then
+        AC_MSG_WARN([The --with-jikes option was ignored])
       fi
-    fi
+    ])
 
     dnl Add javac flags.
     # The release for "-source" could actually be greater than that
     # of "-target", if we want to cross-compile for lesser JVMs.
     if test -z "$JAVAC_FLAGS"; then
-      JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.5"
+      JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
       if test "$enable_debugging" = "yes"; then
         JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
         if test -z "$JAVAC_COMPAT_FLAGS"; then

Modified: subversion/branches/1.10-cache-improvements/build/ac-macros/swig.m4
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/build/ac-macros/swig.m4?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/build/ac-macros/swig.m4 (original)
+++ subversion/branches/1.10-cache-improvements/build/ac-macros/swig.m4 Wed May 13 04:51:26 2015
@@ -88,16 +88,13 @@ AC_DEFUN(SVN_FIND_SWIG,
     AC_MSG_RESULT([$SWIG_VERSION_RAW])
     # If you change the required swig version number, don't forget to update:
     #   subversion/bindings/swig/INSTALL
-    #   packages/rpm/redhat-8+/subversion.spec
-    #   packages/rpm/redhat-7.x/subversion.spec
-    #   packages/rpm/rhel-3/subversion.spec
-    #   packages/rpm/rhel-4/subversion.spec
-    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024"; then
+    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024" && \
+       test "$SWIG_VERSION" -lt "300000"; then
       SWIG_SUITABLE=yes
     else
       SWIG_SUITABLE=no
       AC_MSG_WARN([Detected SWIG version $SWIG_VERSION_RAW])
-      AC_MSG_WARN([Subversion requires SWIG 1.3.24 or later])
+      AC_MSG_WARN([Subversion requires SWIG >= 1.3.24 and < 3.0.0 ])
     fi
   fi
  

Modified: subversion/branches/1.10-cache-improvements/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/build/generator/gen_base.py?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/build/generator/gen_base.py (original)
+++ subversion/branches/1.10-cache-improvements/build/generator/gen_base.py Wed May 13 04:51:26 2015
@@ -22,6 +22,7 @@
 # gen_base.py -- infrastructure for generating makefiles, dependencies, etc.
 #
 
+import collections
 import os
 import sys
 import glob
@@ -319,6 +320,93 @@ class GeneratorBase:
   def errno_filter(self, codes):
     return codes
 
+  class FileSectionOptionEnum(object):
+    # These are accessed via getattr() later on
+    file = object()
+    section = object()
+    option = object()
+
+  def _client_configuration_defines(self):
+    """Return an iterator over SVN_CONFIG_* #define's in the "Client
+    configuration files strings" section of svn_config.h."""
+
+    pattern = re.compile(
+      r'^\s*#\s*define\s+'
+      r'(?P<macro>SVN_CONFIG_(?P<kind>CATEGORY|SECTION|OPTION)_[A-Z0-9a-z_]+)'
+    )
+    kind = {
+      'CATEGORY': self.FileSectionOptionEnum.file,
+      'SECTION': self.FileSectionOptionEnum.section,
+      'OPTION': self.FileSectionOptionEnum.option,
+    }
+
+    fname = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),
+                         'subversion', 'include', 'svn_config.h')
+    lines = iter(open(fname))
+    for line in lines:
+      if "@name Client configuration files strings" in line:
+        break
+    else:
+      raise Exception("Unable to parse svn_config.h")
+
+    for line in lines:
+      if "@{" in line:
+        break
+    else:
+      raise Exception("Unable to parse svn_config.h")
+
+    for line in lines:
+      if "@}" in line:
+        break
+      match = pattern.match(line)
+      if match:
+        yield (
+          match.group('macro'),
+          kind[match.group('kind')],
+        )
+    else:
+      raise Exception("Unable to parse svn_config.h")
+
+  def write_config_keys(self):
+    groupby = collections.defaultdict(list)
+    empty_sections = []
+    previous = (None, None)
+    for macro, kind in self._client_configuration_defines():
+      if kind is previous[1] is self.FileSectionOptionEnum.section:
+        empty_sections.append(previous[0])
+      groupby[kind].append(macro)
+      previous = (macro, kind)
+    else:
+      # If the last (macro, kind) is a section, then it's an empty section.
+      if kind is self.FileSectionOptionEnum.section:
+        empty_sections.append(macro)
+
+    lines = []
+    lines.append('/* Automatically generated by %s:write_config_keys() */'
+                 % (__file__,))
+    lines.append('')
+
+    for kind in ('file', 'section', 'option'):
+      macros = groupby[getattr(self.FileSectionOptionEnum, kind)]
+      lines.append('static const char *svn__valid_config_%ss[] = {' % (kind,))
+      for macro in macros:
+        lines.append('  %s,' % (macro,))
+      # Remove ',' for c89 compatibility
+      lines[-1] = lines[-1][0:-1]
+      lines.append('};')
+      lines.append('')
+
+    lines.append('static const char *svn__empty_config_sections[] = {');
+    for section in empty_sections:
+      lines.append('  %s,' % (section,))
+    # Remove ',' for c89 compatibility
+    lines[-1] = lines[-1][0:-1]
+    lines.append('};')
+    lines.append('')
+
+    self.write_file_if_changed('subversion/libsvn_subr/config_keys.inc',
+                               '\n'.join(lines))
+
 class DependencyGraph:
   """Record dependencies between build items.
 
@@ -1212,6 +1300,9 @@ class IncludeDependencyInfo:
       if os.sep.join(['libsvn_subr', 'error.c']) in fname \
            and 'errorcode.inc' == include_param:
         continue # generated by GeneratorBase.write_errno_table
+      if os.sep.join(['libsvn_subr', 'cmdline.c']) in fname \
+           and 'config_keys.inc' == include_param:
+        continue # generated by GeneratorBase.write_config_keys
       elif direct_possibility_fname in domain_fnames:
         self._upd_dep_hash(hdrs, direct_possibility_fname, type_code)
       elif (len(domain_fnames) == 1

Modified: subversion/branches/1.10-cache-improvements/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/build/generator/gen_win_dependencies.py?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/1.10-cache-improvements/build/generator/gen_win_dependencies.py Wed May 13 04:51:26 2015
@@ -296,7 +296,7 @@ class GenDependenciesBase(gen_base.Gener
 
     # Required dependencies
     self._find_apr()
-    self._find_apr_util_and_expat()
+    self._find_apr_util_etc()
     self._find_zlib()
     self._find_sqlite(show_warnings)
 
@@ -424,7 +424,7 @@ class GenDependenciesBase(gen_base.Gener
                                               defines=defines,
                                               extra_bin=extra_bin)
 
-  def _find_apr_util_and_expat(self):
+  def _find_apr_util_etc(self):
     "Find the APR-util library and version"
 
     minimal_aprutil_version = (1, 3, 0)
@@ -526,6 +526,13 @@ class GenDependenciesBase(gen_base.Gener
                                                    defines=defines,
                                                    extra_bin=extra_bin)
 
+    # Perhaps apr-util can also provide memcached support
+    if version >= (1, 3, 0) :
+      self._libraries['apr_memcache'] = SVNCommonLibrary(
+                                          'apr_memcache', inc_path, lib_dir,
+                                          None, aprutil_version,
+                                          defines=['SVN_HAVE_MEMCACHE'])
+
     # And now find expat
     # If we have apr-util as a source location, it is in a subdir.
     # If we have an install package it is in the lib subdir

Modified: subversion/branches/1.10-cache-improvements/build/generator/templates/build-outputs.mk.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/build/generator/templates/build-outputs.mk.ezt?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/build/generator/templates/build-outputs.mk.ezt (original)
+++ subversion/branches/1.10-cache-improvements/build/generator/templates/build-outputs.mk.ezt Wed May 13 04:51:26 2015
@@ -46,6 +46,7 @@ MANPAGES =[for manpages] [manpages][end]
 CLEAN_FILES =[for cfiles] [cfiles][end]
 EXTRACLEAN_FILES =[for sql] [sql.header][end] \
   $(abs_builddir)/subversion/libsvn_subr/errorcode.inc \
+  $(abs_builddir)/subversion/libsvn_subr/config_keys.inc \
   $(abs_srcdir)/compile_commands.json
 
 SWIG_INCLUDES = -I$(abs_builddir)/subversion \

Modified: subversion/branches/1.10-cache-improvements/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/build/generator/templates/vcnet_vcxproj.ezt?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/build/generator/templates/vcnet_vcxproj.ezt (original)
+++ subversion/branches/1.10-cache-improvements/build/generator/templates/vcnet_vcxproj.ezt Wed May 13 04:51:26 2015
@@ -62,7 +62,7 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
       <DisableSpecificWarnings>4100;4127;4206;4512;4701;4706;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <TreatSpecificWarningsAsErrors>4002;4003;4013;4020;4022;4024;4028;4029;4030;4031;4033;4047;4089;4113;4115;4204;4715;%(TreatSpecificWarningsAsErrors)</TreatSpecificWarningsAsErrors>
+      <TreatSpecificWarningsAsErrors>4002;4003;4013;4020;4022;4024;4028;4029;4030;4031;4033;4047;4089;4113;4115;4133;4204;4715;%(TreatSpecificWarningsAsErrors)</TreatSpecificWarningsAsErrors>
 [if-any configs.forced_include_files]      <ForcedIncludeFiles>[for configs.forced_include_files][configs.forced_include_files];[end]%(ForcedIncludeFiles)</ForcedIncludeFiles>
 [end]    </ClCompile>
 [is config_type "Application"]    <Link>

Modified: subversion/branches/1.10-cache-improvements/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/build/run_tests.py?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/build/run_tests.py (original)
+++ subversion/branches/1.10-cache-improvements/build/run_tests.py Wed May 13 04:51:26 2015
@@ -386,6 +386,8 @@ class TestHarness:
                '--srcdir=' + os.path.join(self.srcdir, progdir)]
     if self.config_file is not None:
       cmdline.append('--config-file=' + self.config_file)
+    elif self.memcached_server is not None:
+      cmdline.append('--memcached-server=' + self.memcached_server)
 
     if self.base_url is not None:
       subdir = 'subversion/tests/cmdline/svn-test-work'

Modified: subversion/branches/1.10-cache-improvements/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/configure.ac?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/configure.ac (original)
+++ subversion/branches/1.10-cache-improvements/configure.ac Wed May 13 04:51:26 2015
@@ -1283,7 +1283,7 @@ fi
 AC_PATH_PROGS(PYTHON, "$PYTHON", none)
 
 # The minimum version for the JVM runtime for our Java bytecode.
-JAVA_OLDEST_WORKING_VER='1.5'
+JAVA_OLDEST_WORKING_VER='1.6'
 # SVN_CHECK_JDK sets $JAVA_CLASSPATH
 SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
 
@@ -1354,6 +1354,19 @@ AS_HELP_STRING([--enable-runtime-module-
       fi
       AC_DEFINE(SVN_USE_DSO, 1,
                 [Defined if svn should try to load DSOs])
+
+      dnl Mac OS X uses libname.MAJOR.SOVERSION.dylib
+      dnl Most other unixes use libname.MAJOR.so.SOVERSION
+      case "$host" in
+        *-*-darwin*)
+          AC_DEFINE(SVN_DSO_SUFFIX_FMT, ["%d.%d.dylib"],
+                    [Shared library file name suffix format])
+          ;;
+        *)
+          AC_DEFINE(SVN_DSO_SUFFIX_FMT, ["%d.so.%d"],
+                    [Shared library file name suffix format])
+          ;;
+      esac
     fi
 ])
 

Modified: subversion/branches/1.10-cache-improvements/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/gen-make.py?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/gen-make.py (original)
+++ subversion/branches/1.10-cache-improvements/gen-make.py Wed May 13 04:51:26 2015
@@ -67,6 +67,7 @@ def main(fname, gentype, verfname=None,
   generator.write()
   generator.write_sqlite_headers()
   generator.write_errno_table()
+  generator.write_config_keys()
 
   if ('--debug', '') in other_options:
     for dep_type, target_dict in generator.graph.deps.items():

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/README
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/README?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/README (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/README Wed May 13 04:51:26 2015
@@ -5,7 +5,7 @@ JavaHL provides a (mostly native, using
 a high level Java API for Subversion, which was originally targeted for
 implementors of GUI clients and IDE plug-ins for Subversion.  JavaHL
 currently provides a minimal-but-complete set of APIs which expose the
-core Subversion C API to Java.  It requires a JRE 1.5+ (runtime).
+core Subversion C API to Java.  It requires a JRE 1.6+ (runtime).
 
 It is currently quite mature, and can be considered for production use.
 
@@ -13,8 +13,9 @@ It is currently quite mature, and can be
 Build system
 ------------
 
-JavaHL should compile and run under Linux, Win32, and Mac OS X with a
-JDK 1.5+.
+JavaHL should compile and run under Linux, Win32, and Mac OS X with
+JDK 1.6+ and a C++ compiler with a complete implementation of
+C++98 (for example, GCC 3.2 and older cannot compile JavaHL 1.9+).
 
 Its build will produce both a native library (libsvnjavahl-1.so on Unix
 or libsvnjavahl-1.dll on Win32) and a platform independent archive of
@@ -22,26 +23,29 @@ Java bytecode (svn-javahl.jar).
 
 To build JavaHL on non-Win32 platforms, just add "--enable-javahl" to
 the configure script's parameters.  "--with-jdk" can be provided to
-specify the path to a jdk.  "--with-maintainer-mode" will compile Java
-bytecode with debugging information.  Jikes will be the preferred
-compiler if it is auto-detected.  If not auto-detected, you can force
-its use via the "--with-jikes=path" flag to configure.
+specify the path to a jdk.  "--enable-maintainer-mode" will compile
+Java bytecode with debugging information.
 
 The following make targets are provided:
 
-javahl                build javahl
-install-javahl        install javahl
-check-javahl          run javahl tests
+javahl                build JavaHL
+install-javahl        install JavaHL
+check-javahl          run JavaHL tests
+check-all-javahl      run all JavaHL tests, including tests for
+                      deprecated backward-compatibility APIs.
 
 (In order to run check-javahl, you must have specified a path to a JUnit
-jar file with --with-junit when running configure; JUnit version 3.8.1
+jar file with --with-junit when running configure; JUnit version 4.11
 has been tested.  JUnit can be downloaded from http://junit.org/ .)
 
 
 MacOS X:
 
-After building libsvnjavahl.dynlib, you must rename it to
-libsvnjavahl.jnilib.  Additionally, it should probably be installed in
+After building libsvnjavahl.dylib, you must rename it to
+libsvnjavahl.jnilib. Make install-javahl creates a symbolic
+link with the appropriate name.
+
+Additionally, it should probably be installed in
 /Library/Java/Extensions instead of wherever the build system chose to
 install it; patches to our build system to do this automatically are
 welcome.
@@ -60,6 +64,7 @@ Success stories
 ---------------
 
 Subclipse, Eclipse IDE plug-in <http://subclipse.tigris.org/>
+SmartSVN, cross-platform Subversion client (http://www.smartsvn.com/)
 
 
 Why not 100% pure Java?
@@ -86,6 +91,8 @@ as to its compatibility with the officia
 TODO
 ----
 
+o Transition all of the implementation to the new-style jniwrapper.
 o Expose more of Subversion's core libraries through JNI.
 o More JUnit test cases.
+o Refactor the JUnit tests to use the improved features of JUnit 4.
 o Improve JavaDoc and coding style.

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/CreateJ.cpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/CreateJ.cpp Wed May 13 04:51:26 2015
@@ -1158,17 +1158,18 @@ void fill_property_map(jobject map,
         if (JNIUtil::isJavaExceptionThrown())
           return;
 
-        jbyteArray jpropVal = (!val ? NULL
-                               : JNIUtil::makeJByteArray(val));
+        jbyteArray jpropVal = (val ? JNIUtil::makeJByteArray(val) : NULL);
         if (JNIUtil::isJavaExceptionThrown())
           return;
 
-        m_env->CallObjectMethod(m_map, m_put_mid, jpropName, jpropVal);
+        jobject ret = m_env->CallObjectMethod(m_map, m_put_mid,
+                                              jpropName, jpropVal);
         if (JNIUtil::isJavaExceptionThrown())
           return;
 
-        m_env->DeleteLocalRef(jpropName);
+        m_env->DeleteLocalRef(ret);
         m_env->DeleteLocalRef(jpropVal);
+        m_env->DeleteLocalRef(jpropName);
       }
 
     JNIEnv*& m_env;
@@ -1214,6 +1215,7 @@ void fill_property_map(jobject map,
             POP_AND_RETURN_NOTHING();
         }
     }
+  POP_AND_RETURN_NOTHING();
 }
 
 jobject property_map(apr_hash_t *prop_hash, apr_array_header_t* prop_diffs,

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.cpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.cpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.cpp Wed May 13 04:51:26 2015
@@ -151,29 +151,32 @@ EditorProxy::cb_add_directory(void *bato
                               apr_pool_t *scratch_pool)
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_add_directory('%s')\n", relpath);
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "addDirectory",
-                            "(Ljava/lang/String;"
-                            "Ljava/lang/Iterable;"
-                            "Ljava/util/Map;J)V"));
-
-  jstring jrelpath = JNIUtil::makeJString(relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jchildren = (!children ? NULL : CreateJ::StringSet(children));
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jrelpath, jchildren, jprops,
-                                        jlong(replaces_rev)),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "addDirectory",
+                                "(Ljava/lang/String;"
+                                "Ljava/lang/Iterable;"
+                                "Ljava/util/Map;J)V"));
+
+      jstring jrelpath = JNIUtil::makeJString(relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jchildren = (!children ? NULL : CreateJ::StringSet(children));
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jrelpath, jchildren, jprops,
+                         jlong(replaces_rev));
+    });
   return SVN_NO_ERROR;
 }
 
@@ -187,36 +190,37 @@ EditorProxy::cb_add_file(void *baton,
                          apr_pool_t *scratch_pool)
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_add_file('%s')\n", relpath);
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "addFile",
-                            "(Ljava/lang/String;"
-                            "L"JAVA_PACKAGE"/types/Checksum;"
-                            "Ljava/io/InputStream;"
-                            "Ljava/util/Map;J)V"));
-
-  jstring jrelpath = JNIUtil::makeJString(relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jchecksum = CreateJ::Checksum(checksum);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jcontents = NULL;
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  if (contents != NULL)
-    SVN_JAVAHL_CATCH(Java::Env(), SVN_ERR_RA_SVN_EDIT_ABORTED,
-                     jcontents = wrap_input_stream(contents));
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jrelpath, jchecksum, jcontents,
-                                        jprops, jlong(replaces_rev)),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "addFile",
+                                "(Ljava/lang/String;"
+                                "L"JAVA_PACKAGE"/types/Checksum;"
+                                "Ljava/io/InputStream;"
+                                "Ljava/util/Map;J)V"));
+
+      jstring jrelpath = JNIUtil::makeJString(relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jchecksum = CreateJ::Checksum(checksum);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      jobject jcontents = NULL;
+      if (contents != NULL)
+        jcontents = wrap_input_stream(contents);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jrelpath, jchecksum, jcontents,
+                         jprops, jlong(replaces_rev));
+    });
   return SVN_NO_ERROR;
 }
 
@@ -229,29 +233,32 @@ EditorProxy::cb_add_symlink(void *baton,
                             apr_pool_t *scratch_pool)
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_add_symlink('%s')\n", relpath);
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "addSymlink",
-                            "(Ljava/lang/String;"
-                            "Ljava/lang/String;"
-                            "Ljava/util/Map;J)V"));
-
-  jstring jrelpath = JNIUtil::makeJString(relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jstring jtarget = JNIUtil::makeJString(target);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jrelpath, jtarget, jprops,
-                                        jlong(replaces_rev)),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "addSymlink",
+                                "(Ljava/lang/String;"
+                                "Ljava/lang/String;"
+                                "Ljava/util/Map;J)V"));
+
+      jstring jrelpath = JNIUtil::makeJString(relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jstring jtarget = JNIUtil::makeJString(target);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jrelpath, jtarget, jprops,
+                         jlong(replaces_rev));
+    });
   return SVN_NO_ERROR;
 }
 
@@ -263,27 +270,30 @@ EditorProxy::cb_add_absent(void *baton,
                            apr_pool_t *scratch_pool)
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_add_absent('%s')\n", relpath);
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "addAbsent",
-                            "(Ljava/lang/String;"
-                            "L"JAVA_PACKAGE"/types/NodeKind;"
-                            "J)V"));
-
-  jstring jrelpath = JNIUtil::makeJString(relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jkind = EnumMapper::mapNodeKind(kind);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jrelpath, jkind,
-                                        jlong(replaces_rev)),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "addAbsent",
+                                "(Ljava/lang/String;"
+                                "L"JAVA_PACKAGE"/types/NodeKind;"
+                                "J)V"));
+
+      jstring jrelpath = JNIUtil::makeJString(relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jkind = EnumMapper::mapNodeKind(kind);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jrelpath, jkind,
+                         jlong(replaces_rev));
+    });
   return SVN_NO_ERROR;
 }
 
@@ -297,29 +307,32 @@ EditorProxy::cb_alter_directory(void *ba
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_alter_directory('%s', r%lld)\n",
   //DEBUG:        relpath, static_cast<long long>(revision));
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "alterDirectory",
-                            "(Ljava/lang/String;J"
-                            "Ljava/lang/Iterable;"
-                            "Ljava/util/Map;)V"));
-
-  jstring jrelpath = JNIUtil::makeJString(relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jchildren = (!children ? NULL : CreateJ::StringSet(children));
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jrelpath, jlong(revision),
-                                        jchildren, jprops),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "alterDirectory",
+                                "(Ljava/lang/String;J"
+                                "Ljava/lang/Iterable;"
+                                "Ljava/util/Map;)V"));
+
+      jstring jrelpath = JNIUtil::makeJString(relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jchildren = (!children ? NULL : CreateJ::StringSet(children));
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jrelpath, jlong(revision),
+                         jchildren, jprops);
+    });
   return SVN_NO_ERROR;
 }
 
@@ -334,36 +347,37 @@ EditorProxy::cb_alter_file(void *baton,
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_alter_file('%s', r%lld)\n",
   //DEBUG:        relpath, static_cast<long long>(revision));
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "alterFile",
-                            "(Ljava/lang/String;J"
-                            "L"JAVA_PACKAGE"/types/Checksum;"
-                            "Ljava/io/InputStream;"
-                            "Ljava/util/Map;)V"));
-
-  jstring jrelpath = JNIUtil::makeJString(relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jchecksum = CreateJ::Checksum(checksum);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jcontents = NULL;
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  if (contents != NULL)
-    SVN_JAVAHL_CATCH(Java::Env(), SVN_ERR_RA_SVN_EDIT_ABORTED,
-                     jcontents = wrap_input_stream(contents));
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jrelpath, jlong(revision),
-                                        jchecksum, jcontents, jprops),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "alterFile",
+                                "(Ljava/lang/String;J"
+                                "L"JAVA_PACKAGE"/types/Checksum;"
+                                "Ljava/io/InputStream;"
+                                "Ljava/util/Map;)V"));
+
+      jstring jrelpath = JNIUtil::makeJString(relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jchecksum = CreateJ::Checksum(checksum);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      jobject jcontents = NULL;
+      if (contents != NULL)
+        jcontents = wrap_input_stream(contents);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jrelpath, jlong(revision),
+                         jchecksum, jcontents, jprops);
+    });
   return SVN_NO_ERROR;
 }
 
@@ -377,29 +391,32 @@ EditorProxy::cb_alter_symlink(void *bato
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_alter_symlink('%s', r%lld)\n",
   //DEBUG:        relpath, static_cast<long long>(revision));
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "alterSymlink",
-                            "(Ljava/lang/String;J"
-                            "Ljava/lang/String;"
-                            "Ljava/util/Map;)V"));
-
-  jstring jrelpath = JNIUtil::makeJString(relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jstring jtarget = JNIUtil::makeJString(target);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jrelpath, jlong(revision),
-                                        jtarget, jprops),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "alterSymlink",
+                                "(Ljava/lang/String;J"
+                                "Ljava/lang/String;"
+                                "Ljava/util/Map;)V"));
+
+      jstring jrelpath = JNIUtil::makeJString(relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jstring jtarget = JNIUtil::makeJString(target);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jrelpath, jlong(revision),
+                         jtarget, jprops);
+    });
   return SVN_NO_ERROR;
 }
 
@@ -411,21 +428,24 @@ EditorProxy::cb_delete(void *baton,
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_delete('%s', r%lld)\n",
   //DEBUG:        relpath, static_cast<long long>(revision));
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "delete",
+                                "(Ljava/lang/String;J)V"));
+
+      jstring jrelpath = JNIUtil::makeJString(relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
 
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "delete",
-                            "(Ljava/lang/String;J)V"));
-
-  jstring jrelpath = JNIUtil::makeJString(relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid, jrelpath),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+      env.CallVoidMethod(ep->m_jeditor, mid, jrelpath);
+    });
   return SVN_NO_ERROR;
 }
 
@@ -439,26 +459,29 @@ EditorProxy::cb_copy(void *baton,
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_copy('%s', r%lld, '%s')\n",
   //DEBUG:        src_relpath, static_cast<long long>(src_revision), dst_relpath);
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "copy",
-                            "(Ljava/lang/String;J"
-                            "Ljava/lang/String;J)V"));
-
-  jstring jsrc_relpath = JNIUtil::makeJString(src_relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jstring jdst_relpath = JNIUtil::makeJString(dst_relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jsrc_relpath, jlong(src_revision),
-                                        jdst_relpath, jlong(replaces_rev)),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "copy",
+                                "(Ljava/lang/String;J"
+                                "Ljava/lang/String;J)V"));
+
+      jstring jsrc_relpath = JNIUtil::makeJString(src_relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jstring jdst_relpath = JNIUtil::makeJString(dst_relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jsrc_relpath, jlong(src_revision),
+                         jdst_relpath, jlong(replaces_rev));
+    });
   return SVN_NO_ERROR;
 }
 
@@ -472,26 +495,29 @@ EditorProxy::cb_move(void *baton,
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_move('%s', r%lld, '%s')\n",
   //DEBUG:        src_relpath, static_cast<long long>(src_revision), dst_relpath);
-
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "move",
-                            "(Ljava/lang/String;J"
-                            "Ljava/lang/String;J)V"));
-
-  jstring jsrc_relpath = JNIUtil::makeJString(src_relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-  jstring jdst_relpath = JNIUtil::makeJString(dst_relpath);
-  SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
-                                        jsrc_relpath, jlong(src_revision),
-                                        jdst_relpath, jlong(replaces_rev)),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "move",
+                                "(Ljava/lang/String;J"
+                                "Ljava/lang/String;J)V"));
+
+      jstring jsrc_relpath = JNIUtil::makeJString(src_relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+      jstring jdst_relpath = JNIUtil::makeJString(dst_relpath);
+      SVN_JAVAHL_OLDSTYLE_EXCEPTION_CHECK(env);
+
+      env.CallVoidMethod(ep->m_jeditor, mid,
+                         jsrc_relpath, jlong(src_revision),
+                         jdst_relpath, jlong(replaces_rev));
+    });
   return SVN_NO_ERROR;
 }
 
@@ -499,18 +525,21 @@ svn_error_t*
 EditorProxy::cb_complete(void *baton, apr_pool_t *scratch_pool)
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_complete()\n");
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+      ep->m_valid = false;
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "complete", "()V"));
 
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-  ep->m_valid = false;
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "complete", "()V"));
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+      env.CallVoidMethod(ep->m_jeditor, mid);
+    });
   return SVN_NO_ERROR;
 }
 
@@ -518,17 +547,20 @@ svn_error_t*
 EditorProxy::cb_abort(void *baton, apr_pool_t *scratch_pool)
 {
   //DEBUG:fprintf(stderr, "  (n) EditorProxy::cb_abort()\n");
+  const ::Java::Env env;
+  SVN_JAVAHL_CATCH(env, SVN_ERR_RA_SVN_EDIT_ABORTED,
+    {
+      ::Java::LocalFrame frame(env);
+
+      EditorProxy* const ep = static_cast<EditorProxy*>(baton);
+      if (!ep || !ep->m_valid)
+        return invalid_editor();
+      ep->m_valid = false;
+
+      static jmethodID mid = 0;
+      SVN_ERR(get_editor_method(mid, "abort", "()V"));
 
-  EditorProxy* const ep = static_cast<EditorProxy*>(baton);
-  if (!ep || !ep->m_valid)
-    return invalid_editor();
-  ep->m_valid = false;
-
-  static jmethodID mid = 0;
-  SVN_ERR(get_editor_method(mid, "abort", "()V"));
-
-  SVN_JNI_CATCH(
-      JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid),
-      SVN_ERR_RA_SVN_EDIT_ABORTED);
+      env.CallVoidMethod(ep->m_jeditor, mid);
+    });
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.h?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.h (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/EditorProxy.h Wed May 13 04:51:26 2015
@@ -27,6 +27,8 @@
 #ifndef JAVAHL_EDITOR_PROXY_H
 #define JAVAHL_EDITOR_PROXY_H
 
+#include <memory>
+
 #include "svn_delta.h"
 #include "private/svn_editor.h"
 #include "private/svn_delta_private.h"
@@ -51,6 +53,8 @@ struct EditorProxyCallbacks
 class EditorProxy
 {
 public:
+  typedef std::auto_ptr<EditorProxy> UniquePtr;
+
   EditorProxy(jobject jeditor, apr_pool_t* edit_pool,
               const char* repos_root_url, const char* base_relpath,
               svn_cancel_func_t cancel_func, void* cancel_baton,

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.cpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.cpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.cpp Wed May 13 04:51:26 2015
@@ -45,16 +45,23 @@ void NativeInputStream::set_stream(svn_s
 }
 
 NativeInputStream*
-NativeInputStream::get_self(::Java::Env env, jobject jthis)
+NativeInputStream::get_self_unsafe(::Java::Env env, jobject jthis)
 {
   jfieldID fid_cppaddr = NULL;
   const jlong cppaddr =
     findCppAddrForJObject(jthis, &fid_cppaddr, m_class_name);
-  if (!cppaddr)
-    ::Java::NullPointerException(env).raise(_("this [C++]"));
   return reinterpret_cast<NativeInputStream*>(cppaddr);
 }
 
+NativeInputStream*
+NativeInputStream::get_self(::Java::Env env, jobject jthis)
+{
+  NativeInputStream* self = get_self_unsafe(env, jthis);
+  if (!self)
+    ::Java::NullPointerException(env).raise(_("this [C++]"));
+  return self;
+}
+
 void NativeInputStream::close(::Java::Env env, jobject jthis)
 {
   SVN_JAVAHL_CHECK(env, svn_stream_close(m_stream));
@@ -149,16 +156,23 @@ void NativeOutputStream::set_stream(svn_
 }
 
 NativeOutputStream*
-NativeOutputStream::get_self(::Java::Env env, jobject jthis)
+NativeOutputStream::get_self_unsafe(::Java::Env env, jobject jthis)
 {
   jfieldID fid_cppaddr = NULL;
   const jlong cppaddr =
     findCppAddrForJObject(jthis, &fid_cppaddr, m_class_name);
-  if (!cppaddr)
-    ::Java::NullPointerException(env).raise(_("this [C++]"));
   return reinterpret_cast<NativeOutputStream*>(cppaddr);
 }
 
+NativeOutputStream*
+NativeOutputStream::get_self(::Java::Env env, jobject jthis)
+{
+  NativeOutputStream* self = get_self_unsafe(env, jthis);
+  if (!self)
+    ::Java::NullPointerException(env).raise(_("this [C++]"));
+  return self;
+}
+
 void NativeOutputStream::close(::Java::Env env, jobject jthis)
 {
   SVN_JAVAHL_CHECK(env, svn_stream_close(m_stream));
@@ -294,6 +308,20 @@ Java_org_apache_subversion_javahl_types_
   return 0;
 }
 
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_types_NativeInputStream_finalize(
+    JNIEnv* jenv, jobject jthis)
+{
+  SVN_JAVAHL_JNI_TRY(NativeInputStream, finalize)
+    {
+      JavaHL::NativeInputStream* native =
+        JavaHL::NativeInputStream::get_self_unsafe(Java::Env(jenv), jthis);
+      if (native != NULL)
+          native->finalize();
+    }
+  SVN_JAVAHL_JNI_CATCH;
+}
+
 
 // Class JavaHL::NativeOutputStream native method implementation
 #include "../include/org_apache_subversion_javahl_types_NativeOutputStream.h"
@@ -337,3 +365,17 @@ Java_org_apache_subversion_javahl_types_
     }
   SVN_JAVAHL_JNI_CATCH_TO_EXCEPTION(Java::IOException);
 }
+
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_types_NativeOutputStream_finalize(
+    JNIEnv* jenv, jobject jthis)
+{
+  SVN_JAVAHL_JNI_TRY(NativeOutputStream, finalize)
+    {
+      JavaHL::NativeOutputStream* native =
+        JavaHL::NativeOutputStream::get_self_unsafe(Java::Env(jenv), jthis);
+      if (native != NULL)
+          native->finalize();
+    }
+  SVN_JAVAHL_JNI_CATCH;
+}

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.hpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.hpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/NativeStream.hpp Wed May 13 04:51:26 2015
@@ -81,6 +81,8 @@ public:
    */
   static NativeInputStream* get_self(::Java::Env env, jobject jthis);
 
+  static NativeInputStream* get_self_unsafe(::Java::Env env, jobject jthis);
+
 public:
   /**
    * Implements @c InputStream.close().
@@ -176,6 +178,8 @@ public:
    */
   static NativeOutputStream* get_self(::Java::Env env, jobject jthis);
 
+  static NativeOutputStream* get_self_unsafe(::Java::Env env, jobject jthis);
+
 public:
   /**
    * Implements @c OutputStream.close().

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/RemoteSession.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/RemoteSession.cpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/RemoteSession.cpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/RemoteSession.cpp Wed May 13 04:51:26 2015
@@ -835,7 +835,7 @@ RemoteSession::status(jobject jthis, jst
   proxy_callbacks.m_extra_baton.baton = &rp->m_target_revision;
 
   apr_pool_t* report_pool = rp->get_report_pool();
-  std::auto_ptr<EditorProxy> editor(
+  EditorProxy::UniquePtr editor(
       new EditorProxy(jstatus_editor, report_pool,
                       repos_root_url, base_relpath,
                       m_context->checkCancel, m_context,
@@ -853,7 +853,7 @@ RemoteSession::status(jobject jthis, jst
                                 editor->delta_editor(),
                                 editor->delta_baton(),
                                 report_pool),);
-  rp->set_reporter_data(raw_reporter, report_baton, editor.release());
+  rp->set_reporter_data(raw_reporter, report_baton, editor);
 }
 
 // TODO: diff

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.cpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.cpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.cpp Wed May 13 04:51:26 2015
@@ -43,9 +43,7 @@ StateReporter::StateReporter()
 {}
 
 StateReporter::~StateReporter()
-{
-  delete m_editor;
-}
+{}
 
 StateReporter*
 StateReporter::getCppObject(jobject jthis)
@@ -179,8 +177,8 @@ StateReporter::abortReport()
 
 void
 StateReporter::set_reporter_data(const svn_ra_reporter3_t* raw_reporter,
-                                   void* report_baton,
-                                   EditorProxy* editor)
+                                 void* report_baton,
+                                 EditorProxy::UniquePtr editor)
 {
   //DEBUG:fprintf(stderr, "  (n) StateReporter::set_reporter_data()\n");
 

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.h?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.h (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/StateReporter.h Wed May 13 04:51:26 2015
@@ -61,13 +61,13 @@ private:
   bool m_valid;
   const svn_ra_reporter3_t* m_raw_reporter;
   void* m_report_baton;
-  EditorProxy* m_editor;
+  EditorProxy::UniquePtr m_editor;
 
   friend class RemoteSession;
   apr_pool_t* get_report_pool() const { return pool.getPool(); }
   void set_reporter_data(const svn_ra_reporter3_t* raw_reporter,
                          void* report_baton,
-                         EditorProxy* editor);
+                         EditorProxy::UniquePtr editor);
   svn_revnum_t m_target_revision;
 };
 

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp Wed May 13 04:51:26 2015
@@ -179,30 +179,6 @@ void Env::throw_java_out_of_memory(const
 const jint LocalFrame::DEFAULT_CAPACITY = 16;
 
 
-// class Java::GlobalObject
-
-GlobalObject& GlobalObject::operator=(jobject that)
-{
-  this->~GlobalObject();
-  return *new(this) GlobalObject(Env(), that);
-}
-
-GlobalObject::~GlobalObject()
-{
-  if (m_obj)
-    Env().DeleteGlobalRef(m_obj);
-}
-
-
-// class Java::GlobalClass
-
-GlobalClass& GlobalClass::operator=(jclass that)
-{
-  this->~GlobalClass();
-  return *new(this) GlobalClass(Env(), that);
-}
-
-
 // Class Java::Object
 
 const char* const Object::m_class_name = "java/lang/Object";

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp Wed May 13 04:51:26 2015
@@ -24,6 +24,8 @@
 #ifndef SVN_JAVAHL_JNIWRAPPER_GLOBALREF_HPP
 #define SVN_JAVAHL_JNIWRAPPER_GLOBALREF_HPP
 
+#include <memory>
+
 #include <jni.h>
 
 #include "jni_env.hpp"
@@ -43,11 +45,19 @@ public:
     : m_obj(obj ? env.NewGlobalRef(obj) : NULL)
     {}
 
-  ~GlobalObject();
+  ~GlobalObject() throw()
+    {
+      if (m_obj)
+        Env().DeleteGlobalRef(m_obj);
+    }
 
-  GlobalObject& operator=(jobject that);
+  GlobalObject& operator=(jobject that)
+    {
+      this->~GlobalObject();
+      return *new(this) GlobalObject(Env(), that);
+    }
 
-  jobject get() const
+  jobject get() const throw()
     {
       return m_obj;
     }
@@ -73,9 +83,13 @@ public:
     : GlobalObject(env, cls)
     {}
 
-  GlobalClass& operator=(jclass that);
+  GlobalClass& operator=(jclass that)
+    {
+      GlobalObject::operator=(that);
+      return *this;
+    }
 
-  jclass get() const
+  jclass get() const throw()
     {
       return jclass(GlobalObject::get());
     }

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp Wed May 13 04:51:26 2015
@@ -270,7 +270,7 @@ Java_org_apache_subversion_javahl_util_C
       {
         enumerator_t* enmr = static_cast<enumerator_t*>(baton);
         JNIEnv* const e = enmr->m_env;
-        const jobject jh = enmr->m_jhandler;;
+        const jobject jh = enmr->m_jhandler;
 
         static jmethodID mid = 0;
         if (0 == mid)

Modified: subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1679139&r1=1679138&r2=1679139&view=diff
==============================================================================
--- subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/1.10-cache-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Wed May 13 04:51:26 2015
@@ -502,9 +502,9 @@ public interface ISVNClient
      * Recursively cleans up a local directory, finishing any
      * incomplete operations, removing lockfiles, etc.
      * <p>
-     * Behaves like the 1.9 version with <code>breakLocks</code> and
-     * <code>includeExternals</code> set to <code>false<code>, and the
-     * other flags to <code>true</code>.
+     * Behaves like the 1.9 version with <code>includeExternals</code>
+     * set to <code>false<code>, and the other flags to
+     * <code>true</code>.
      * @param path a local directory.
      * @throws ClientException
      */