Will singleStatus() ever throw ArrayIndexOutOfBoundsException? If so,
it might be more backwards compatible to wrap a try/catch block around
the Java one-liner to re-throw the exception as ClientException.
On Tue, 20 Mar 2007, hwright@tigris.org wrote:
...
> JavaHL: Remove the C++ implementation of singleStatus(), in favor of a one-line
> Java implementation.
>
> [ in subversion/bindings/java/javahl ]
> * src/org/tigris/subversion/javahl/SVNClient.java
> (singleStatus): Reimplement as a thin wrapper around the status() method. The
> defaults used are taken from the SVNClient::singleStatus() function, which
> is being removed.
>
> * native/SVNClient.h,
> native/SVNClient.cpp
> (singleStatus): Remove.
>
> * native/org_tigris_subversion_javahl_SVNClient.cpp
> (Java_org_tigris_subversion_javahl_SVNClient_singleStatus): Remove.
...
> --- trunk/subversion/bindings/java/javahl/native/SVNClient.cpp (original)
> +++ trunk/subversion/bindings/java/javahl/native/SVNClient.cpp Tue Mar 20 07:57:28 2007
> @@ -311,76 +311,6 @@
> }
> }
>
> -jobject SVNClient::singleStatus(const char *path, bool onServer)
> -{
> - status_baton statusBaton;
> - Pool requestPool;
> - svn_revnum_t youngest = SVN_INVALID_REVNUM;
> - svn_opt_revision_t rev;
> -
> - if (path == NULL)
> - {
> - JNIUtil::throwNullPointerException("path");
> - return NULL;
> - }
> -
> - svn_client_ctx_t *ctx = getContext(NULL);
> - if (ctx == NULL)
> - {
> - return NULL;
> - }
> -
> -
> - rev.kind = svn_opt_revision_unspecified;
> - statusBaton.pool = requestPool.pool();
> - Path intPath(path);
> - svn_error_t *Err = intPath.error_occured();
> - if (Err != NULL)
> - {
> - JNIUtil::handleSVNError(Err);
> - return NULL;
> - }
> -
> - Err = svn_client_status2(&youngest, intPath.c_str(), &rev,
> - statusReceiver, &statusBaton,
> - FALSE, // DESCEND
> - TRUE, // get_All
> - onServer ? TRUE : FALSE, //update
> - FALSE, //no_ignore,
> - FALSE, // ignore externals
> - ctx,
> - requestPool.pool());
> - if (Err == NULL)
> - {
> - int size = statusBaton.statusVect.size();
> - if (size == 0)
> - return NULL;
> -
> - // when svn_client_status is used with a directory, the status of the
> - // directory itself and the status of all its direct children are
> - // returned
> - // we just want the status of the directory (ie the status of the
> - // element with the shortest path)
> - int j = 0;
> - for (int i = 0; i < size; i++)
> - {
> - if (strlen(statusBaton.statusVect[i].path) <
> - strlen(statusBaton.statusVect[j].path))
> - j = i;
> - }
> -
> - jobject jStatus = createJavaStatus(statusBaton.statusVect[j].path,
> - statusBaton.statusVect[j].status);
> -
> - return jStatus;
> - }
> - else
> - {
> - JNIUtil::handleSVNError(Err);
> - return NULL;
> - }
> -}
...
> --- trunk/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNClient.java (original)
> +++ trunk/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNClient.java Tue Mar 20 07:57:28 2007
> @@ -270,8 +270,11 @@
> * @param onServer Request status information from the server.
> * @return the subversion status of the file.
> */
> - public native Status singleStatus(String path, boolean onServer)
> - throws ClientException;
> + public Status singleStatus(String path, boolean onServer)
> + throws ClientException
> + {
> + return status(path, false, onServer, true, false, false)[0];
> + }
...
- application/pgp-signature attachment: stored
Received on Tue Mar 20 19:47:24 2007