You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2010/09/09 22:26:52 UTC

svn commit: r995566 [1/16] - in /subversion/branches/atomic-revprop: ./ build/ac-macros/ build/generator/ contrib/server-side/ notes/ notes/wc-ng/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversio...

Author: danielsh
Date: Thu Sep  9 20:26:46 2010
New Revision: 995566

URL: http://svn.apache.org/viewvc?rev=995566&view=rev
Log:
On the atomic-revprop branch:

Merge r983926 through r995395.

* FAILING-TESTS, BRANCH-README:
    Note some ra_serf tests, which fail both before and after this commit.

Added:
    subversion/branches/atomic-revprop/FAILING-TESTS
    subversion/branches/atomic-revprop/notes/external-vs-switched
      - copied unchanged from r995395, subversion/trunk/notes/external-vs-switched
    subversion/branches/atomic-revprop/notes/wc-ng/node-data
      - copied unchanged from r995395, subversion/trunk/notes/wc-ng/node-data
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ClientContext.cpp
      - copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/native/ClientContext.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ClientContext.h
      - copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/native/ClientContext.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitCallback.cpp
      - copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/native/CommitCallback.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitCallback.h
      - copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/native/CommitCallback.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java
      - copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitCallback.java
      - copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitCallback.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitMessageCallback.java
      - copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitMessageCallback.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
      - copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
    subversion/branches/atomic-revprop/subversion/mod_dav_svn/posts/   (props changed)
      - copied from r995395, subversion/trunk/subversion/mod_dav_svn/posts/
    subversion/branches/atomic-revprop/subversion/tests/cmdline/redirect_tests.py
      - copied unchanged from r995395, subversion/trunk/subversion/tests/cmdline/redirect_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/upgrade_tests_data/missing-dirs.tar.bz2
      - copied unchanged from r995395, subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/missing-dirs.tar.bz2
    subversion/branches/atomic-revprop/subversion/tests/cmdline/upgrade_tests_data/wc-delete.tar.bz2
      - copied unchanged from r995395, subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-delete.tar.bz2
    subversion/branches/atomic-revprop/tools/dev/wc-format.py
      - copied unchanged from r995395, subversion/trunk/tools/dev/wc-format.py
    subversion/branches/atomic-revprop/tools/dev/wc-ng/bump-to-19.py
      - copied unchanged from r995395, subversion/trunk/tools/dev/wc-ng/bump-to-19.py
Removed:
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ClientNotifyCallback.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ClientNotifyCallback.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ConflictResolverCallback.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ConflictResolverCallback.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ProgressListener.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ProgressListener.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitMessage.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java
Modified:
    subversion/branches/atomic-revprop/   (props changed)
    subversion/branches/atomic-revprop/BRANCH-README
    subversion/branches/atomic-revprop/Makefile.in
    subversion/branches/atomic-revprop/build.conf
    subversion/branches/atomic-revprop/build/ac-macros/serf.m4
    subversion/branches/atomic-revprop/build/generator/build_zlib.ezt
    subversion/branches/atomic-revprop/build/generator/extractor.py
    subversion/branches/atomic-revprop/configure.ac
    subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py
    subversion/branches/atomic-revprop/get-deps.sh
    subversion/branches/atomic-revprop/notes/   (props changed)
    subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNClient.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNRepos.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNRepos.h
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
    subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
    subversion/branches/atomic-revprop/subversion/bindings/swig/include/svn_containers.swg
    subversion/branches/atomic-revprop/subversion/bindings/swig/python/README
    subversion/branches/atomic-revprop/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
    subversion/branches/atomic-revprop/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
    subversion/branches/atomic-revprop/subversion/bindings/swig/svn_diff.i
    subversion/branches/atomic-revprop/subversion/bindings/swig/svn_fs.i
    subversion/branches/atomic-revprop/subversion/include/private/svn_dep_compat.h
    subversion/branches/atomic-revprop/subversion/include/private/svn_sqlite.h
    subversion/branches/atomic-revprop/subversion/include/private/svn_wc_private.h
    subversion/branches/atomic-revprop/subversion/include/svn_client.h
    subversion/branches/atomic-revprop/subversion/include/svn_dav.h
    subversion/branches/atomic-revprop/subversion/include/svn_diff.h
    subversion/branches/atomic-revprop/subversion/include/svn_error_codes.h
    subversion/branches/atomic-revprop/subversion/include/svn_fs.h
    subversion/branches/atomic-revprop/subversion/include/svn_props.h
    subversion/branches/atomic-revprop/subversion/include/svn_ra.h
    subversion/branches/atomic-revprop/subversion/include/svn_ra_svn.h
    subversion/branches/atomic-revprop/subversion/include/svn_sorts.h
    subversion/branches/atomic-revprop/subversion/include/svn_string.h
    subversion/branches/atomic-revprop/subversion/include/svn_types.h
    subversion/branches/atomic-revprop/subversion/include/svn_wc.h
    subversion/branches/atomic-revprop/subversion/libsvn_client/add.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/client.h
    subversion/branches/atomic-revprop/subversion/libsvn_client/cmdline.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/commit.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/commit_util.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/copy.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/delete.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/deprecated.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/diff.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/export.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/externals.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/info.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/list.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/locking_commands.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/merge.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/mergeinfo.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/patch.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/prop_commands.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/ra.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/relocate.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/repos_diff.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/repos_diff_summarize.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/status.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/update.c
    subversion/branches/atomic-revprop/subversion/libsvn_client/url.c
    subversion/branches/atomic-revprop/subversion/libsvn_delta/svndiff.c
    subversion/branches/atomic-revprop/subversion/libsvn_diff/parse-diff.c
    subversion/branches/atomic-revprop/subversion/libsvn_fs_base/notes/fs-history
    subversion/branches/atomic-revprop/subversion/libsvn_fs_base/notes/structure
    subversion/branches/atomic-revprop/subversion/libsvn_fs_base/util/fs_skels.c
    subversion/branches/atomic-revprop/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/atomic-revprop/subversion/libsvn_fs_fs/structure
    subversion/branches/atomic-revprop/subversion/libsvn_ra/deprecated.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra/ra_loader.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra/ra_loader.h
    subversion/branches/atomic-revprop/subversion/libsvn_ra/wrapper_template.h
    subversion/branches/atomic-revprop/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/fetch.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/options.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/ra_neon.h
    subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/session.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/util.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/commit.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/options.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/property.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/serf.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/util.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_svn/client.c
    subversion/branches/atomic-revprop/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/atomic-revprop/subversion/libsvn_repos/load.c
    subversion/branches/atomic-revprop/subversion/libsvn_repos/reporter.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/config_file.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/constructors.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/dirent_uri.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/hash.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/io.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/opt.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/path.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/sqlite.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/svn_string.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/utf.c
    subversion/branches/atomic-revprop/subversion/libsvn_subr/validate.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/adm_crawler.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/adm_files.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/adm_ops.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/ambient_depth_filter_editor.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/copy.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/crop.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/deprecated.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/diff.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/entries.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/entries.h
    subversion/branches/atomic-revprop/subversion/libsvn_wc/lock.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/lock.h
    subversion/branches/atomic-revprop/subversion/libsvn_wc/merge.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/node.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/props.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/props.h
    subversion/branches/atomic-revprop/subversion/libsvn_wc/questions.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/relocate.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/revision_status.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/status.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/translate.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/tree_conflicts.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/update_editor.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/upgrade.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/wc-metadata.sql
    subversion/branches/atomic-revprop/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/atomic-revprop/subversion/libsvn_wc/wc.h
    subversion/branches/atomic-revprop/subversion/libsvn_wc/wc_db.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/wc_db.h
    subversion/branches/atomic-revprop/subversion/libsvn_wc/workqueue.c
    subversion/branches/atomic-revprop/subversion/libsvn_wc/workqueue.h
    subversion/branches/atomic-revprop/subversion/mod_dav_svn/dav_svn.h
    subversion/branches/atomic-revprop/subversion/mod_dav_svn/deadprops.c
    subversion/branches/atomic-revprop/subversion/mod_dav_svn/reports/log.c
    subversion/branches/atomic-revprop/subversion/mod_dav_svn/reports/replay.c
    subversion/branches/atomic-revprop/subversion/mod_dav_svn/repos.c
    subversion/branches/atomic-revprop/subversion/mod_dav_svn/util.c
    subversion/branches/atomic-revprop/subversion/mod_dav_svn/version.c
    subversion/branches/atomic-revprop/subversion/po/fr.po
    subversion/branches/atomic-revprop/subversion/svn/commit-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/copy-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/delete-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/import-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/log-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/main.c
    subversion/branches/atomic-revprop/subversion/svn/merge-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/mkdir-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/move-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/notify.c
    subversion/branches/atomic-revprop/subversion/svn/propdel-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/propedit-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/propset-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/revert-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/status-cmd.c
    subversion/branches/atomic-revprop/subversion/svn/status.c
    subversion/branches/atomic-revprop/subversion/svn/util.c
    subversion/branches/atomic-revprop/subversion/svnrdump/dump_editor.c
    subversion/branches/atomic-revprop/subversion/svnrdump/load_editor.c
    subversion/branches/atomic-revprop/subversion/svnrdump/svnrdump.1
    subversion/branches/atomic-revprop/subversion/svnrdump/svnrdump.c
    subversion/branches/atomic-revprop/subversion/svnserve/log-escape.c
    subversion/branches/atomic-revprop/subversion/svnsync/main.c
    subversion/branches/atomic-revprop/subversion/tests/cmdline/README
    subversion/branches/atomic-revprop/subversion/tests/cmdline/authz_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/basic_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/copy_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/atomic-revprop/subversion/tests/cmdline/diff_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/externals_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/input_validation_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/merge_authz_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/merge_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/merge_tree_conflict_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/patch_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/revert_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/schedule_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/stat_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/svnrdump_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/main.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/switch_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/tree_conflict_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/update_tests.py
    subversion/branches/atomic-revprop/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/atomic-revprop/subversion/tests/libsvn_delta/delta-window-test.h
    subversion/branches/atomic-revprop/subversion/tests/libsvn_diff/parse-diff-test.c
    subversion/branches/atomic-revprop/subversion/tests/libsvn_wc/db-test.c
    subversion/branches/atomic-revprop/subversion/tests/svn_test_main.c
    subversion/branches/atomic-revprop/tools/backup/hot-backup.py.in
    subversion/branches/atomic-revprop/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
    subversion/branches/atomic-revprop/tools/dev/svnraisetreeconflict/   (props changed)
    subversion/branches/atomic-revprop/tools/dev/unix-build/Makefile.svn
    subversion/branches/atomic-revprop/tools/server-side/   (props changed)
    subversion/branches/atomic-revprop/win-tests.py

