Author: vmpn
Date: Mon Jun 25 01:25:18 2012
New Revision: 1353377

URL: http://svn.apache.org/viewvc?rev=1353377&view=rev
Log:
On the javahl-ra branch:

Pass timestamp (nano seconds) rather than date (milli seconds) to avoid
precison loss (issue #2359)

[ in subversion/bindings/javahl/native ]

* org_apache_subversion_javahl_ra_SVNRa.cpp
  (Java_org_apache_subversion_javahl_ra_SVNRa_getUUID): New

* SVNRa.h,
  SVNRa.cpp
  (getUUID): New

[ in subversion/bindings/javahl/src/org/apache/subversion/javahl/ra ]

* ISVNRa.java,
  SVNRa.java
  (getUUID): New

[ in subversion/bindings/javahl/tests/org/apache/subversion/javahl ]

* SVNRATests.java
  (testGetUUID): New test for getUUID()

Modified:
    subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp
    subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h
    
subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp
    
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java
    
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java
    
subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java

Modified: 
subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp?rev=1353377&r1=1353376&r2=1353377&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp 
(original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp 
Mon Jun 25 01:25:18 2012
@@ -89,6 +89,21 @@ SVNRa::getLatestRevision()
   return rev;
 }
 
+jstring
+SVNRa::getUUID()
+{
+  SVN::Pool subPool(pool);
+  const char * uuid;
+
+  SVN_JNI_ERR(svn_ra_get_uuid2(m_session, &uuid, subPool.getPool()), NULL);
+
+  jstring juuid = JNIUtil::makeJString(uuid);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  return juuid;
+}
+
 void
 SVNRa::dispose(jobject jthis)
 {

Modified: 
subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h?rev=1353377&r1=1353376&r2=1353377&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h 
(original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h Mon 
Jun 25 01:25:18 2012
@@ -24,6 +24,7 @@ class SVNRa: public SVNBase
     ~SVNRa();
 
     jlong getLatestRevision();
+    jstring getUUID();
 
     svn_revnum_t getDatedRev(jlong timestamp);
     jobject getLocks(jstring jpath, jobject jdepth);

Modified: 
subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp?rev=1353377&r1=1353376&r2=1353377&view=diff
==============================================================================
--- 
subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp
 (original)
+++ 
subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp
 Mon Jun 25 01:25:18 2012
@@ -38,6 +38,17 @@ Java_org_apache_subversion_javahl_ra_SVN
   return ras->getLatestRevision();
 }
 
+JNIEXPORT jstring JNICALL
+Java_org_apache_subversion_javahl_ra_SVNRa_getUUID
+(JNIEnv *env, jobject jthis)
+{
+  JNIEntry(SVNRa, getUUID);
+  SVNRa *ras = SVNRa::getCppObject(jthis);
+  CPPADDR_NULL_PTR(ras, NULL);
+
+  return ras->getUUID();
+}
+
 JNIEXPORT jlong JNICALL
 Java_org_apache_subversion_javahl_ra_SVNRa_getDatedRevision
 (JNIEnv *env, jobject jthis, jlong timestamp)

Modified: 
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java?rev=1353377&r1=1353376&r2=1353377&view=diff
==============================================================================
--- 
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java
 (original)
+++ 
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java
 Mon Jun 25 01:25:18 2012
@@ -47,7 +47,12 @@ public interface ISVNRa
      * @return latest revision
      */
     public long getLatestRevision();
-
+    
+    /**
+     * @return repository UUID
+     */
+    public String getUUID();
+    
     /**
      * @param date
      *            The date

Modified: 
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java?rev=1353377&r1=1353376&r2=1353377&view=diff
==============================================================================
--- 
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java
 (original)
+++ 
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java
 Mon Jun 25 01:25:18 2012
@@ -40,7 +40,10 @@ public class SVNRa extends JNIObject imp
 {
     @Override
     public native long getLatestRevision();
-
+    
+    @Override
+    public native String getUUID();
+    
     public native long getDatedRevision(long timestamp) throws 
SubversionException;
 
     public long getDatedRevision(Date date) throws SubversionException

Modified: 
subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java?rev=1353377&r1=1353376&r2=1353377&view=diff
==============================================================================
--- 
subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java
 (original)
+++ 
subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java
 Mon Jun 25 01:25:18 2012
@@ -140,4 +140,16 @@ public class SVNRATests extends SVNTests
 
         assertEquals(1, session.getLatestRevision());
     }
+
+    public void testGetUUID() throws Exception
+    {
+        ISVNRa session = getSession();
+
+        /*
+         * Test UUID
+         * TODO: Test for actual UUID once test dump file has
+         * fixed UUID
+         */
+        assertNotNull(session.getUUID());
+    }
 }


Reply via email to