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
*/