Propchange: subversion/branches/atomic-revprop/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Sep  9 20:26:46 2010
@@ -28,6 +28,7 @@ apr-util
 apr-iconv
 Release
 Debug
+ipch
 subversion_msvc.dsw
 subversion_msvc.ncb
 subversion_msvc.opt
@@ -35,6 +36,8 @@ subversion_msvc.plg
 subversion_vcnet.sln
 subversion_vcnet.ncb
 subversion_vcnet.suo
+subversion_vcnet.sdf
+subversion_vcnet.opensdf
 mkmf.log
 .project
 .classpath

Propchange: subversion/branches/atomic-revprop/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  9 20:26:46 2010
@@ -10,6 +10,7 @@
 /subversion/branches/gnome-keyring:870558-871410
 /subversion/branches/http-protocol-v2:874395-876041
 /subversion/branches/in-memory-cache:869829-871452
+/subversion/branches/issue-2779-dev:965496-984198
 /subversion/branches/issue-2843-dev:871432-874179
 /subversion/branches/issue-3000:871713,871716-871719,871721-871726,871728,871734
 /subversion/branches/issue-3067-deleted-subtrees:873375-874084
@@ -20,6 +21,8 @@
 /subversion/branches/kwallet:870785-871314
 /subversion/branches/log-g-performance:870941-871032
 /subversion/branches/merge-skips-obstructions:874525-874615
+/subversion/branches/nfc-nfd-aware-client:870276,870376
+/subversion/branches/performance:983764,983766,984927,985014,985669,987893
 /subversion/branches/ra_serf-digest-authn:875693-876404
 /subversion/branches/reintegrate-improvements:873853-874164
 /subversion/branches/subtree-mergeinfo:876734-878766
@@ -34,4 +37,4 @@
 /subversion/branches/tc_url_rev:874351-874483
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
-/subversion/trunk:965046-983925
+/subversion/trunk:965046-995395

Modified: subversion/branches/atomic-revprop/BRANCH-README
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/BRANCH-README?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/BRANCH-README (original)
+++ subversion/branches/atomic-revprop/BRANCH-README Thu Sep  9 20:26:46 2010
@@ -33,6 +33,12 @@ Planned work
   - upgrade svn_ra_change_rev_prop() callers
 
 
+Failing tests
+=============
+
+See details in ./FAILING-TESTS.
+
+
 Dependency: have ra_dav provide err->apr_err over the wire
 ==========================================================
 

Added: subversion/branches/atomic-revprop/FAILING-TESTS
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/FAILING-TESTS?rev=995566&view=auto
==============================================================================
--- subversion/branches/atomic-revprop/FAILING-TESTS (added)
+++ subversion/branches/atomic-revprop/FAILING-TESTS Thu Sep  9 20:26:46 2010
@@ -0,0 +1,29 @@
+As of r995562 (which is the sync up to r995395 from trunk), the tests are as follows:
+
+* ra_local, ra_svn, ra_neon:
+    All tests pass.
+
+* ra_serf:
+    The following tests fail.  They failed before r995395 too.
+[[[
+FAIL:  depth_tests.py 37: tree conflicts resolved depth-empty
+FAIL:  depth_tests.py 38: tree conflicts resolved depth-files
+FAIL:  depth_tests.py 39: tree conflicts resolved depth-immediates
+FAIL:  depth_tests.py 40: tree conflicts resolved depth-infinity
+FAIL:  diff_tests.py 24: diff a prop change on a dir named explicitly
+FAIL:  diff_tests.py 29: diff to BASE with local property mods
+FAIL:  merge_tests.py 3: some simple property merges
+FAIL:  merge_tests.py 55: subtrees can lose non-inheritable ranges
+FAIL:  merge_tests.py 58: child having different rev ranges to merge
+FAIL:  merge_tests.py 63: reverse merge of prop add on child
+FAIL:  merge_tests.py 77: merges that remove all mergeinfo work
+FAIL:  merge_tests.py 98: mergeinfo deleted by a merge should disappear
+FAIL:  resolved_tests.py 1: resolved on working copy root
+FAIL:  stat_tests.py 24: run 'status -u' variations w/ incoming propchanges
+FAIL:  stat_tests.py 25: run 'status -uv' w/ incoming propchanges
+FAIL:  svnadmin_tests.py 13: recover a repository (FSFS only)
+FAIL:  svnadmin_tests.py 17: fsfs recovery checks missing revs / revprops files
+FAIL:  update_tests.py 35: update conflicted files
+FAIL:  update_tests.py 36: mergeinfo does not elide after update
+FAIL:  update_tests.py 45: restarted update should delete dir prop
+]]]

Modified: subversion/branches/atomic-revprop/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/Makefile.in?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/Makefile.in (original)
+++ subversion/branches/atomic-revprop/Makefile.in Thu Sep  9 20:26:46 2010
@@ -437,13 +437,10 @@ clean-javahl:
 	rm -f $(libsvnjavahl_PATH)/*.lo
 	rm -f $(libsvnjavahl_PATH)/*.o
 
-check-javahl-compat: javahl-compat-tests javahl-compat
-	@FIX_JAVAHL_LIB@
-	$(JAVA) "-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
-
-check-javahl: javahl check-javahl-compat
+check-javahl: javahl javahl-compat
 	@FIX_JAVAHL_LIB@
 	$(JAVA) "-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) "-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
 
 # "make check CLEANUP=true" will clean up directories for successful tests.
 # "make check TESTS=subversion/tests/cmdline/basic_tests.py"

Modified: subversion/branches/atomic-revprop/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/build.conf?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/build.conf (original)
+++ subversion/branches/atomic-revprop/build.conf Thu Sep  9 20:26:46 2010
@@ -168,7 +168,7 @@ install = bin
 manpages = subversion/svnversion/svnversion.1
 
 [svnrdump]
-description = Subversion remote repository dumper
+description = Subversion remote repository dumper and loader
 type = exe
 path = subversion/svnrdump
 libs = libsvn_client libsvn_ra libsvn_repos libsvn_delta libsvn_subr apr
@@ -345,7 +345,7 @@ msvc-export = svn_wc.h private\svn_wc_pr
 description = Subversion plug-in for the Apache DAV module
 type = apache-mod
 path = subversion/mod_dav_svn
-sources = *.c reports/*.c
+sources = *.c reports/*.c posts/*.c
 libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr
 nonlibs = apr aprutil
 install = apache-mod

Modified: subversion/branches/atomic-revprop/build/ac-macros/serf.m4
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/build/ac-macros/serf.m4?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/build/ac-macros/serf.m4 (original)
+++ subversion/branches/atomic-revprop/build/ac-macros/serf.m4 Thu Sep  9 20:26:46 2010
@@ -27,6 +27,10 @@ AC_DEFUN(SVN_LIB_SERF,
 [
   serf_found=no
 
+  serf_check_major=0
+  serf_check_minor=3
+  serf_check_patch=1
+
   AC_ARG_WITH(serf,AS_HELP_STRING([--with-serf=PREFIX],
                                   [Serf WebDAV client library]),
   [
@@ -40,7 +44,16 @@ AC_DEFUN(SVN_LIB_SERF,
       AC_CHECK_HEADERS(serf.h,[
         save_ldflags="$LDFLAGS"
         LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
-        AC_CHECK_LIB(serf-0, serf_context_create,[serf_found="yes"], ,
+        AC_CHECK_LIB(serf-0, serf_context_create,[
+          AC_TRY_COMPILE([
+#include <stdlib.h>
+#include "serf.h"
+],[
+#if ! SERF_VERSION_AT_LEAST($serf_check_major, $serf_check_minor, $serf_check_patch)
+#error Serf version too old: need $serf_check_major.$serf_check_minor.$serf_check_patch
+#endif
+], [serf_found=yes], [AC_MSG_WARN([Serf version too old: need $serf_check_major.$serf_check_minor.$serf_check_patch])
+        serf_found=no])], ,
           $SVN_APRUTIL_LIBS $SVN_APR_LIBS -lz)
         LDFLAGS="$save_ldflags"])
       CPPFLAGS="$save_cppflags"

Modified: subversion/branches/atomic-revprop/build/generator/build_zlib.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/build/generator/build_zlib.ezt?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/build/generator/build_zlib.ezt (original)
+++ subversion/branches/atomic-revprop/build/generator/build_zlib.ezt Thu Sep  9 20:26:46 2010
@@ -43,13 +43,13 @@ if not exist gvmat32c.c    copy contrib\
 if not exist gvmat32.asm   copy contrib\masmx86\gvmat32.asm .
 if not exist inffas32.asm  copy contrib\masmx86\inffas32.asm .[end]
 
-if "%1" == "release" goto release
-if "%1" == "debug" goto debug
+if /i "%1" == "release" goto release
+if /i "%1" == "debug" goto debug
 goto pIerr
 
 :checkrebuild
-if "%2" == "rebuild" goto rebuild
-if "%2" == "clean" goto clean
+if /i "%2" == "rebuild" goto rebuild
+if /i "%2" == "clean" goto clean
 if not "%2" == "" goto pIIerr
 set target= %STATICLIB%
 goto build

Modified: subversion/branches/atomic-revprop/build/generator/extractor.py
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/build/generator/extractor.py?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/build/generator/extractor.py (original)
+++ subversion/branches/atomic-revprop/build/generator/extractor.py Thu Sep  9 20:26:46 2010
@@ -24,7 +24,6 @@
 
 import os
 import re
-import string
 
 #
 # This parses the following two types of declarations:

Modified: subversion/branches/atomic-revprop/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/configure.ac?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/configure.ac (original)
+++ subversion/branches/atomic-revprop/configure.ac Thu Sep  9 20:26:46 2010
@@ -153,7 +153,7 @@ SVN_FIND_APACHE(20020903)
 
 dnl Search for SQLite
 SQLITE_MINIMUM_VER="3.4.0"
-SQLITE_RECOMMENDED_VER="3.6.17"
+SQLITE_RECOMMENDED_VER="3.7.2"
 SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-${SQLITE_RECOMMENDED_VER}.tar.gz"
 SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER},
                ${SQLITE_URL})

Modified: subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py (original)
+++ subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py Thu Sep  9 20:26:46 2010
@@ -675,11 +675,13 @@ class NodeRev(object):
       elif field == 'pred':
         self.pred = NodeId(value)
       elif field == 'text':
-        (rev, offset, length, size, digest) = value.split(' ')
-        rev = int(rev)
-        offset = int(offset)
-        length = int(length)
-        size = int(size)
+        values = value.split(' ')
+        rev = int(values[0])
+        offset = int(values[1])
+        length = int(values[2])
+        size = int(values[3])
+        digest = values[4]
+        # TODO SHA1 digest
 
         if rev != currentRev:
           contentType = None

Modified: subversion/branches/atomic-revprop/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/get-deps.sh?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/get-deps.sh (original)
+++ subversion/branches/atomic-revprop/get-deps.sh Thu Sep  9 20:26:46 2010
@@ -28,7 +28,7 @@ APR_UTIL=apr-util-1.3.9
 NEON=neon-0.29.0
 SERF=serf-0.6.1
 ZLIB=zlib-1.2.5
-SQLITE_VERSION=3.6.20
+SQLITE_VERSION=3.7.2
 SQLITE=sqlite-amalgamation-$SQLITE_VERSION
 
 HTTPD=httpd-2.2.14

Propchange: subversion/branches/atomic-revprop/notes/
            ('svn:mergeinfo' removed)

Modified: subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage (original)
+++ subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage Thu Sep  9 20:26:46 2010
@@ -48,6 +48,16 @@ equivalent in wc-ng conflict storage (su
 but this information can be deduced from the information stored
 (e.g. conflict-old and friends; foo.r42 is now 'foo' + '.r' + left_rev)
 
+### BH: We have to store the exact name of the conflict marker files. If we
+### just 'guess' how conflict markers are named by using their revision
+### numbers, we can't handle situations where there are existing files with
+### these names. The WC-1.0 code uses a unique name function to generate a
+### unique marker file name which happens to match this pattern if there are
+### no conflicts, but sometimes explicitly preserves the existing file
+### extension to help diff tools. (See 'preserved-conflict-file-exts' in our
+### config). I think we can move the names of the markers into the skel and/or
+### keep them in their own columns. (These names are needed on filling a
+### svn_wc_entry_t)
 
 Operation skel
 --------------
@@ -256,19 +266,23 @@ is the failure to find a match for a hun
 There can be one or more reject conflicts on a node. Each "reject" conflict
 has the following form:
 
-  ("reject" HUNK_ORIGINAL_OFFSET HUNK_ORIGINAL_LEN
-    HUNK_MODIFIED_OFFSET HUNK_MODIFIED_LENGTH
-    REJECT_DIFF_SHA1)
+  REJECTED_HUNK_LIST := (HUNK_ORIGINAL_OFFSET HUNK_ORIGINAL_LENGTH
+                         HUNK_MODIFIED_OFFSET HUNK_MODIFIED_LENGTH)*
+
+  ("reject" REJECT_FILE TARGET_PATCH_SHA1 REJECTED_HUNK_LIST)
+
+REJECT_FILE is ...
+
+TARGET_PATCH_SHA1 is <selection of patch file applying to target>
+the sha1 of the unidiff content of the rejected
+hunk as written to the .svnpatch.rej file. The actual unidiff content
+(which can be large!) can be retrieved from the pristine store.
 
 HUNK_{ORIGINAL,MODIFIED}_OFFSET and HUNK_{ORIGINAL,MODIFIED}_LENGTH
 are the hunk header values as parsed from the patch file (i.e. the "ID"
 of the hunk within the patch file). These also occur in the reject
 diff text but are stored here for easy retrieval.
 
-REJECT_DIFF_SHA1 is the sha1 of the unidiff content of the rejected
-hunk as written to the .svnpatch.rej file. The actual unidiff content
-(which can be large!) can be retrieved from the pristine store.
-
 ### BH: Using a sha1 here, makes it impossible to cleanup the pristine store
 ###     The pristine store needs all references to be stored in a DB column.
 ###     To support this we would need an extra table.
@@ -277,3 +291,6 @@ hunk as written to the .svnpatch.rej fil
 ###   the user deletes the tempfile would be nice. And I don't see an issue
 ###   with also storing the SHA1 sum in the ACTUAL table. We do this for
 ###   text conflicts as well. Why would it need an extra table?
+
+  ("prop-reject" REJECT_FILE
+   (PROPERTY_NAME TARGET_PATCH_SHA1 REJECTED_HUNK_LIST)* )

Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp Thu Sep  9 20:26:46 2010
@@ -28,9 +28,10 @@
 #include "CreateJ.h"
 #include "EnumMapper.h"
 #include "JNIUtil.h"
+#include "JNIStringHolder.h"
+
 #include <apr_tables.h>
 #include "svn_client.h"
-#include "../include/org_apache_subversion_javahl_CommitItemStateFlags.h"
 
 CommitMessage::CommitMessage(jobject jcommitMessage)
 {
@@ -39,90 +40,46 @@ CommitMessage::CommitMessage(jobject jco
 
 CommitMessage::~CommitMessage()
 {
-  // Since the m_jcommitMessage is a global reference, it has to be
-  // deleted to allow the Java garbage collector to reclaim the
-  // object.
-  if (m_jcommitMessage!= NULL)
-    {
-      JNIEnv *env = JNIUtil::getEnv();
-      env->DeleteGlobalRef(m_jcommitMessage);
-    }
+  // No need to delete the local reference
 }
 
-CommitMessage *CommitMessage::makeCCommitMessage(jobject jcommitMessage)
+svn_error_t *
+CommitMessage::callback(const char **log_msg,
+                        const char **tmp_file,
+                        const apr_array_header_t *commit_items,
+                        void *baton,
+                        apr_pool_t *pool)
 {
-  // If there is no object passed into this method, there is no need
-  // for a C++ holding object.
-  if (jcommitMessage == NULL)
-    return NULL;
-
-  // Sanity check, that the passed Java object implements the right
-  // interface.
-  JNIEnv *env = JNIUtil::getEnv();
-  jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitMessage");
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-
-  if (!env->IsInstanceOf(jcommitMessage, clazz))
-    {
-      env->DeleteLocalRef(clazz);
-      return NULL;
-    }
-  env->DeleteLocalRef(clazz);
-
-  // Since the reference is longer needed then the duration of the
-  // SVNClient.commtMessage, the local reference has to be converted
-  // to a global reference.
-  jobject myCommitMessage = env->NewGlobalRef(jcommitMessage);
-  if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
-
-  // create & return the holding object
-  return new CommitMessage(myCommitMessage);
+  if (baton && ((CommitMessage *)baton)->m_jcommitMessage)
+    return ((CommitMessage *)baton)->getCommitMessage(log_msg, tmp_file,
+                                                      commit_items, pool);
+
+  *log_msg = NULL;
+  *tmp_file = NULL;
+  return SVN_NO_ERROR;
 }
 
-/**
- * Call the Java callback method to retrieve the commit message
- * @param commit_items  the array of the items of this commit
- * @returns the commit message
- */
-jstring
-CommitMessage::getCommitMessage(const apr_array_header_t *commit_items)
+svn_error_t *
+CommitMessage::getCommitMessage(const char **log_msg,
+                                const char **tmp_file,
+                                const apr_array_header_t *commit_items,
+                                apr_pool_t *pool)
 {
+  *tmp_file = NULL;
   JNIEnv *env = JNIUtil::getEnv();
-  // create an Java array for the commit items
-  jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitItem");
-  if (JNIUtil::isExceptionThrown())
-    return NULL;
-
-  // Java method ids will not change during the time this library is
-  // loaded, so they can be cached.
-
-  // Get the method id for the CommitItem constructor.
-  static jmethodID midConstructor = 0;
-  if (midConstructor == 0)
-    {
-      midConstructor = env->GetMethodID(clazz, "<init>",
-                                        "(Ljava/lang/String;"
-                                        "L"JAVA_PACKAGE"/NodeKind;"
-                                        "ILjava/lang/String;"
-                                        "Ljava/lang/String;J)V");
-      if (JNIUtil::isExceptionThrown())
-        return NULL;
-    }
 
   // get the method if for the CommitMessage callback method
   static jmethodID midCallback = 0;
   if (midCallback == 0)
     {
-      jclass clazz2 = env->FindClass(JAVA_PACKAGE"/CommitMessage");
+      jclass clazz2 = env->FindClass(JAVA_PACKAGE"/callback/CommitMessageCallback");
       if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
+        return SVN_NO_ERROR;
 
       midCallback = env->GetMethodID(clazz2, "getLogMessage",
                                      "(Ljava/util/Set;)Ljava/lang/String;");
       if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
+        return SVN_NO_ERROR;
 
       env->DeleteLocalRef(clazz2);
     }
@@ -134,65 +91,26 @@ CommitMessage::getCommitMessage(const ap
       svn_client_commit_item3_t *item =
         APR_ARRAY_IDX(commit_items, i, svn_client_commit_item3_t *);
 
-      // convert the commit item members to the match Java members
-      jstring jpath = JNIUtil::makeJString(item->path);
-
-      jobject jnodeKind = EnumMapper::mapNodeKind(item->kind);
-      if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-      jint jstateFlags = 0;
-      if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD)
-        jstateFlags |=
-          org_apache_subversion_javahl_CommitItemStateFlags_Add;
-      if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
-        jstateFlags |=
-          org_apache_subversion_javahl_CommitItemStateFlags_Delete;
-      if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_TEXT_MODS)
-        jstateFlags |=
-          org_apache_subversion_javahl_CommitItemStateFlags_TextMods;
-      if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_PROP_MODS)
-        jstateFlags |=
-          org_apache_subversion_javahl_CommitItemStateFlags_PropMods;
-      if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_IS_COPY)
-        jstateFlags |=
-          org_apache_subversion_javahl_CommitItemStateFlags_IsCopy;
-
-      jstring jurl = JNIUtil::makeJString(item->url);
-      if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-      jstring jcopyUrl = JNIUtil::makeJString(item->copyfrom_url);
-      if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-      jlong jcopyRevision = item->revision;
-
-      // create the Java object
-      jobject jitem = env->NewObject(clazz, midConstructor, jpath,
-                                     jnodeKind, jstateFlags, jurl,
-                                     jcopyUrl, jcopyRevision);
-      if (JNIUtil::isJavaExceptionThrown())
-        return NULL;
-
-      // release the tempory Java objects
-      env->DeleteLocalRef(jpath);
-      env->DeleteLocalRef(jnodeKind);
-      env->DeleteLocalRef(jurl);
-      env->DeleteLocalRef(jcopyUrl);
+      jobject jitem = CreateJ::CommitItem(item);
 
       // store the Java object into the array
       jitems.push_back(jitem);
     }
 
-  env->DeleteLocalRef(clazz);
-
   // call the Java callback method
   jstring jmessage = (jstring)env->CallObjectMethod(m_jcommitMessage,
                                                     midCallback,
                                                     CreateJ::Set(jitems));
   if (JNIUtil::isJavaExceptionThrown())
-    return NULL;
+    return SVN_NO_ERROR;
+
+  if (jmessage != NULL)
+    {
+      JNIStringHolder msg(jmessage);
+      *log_msg = apr_pstrdup(pool, msg);
+    }
+  else
+    *log_msg = NULL;
 
-  return jmessage;
+  return SVN_NO_ERROR;
 }

Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h Thu Sep  9 20:26:46 2010
@@ -28,7 +28,8 @@
 #define COMMITMESSAGE_H
 
 #include <jni.h>
-struct apr_array_header_t;
+
+#include "svn_client.h"
 
 /**
  * This class stores a Java object implementing the CommitMessage
@@ -37,36 +38,25 @@ struct apr_array_header_t;
 class CommitMessage
 {
  public:
-  /**
-   * Deletes the global reference to m_jcommitMessage.
-   */
+  CommitMessage(jobject jcommitMessage);
   ~CommitMessage();
 
-  jstring getCommitMessage(const apr_array_header_t *commit_items);
-
-  /**
-   * Create a C++ holding object for the Java object passed into the
-   * native code.
-   *
-   * @param jcommitMessage The local reference to a
-   * org.tigris.subversion.javahl.CommitMessage Java commit message
-   * object.
-   */
-  static CommitMessage *makeCCommitMessage(jobject jcommitMessage);
+  static svn_error_t *callback(const char **log_msg,
+                               const char **tmp_file,
+                               const apr_array_header_t *commit_items,
+                               void *baton,
+                               apr_pool_t *pool);
+
+ protected:
+  svn_error_t *getCommitMessage(const char **log_msg,
+                                const char **tmp_file,
+                                const apr_array_header_t *commit_items,
+                                apr_pool_t *pool);
 
  private:
-  /**
-   * A global reference to the Java object, because the reference
-   * must be valid longer than the SVNClient.commitMessage call.
-   */
+  /* A local reference. */
   jobject m_jcommitMessage;
 
-  /**
-   * Create a commit message object.
-   *
-   * @param jcommitMessage The Java object to receive the callback.
-   */
-  CommitMessage(jobject jcommitMessage);
 };
 
 #endif  // COMMITMESSAGE_H

Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp Thu Sep  9 20:26:46 2010
@@ -32,6 +32,7 @@
 #include "RevisionRange.h"
 #include "CreateJ.h"
 #include "../include/org_apache_subversion_javahl_Revision.h"
+#include "../include/org_apache_subversion_javahl_CommitItemStateFlags.h"
 
 #include "svn_path.h"
 #include "private/svn_wc_private.h"
@@ -850,6 +851,117 @@ CreateJ::ReposNotifyInformation(const sv
 }
 
 jobject
+CreateJ::CommitItem(svn_client_commit_item3_t *item)
+{
+  JNIEnv *env = JNIUtil::getEnv();
+
+  // Create a local frame for our references
+  env->PushLocalFrame(LOCAL_FRAME_SIZE);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitItem");
+  if (JNIUtil::isExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  // Get the method id for the CommitItem constructor.
+  static jmethodID midConstructor = 0;
+  if (midConstructor == 0)
+    {
+      midConstructor = env->GetMethodID(clazz, "<init>",
+                                        "(Ljava/lang/String;"
+                                        "L"JAVA_PACKAGE"/NodeKind;"
+                                        "ILjava/lang/String;"
+                                        "Ljava/lang/String;J)V");
+      if (JNIUtil::isExceptionThrown())
+        POP_AND_RETURN_NULL;
+    }
+
+  jstring jpath = JNIUtil::makeJString(item->path);
+
+  jobject jnodeKind = EnumMapper::mapNodeKind(item->kind);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  jint jstateFlags = 0;
+  if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD)
+    jstateFlags |=
+      org_apache_subversion_javahl_CommitItemStateFlags_Add;
+  if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+    jstateFlags |=
+      org_apache_subversion_javahl_CommitItemStateFlags_Delete;
+  if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_TEXT_MODS)
+    jstateFlags |=
+      org_apache_subversion_javahl_CommitItemStateFlags_TextMods;
+  if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_PROP_MODS)
+    jstateFlags |=
+      org_apache_subversion_javahl_CommitItemStateFlags_PropMods;
+  if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_IS_COPY)
+    jstateFlags |=
+      org_apache_subversion_javahl_CommitItemStateFlags_IsCopy;
+
+  jstring jurl = JNIUtil::makeJString(item->url);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  jstring jcopyUrl = JNIUtil::makeJString(item->copyfrom_url);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  jlong jcopyRevision = item->revision;
+
+  // create the Java object
+  jobject jitem = env->NewObject(clazz, midConstructor, jpath,
+                                 jnodeKind, jstateFlags, jurl,
+                                 jcopyUrl, jcopyRevision);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  return env->PopLocalFrame(jitem);
+}
+
+jobject
+CreateJ::CommitInfo(const svn_commit_info_t *commit_info)
+{
+  JNIEnv *env = JNIUtil::getEnv();
+
+  // Create a local frame for our references
+  env->PushLocalFrame(LOCAL_FRAME_SIZE);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  static jmethodID midCT = 0;
+  jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitInfo");
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  if (midCT == 0)
+    {
+      midCT = env->GetMethodID(clazz, "<init>",
+                               "(JLjava/lang/String;Ljava/lang/String;)V");
+      if (JNIUtil::isJavaExceptionThrown() || midCT == 0)
+        POP_AND_RETURN_NULL;
+    }
+
+  jstring jAuthor = JNIUtil::makeJString(commit_info->author);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  jstring jDate = JNIUtil::makeJString(commit_info->date);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  jlong jRevision = commit_info->revision;
+
+  // call the Java method
+  jobject jInfo = env->NewObject(clazz, midCT, jRevision, jDate, jAuthor);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  return env->PopLocalFrame(jInfo);
+}
+
+jobject
 CreateJ::RevisionRangeList(apr_array_header_t *ranges)
 {
   JNIEnv *env = JNIUtil::getEnv();

Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h Thu Sep  9 20:26:46 2010
@@ -65,6 +65,12 @@ class CreateJ
   ReposNotifyInformation(const svn_repos_notify_t *notify, apr_pool_t *pool);
 
   static jobject
+  CommitItem(svn_client_commit_item3_t *item);
+
+  static jobject
+  CommitInfo(const svn_commit_info_t *info);
+
+  static jobject
   RevisionRangeList(apr_array_header_t *ranges);
 
   static jobject

Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp Thu Sep  9 20:26:46 2010
@@ -41,11 +41,9 @@
  * @param v2            the callback objects implements PromptUserPassword2
  * @param v3            the callback objects implements PromptUserPassword3
  */
-Prompter::Prompter(jobject jprompter, bool v2, bool v3)
+Prompter::Prompter(jobject jprompter)
 {
   m_prompter = jprompter;
-  m_version2 = v2;
-  m_version3 = v3;
 }
 
 Prompter::~Prompter()
@@ -79,35 +77,13 @@ Prompter *Prompter::makeCPrompter(jobjec
     return NULL;
 
   // Sanity check that the Java object implements PromptUserPassword.
-  jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword");
+  jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/UserPasswordCallback");
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
   if (!env->IsInstanceOf(jprompter, clazz))
     POP_AND_RETURN_NULL;
 
-  // Check if PromptUserPassword2 is implemented by the Java object.
-  jclass clazz2 = env->FindClass(JAVA_PACKAGE"/PromptUserPassword2");
-  if (JNIUtil::isJavaExceptionThrown())
-    POP_AND_RETURN_NULL;
-
-  bool v2 = env->IsInstanceOf(jprompter, clazz2) ? true: false;
-  if (JNIUtil::isJavaExceptionThrown())
-    POP_AND_RETURN_NULL;
-
-  bool v3 = false;
-  if (v2)
-    {
-      // Check if PromptUserPassword3 is implemented by the Java object.
-      jclass clazz3 = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN_NULL;
-
-      v3 = env->IsInstanceOf(jprompter, clazz3) ? true: false;
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN_NULL;
-    }
-
   // Create a new global ref for the Java object, because it is
   // longer used that this call.
   jobject myPrompt = env->NewGlobalRef(jprompter);
@@ -117,7 +93,7 @@ Prompter *Prompter::makeCPrompter(jobjec
   env->PopLocalFrame(NULL);
 
   // Create the C++ peer.
-  return new Prompter(myPrompt, v2, v3);
+  return new Prompter(myPrompt);
 }
 
 /**
@@ -251,101 +227,53 @@ const char *Prompter::askQuestion(const 
   if (JNIUtil::isJavaExceptionThrown())
     return false;
 
-  if (m_version3)
+  static jmethodID mid = 0;
+  static jmethodID mid2 = 0;
+  if (mid == 0)
     {
-      static jmethodID mid = 0;
-      static jmethodID mid2 = 0;
-      if (mid == 0)
-        {
-          jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN_NULL;
-
-          mid = env->GetMethodID(clazz, "askQuestion",
-                                 "(Ljava/lang/String;Ljava/lang/String;"
-                                 "ZZ)Ljava/lang/String;");
-          if (JNIUtil::isJavaExceptionThrown() || mid == 0)
-            POP_AND_RETURN_NULL;
-
-          mid2 = env->GetMethodID(clazz, "userAllowedSave", "()Z");
-          if (JNIUtil::isJavaExceptionThrown() || mid == 0)
-            POP_AND_RETURN_NULL;
-        }
-
-      jstring jrealm = JNIUtil::makeJString(realm);
+      jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN_NULL;
 
-      jstring jquestion = JNIUtil::makeJString(question);
-      if (JNIUtil::isJavaExceptionThrown())
+      mid = env->GetMethodID(clazz, "askQuestion",
+                             "(Ljava/lang/String;Ljava/lang/String;"
+                             "ZZ)Ljava/lang/String;");
+      if (JNIUtil::isJavaExceptionThrown() || mid == 0)
         POP_AND_RETURN_NULL;
 
-      jstring janswer = static_cast<jstring>(
-                           env->CallObjectMethod(m_prompter, mid, jrealm,
-                                        jquestion,
-                                        showAnswer ? JNI_TRUE : JNI_FALSE,
-                                        maySave ? JNI_TRUE : JNI_FALSE));
-      if (JNIUtil::isJavaExceptionThrown())
+      mid2 = env->GetMethodID(clazz, "userAllowedSave", "()Z");
+      if (JNIUtil::isJavaExceptionThrown() || mid == 0)
         POP_AND_RETURN_NULL;
-
-      JNIStringHolder answer(janswer);
-      if (answer != NULL)
-        {
-          m_answer = answer;
-          m_maySave = env->CallBooleanMethod(m_prompter, mid2) ? true: false;
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN_NULL;
-        }
-      else
-        {
-          m_answer = "";
-          m_maySave = false;
-        }
     }
-  else
-    {
-      static jmethodID mid = 0;
-      if (mid == 0)
-        {
-          jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword");
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN_NULL;
-
-          mid = env->GetMethodID(clazz, "askQuestion",
-                                 "(Ljava/lang/String;Ljava/lang/String;Z)"
-                                 "Ljava/lang/String;");
-          if (JNIUtil::isJavaExceptionThrown() || mid == 0)
-            POP_AND_RETURN_NULL;
-        }
 
-      jstring jrealm = JNIUtil::makeJString(realm);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN_NULL;
+  jstring jrealm = JNIUtil::makeJString(realm);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
 
-      jstring jquestion = JNIUtil::makeJString(question);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN_NULL;
+  jstring jquestion = JNIUtil::makeJString(question);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
 
-      jstring janswer = static_cast<jstring>(
-                            env->CallObjectMethod(m_prompter, mid, jrealm,
-                                jquestion, showAnswer ? JNI_TRUE : JNI_FALSE));
+  jstring janswer = static_cast<jstring>(
+                       env->CallObjectMethod(m_prompter, mid, jrealm,
+                                    jquestion,
+                                    showAnswer ? JNI_TRUE : JNI_FALSE,
+                                    maySave ? JNI_TRUE : JNI_FALSE));
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  JNIStringHolder answer(janswer);
+  if (answer != NULL)
+    {
+      m_answer = answer;
+      m_maySave = env->CallBooleanMethod(m_prompter, mid2) ? true: false;
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN_NULL;
-
-      JNIStringHolder answer(janswer);
-      if (answer != NULL)
-        {
-          m_answer = answer;
-          if (maySave)
-            m_maySave = askYesNo(realm, _("May save the answer ?"), true);
-          else
-            m_maySave = false;
-        }
-      else
-        {
-          m_answer = "";
-          m_maySave = false;
-        }
+    }
+  else
+    {
+      m_answer = "";
+      m_maySave = false;
     }
 
   env->PopLocalFrame(NULL);
@@ -354,58 +282,36 @@ const char *Prompter::askQuestion(const 
 
 int Prompter::askTrust(const char *question, bool maySave)
 {
-  if (m_version2)
-    {
-      static jmethodID mid = 0;
-      JNIEnv *env = JNIUtil::getEnv();
-
-      // Create a local frame for our references
-      env->PushLocalFrame(LOCAL_FRAME_SIZE);
-      if (JNIUtil::isJavaExceptionThrown())
-        return -1;
-
-      if (mid == 0)
-        {
-          jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword2");
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN(-1);
-
-          mid = env->GetMethodID(clazz, "askTrustSSLServer",
-                                 "(Ljava/lang/String;Z)I");
-          if (JNIUtil::isJavaExceptionThrown() || mid == 0)
-            POP_AND_RETURN(-1);
-        }
-      jstring jquestion = JNIUtil::makeJString(question);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN(-1);
+   static jmethodID mid = 0;
+   JNIEnv *env = JNIUtil::getEnv();
 
-      jint ret = env->CallIntMethod(m_prompter, mid, jquestion,
-                                    maySave ? JNI_TRUE : JNI_FALSE);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN(-1);
+   // Create a local frame for our references
+   env->PushLocalFrame(LOCAL_FRAME_SIZE);
+   if (JNIUtil::isJavaExceptionThrown())
+     return -1;
+
+   if (mid == 0)
+     {
+       jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword2");
+       if (JNIUtil::isJavaExceptionThrown())
+         POP_AND_RETURN(-1);
+
+       mid = env->GetMethodID(clazz, "askTrustSSLServer",
+                              "(Ljava/lang/String;Z)I");
+       if (JNIUtil::isJavaExceptionThrown() || mid == 0)
+         POP_AND_RETURN(-1);
+     }
+   jstring jquestion = JNIUtil::makeJString(question);
+   if (JNIUtil::isJavaExceptionThrown())
+     POP_AND_RETURN(-1);
+
+   jint ret = env->CallIntMethod(m_prompter, mid, jquestion,
+                                 maySave ? JNI_TRUE : JNI_FALSE);
+   if (JNIUtil::isJavaExceptionThrown())
+     POP_AND_RETURN(-1);
 
-      env->PopLocalFrame(NULL);
-      return ret;
-    }
-  else
-    {
-      std::string q = question;
-      if (maySave)
-        q += _("(R)eject, accept (t)emporarily or accept (p)ermanently?");
-      else
-        q += _("(R)eject or accept (t)emporarily?");
-
-      const char *answer = askQuestion(NULL, q.c_str(), true, false);
-      if (*answer == 't' || *answer == 'T')
-        return
-          org_apache_subversion_javahl_callback_UserPasswordCallback_AcceptTemporary;
-      else if (maySave && (*answer == 'p' || *answer == 'P'))
-        return
-          org_apache_subversion_javahl_callback_UserPasswordCallback_AcceptPermanently;
-      else
-        return org_apache_subversion_javahl_callback_UserPasswordCallback_Reject;
-    }
-  return -1;
+   env->PopLocalFrame(NULL);
+   return ret;
 }
 
 bool Prompter::prompt(const char *realm, const char *pi_username, bool maySave)
@@ -418,75 +324,40 @@ bool Prompter::prompt(const char *realm,
   if (JNIUtil::isJavaExceptionThrown())
     return false;
 
-  if (m_version3)
+  static jmethodID mid = 0;
+  static jmethodID mid2 = 0;
+  if (mid == 0)
     {
-      static jmethodID mid = 0;
-      static jmethodID mid2 = 0;
-      if (mid == 0)
-        {
-          jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN(false);
-
-          mid = env->GetMethodID(clazz, "prompt",
-                                 "(Ljava/lang/String;Ljava/lang/String;Z)Z");
-          if (JNIUtil::isJavaExceptionThrown() || mid == 0)
-            POP_AND_RETURN(false);
-
-          mid2 = env->GetMethodID(clazz, "userAllowedSave", "()Z");
-          if (JNIUtil::isJavaExceptionThrown() || mid == 0)
-            POP_AND_RETURN(false);
-        }
-
-      jstring jrealm = JNIUtil::makeJString(realm);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN(false);
-
-      jstring jusername = JNIUtil::makeJString(pi_username);
+      jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN(false);
 
-      ret = env->CallBooleanMethod(m_prompter, mid, jrealm, jusername,
-                                   maySave ? JNI_TRUE: JNI_FALSE);
-      if (JNIUtil::isJavaExceptionThrown())
+      mid = env->GetMethodID(clazz, "prompt",
+                             "(Ljava/lang/String;Ljava/lang/String;Z)Z");
+      if (JNIUtil::isJavaExceptionThrown() || mid == 0)
         POP_AND_RETURN(false);
 
-      m_maySave = env->CallBooleanMethod(m_prompter, mid2) ? true : false;
-      if (JNIUtil::isJavaExceptionThrown())
+      mid2 = env->GetMethodID(clazz, "userAllowedSave", "()Z");
+      if (JNIUtil::isJavaExceptionThrown() || mid == 0)
         POP_AND_RETURN(false);
     }
-  else
-    {
-      static jmethodID mid = 0;
-      if (mid == 0)
-        {
-          jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword");
-          if (JNIUtil::isJavaExceptionThrown())
-            POP_AND_RETURN(false);
-
-          mid = env->GetMethodID(clazz, "prompt",
-                                 "(Ljava/lang/String;Ljava/lang/String;)Z");
-          if (JNIUtil::isJavaExceptionThrown() || mid == 0)
-            POP_AND_RETURN(false);
-        }
 
-      jstring jrealm = JNIUtil::makeJString(realm);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN(false);
+  jstring jrealm = JNIUtil::makeJString(realm);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN(false);
 
-      jstring jusername = JNIUtil::makeJString(pi_username);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN(false);
+  jstring jusername = JNIUtil::makeJString(pi_username);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN(false);
 
-      ret = env->CallBooleanMethod(m_prompter, mid, jrealm, jusername);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN(false);
+  ret = env->CallBooleanMethod(m_prompter, mid, jrealm, jusername,
+                               maySave ? JNI_TRUE: JNI_FALSE);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN(false);
 
-      if (maySave)
-        m_maySave = askYesNo(realm, _("May save the answer ?"), true);
-      else
-        m_maySave = false;
-    }
+  m_maySave = env->CallBooleanMethod(m_prompter, mid2) ? true : false;
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN(false);
 
   env->PopLocalFrame(NULL);
   return ret ? true:false;
@@ -717,3 +588,37 @@ Prompter::ssl_client_cert_pw_prompt(svn_
   *cred_p = ret;
   return SVN_NO_ERROR;
 }
+
+svn_error_t *
+Prompter::plaintext_prompt(svn_boolean_t *may_save_plaintext,
+                           const char *realmstring,
+                           void *baton,
+                           apr_pool_t *pool)
+{
+  Prompter *that = (Prompter *) baton;
+
+  bool result = that->askYesNo(realmstring,
+                               _("Store password unencrypted?"),
+                               false);
+
+  *may_save_plaintext = (result ? TRUE : FALSE);
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
+Prompter::plaintext_passphrase_prompt(svn_boolean_t *may_save_plaintext,
+                                      const char *realmstring,
+                                      void *baton,
+                                      apr_pool_t *pool)
+{
+  Prompter *that = (Prompter *) baton;
+
+  bool result = that->askYesNo(realmstring,
+                               _("Store passphrase unencrypted?"),
+                               false);
+
+  *may_save_plaintext = (result ? TRUE : FALSE);
+
+  return SVN_NO_ERROR;
+}

Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h Thu Sep  9 20:26:46 2010
@@ -46,16 +46,6 @@ class Prompter
   jobject m_prompter;
 
   /**
-   * The callback objects implements PromptUserPassword2.
-   */
-  bool m_version2;
-
-  /**
-   * The callback objects implements PromptUserPassword3.
-   */
-  bool m_version3;
-
-  /**
    * Tntermediate storage for an answer.
    */
   std::string m_answer;
@@ -66,7 +56,7 @@ class Prompter
    */
   bool m_maySave;
 
-  Prompter(jobject jprompter, bool v2, bool v3);
+  Prompter(jobject jprompter);
   bool prompt(const char *realm, const char *pi_username, bool maySave);
   bool askYesNo(const char *realm, const char *question, bool yesIsDefault);
   const char *askQuestion(const char *realm, const char *question,
@@ -113,6 +103,16 @@ class Prompter
   svn_auth_provider_object_t *getProviderServerSSLTrust();
   svn_auth_provider_object_t *getProviderClientSSL();
   svn_auth_provider_object_t *getProviderClientSSLPassword();
+
+  static svn_error_t *plaintext_prompt(svn_boolean_t *may_save_plaintext,
+                                       const char *realmstring,
+                                       void *baton,
+                                       apr_pool_t *pool);
+  static svn_error_t *plaintext_passphrase_prompt(
+                                      svn_boolean_t *may_save_plaintext,
+                                      const char *realmstring,
+                                      void *baton,
+                                      apr_pool_t *pool);
 };
 
 #endif // PROMPTER_H

Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp Thu Sep  9 20:26:46 2010
@@ -29,6 +29,7 @@
 
 SVNBase::SVNBase()
 {
+  jthis = NULL;
 }
 
 SVNBase::~SVNBase()
@@ -44,6 +45,7 @@ jlong SVNBase::findCppAddrForJObject(job
                                      const char *className)
 {
   JNIEnv *env = JNIUtil::getEnv();
+
   findCppAddrFieldID(fid, className, env);
   if (*fid == 0)
     {
@@ -52,7 +54,18 @@ jlong SVNBase::findCppAddrForJObject(job
   else
     {
       jlong cppAddr = env->GetLongField(jthis, *fid);
-      return (JNIUtil::isJavaExceptionThrown() ? 0 : cppAddr);
+      if (JNIUtil::isJavaExceptionThrown())
+        return 0;
+
+      /* jthis is not guaranteed to be the same between JNI invocations, so
+         we do a little dance here and store the updated version in our
+         object for this invocation.
+
+         findCppAddrForJObject() is, by necessity, called before any other
+         methods on the C++ object, so by doing this we can guarantee a valid
+         jthis pointer for subsequent uses. */
+      (reinterpret_cast<SVNBase *> (cppAddr))->jthis = jthis;
+      return cppAddr;
     }
 }
 
@@ -65,15 +78,17 @@ void SVNBase::finalize()
   JNIUtil::enqueueForDeletion(this);
 }
 
-void SVNBase::dispose(jobject jthis, jfieldID *fid, const char *className)
+void SVNBase::dispose(jfieldID *fid, const char *className)
 {
+  jobject my_jthis = this->jthis;
+
   delete this;
   JNIEnv *env = JNIUtil::getEnv();
   SVNBase::findCppAddrFieldID(fid, className, env);
   if (*fid == 0)
     return;
 
-  env->SetLongField(jthis, *fid, 0);
+  env->SetLongField(my_jthis, *fid, 0);
   if (JNIUtil::isJavaExceptionThrown())
     return;
 }

Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h Thu Sep  9 20:26:46 2010
@@ -48,7 +48,7 @@ class SVNBase
    *
    * @since 1.4.0
    */
-  virtual void dispose(jobject jthis) = 0;
+  virtual void dispose() = 0;
 
   /**
    * This method should never be called, as @c dispose() should be
@@ -79,7 +79,13 @@ class SVNBase
    *
    * @since 1.4.0
    */
-  void dispose(jobject jthis, jfieldID *fid, const char *className);
+  void dispose(jfieldID *fid, const char *className);
+
+  /**
+   * A pointer to the parent java object.  This is not valid across JNI
+   * method invocations, and so should be set in each one.
+   */
+  jobject jthis;
 
  private:
   /**