You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/11/21 09:24:44 UTC

svn commit: r1544064 - in /subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl: ./ native/org_apache_subversion_javahl_util_SubstLib.cpp tests/org/apache/subversion/javahl/UtilTests.java

Author: brane
Date: Thu Nov 21 08:24:43 2013
New Revision: 1544064

URL: http://svn.apache.org/r1544064
Log:
On the javahl-1.8-extensions branch: Sync JavaHL with trunk to r1544060.

Modified:
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/   (props changed)
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.cpp
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java

Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/
------------------------------------------------------------------------------
  Merged /subversion/trunk/subversion/bindings/javahl:r1543992-1544060

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.cpp?rev=1544064&r1=1544063&r2=1544064&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.cpp (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.cpp Thu Nov 21 08:24:43 2013
@@ -91,8 +91,10 @@ public:
 
   void operator()(const std::string& key, const Java::ByteArray& value)
     {
+      const char* const safe_key =
+        apr_pstrmemdup(m_pool.getPool(), key.c_str(), key.size() + 1);
       Java::ByteArray::Contents val(value);
-      apr_hash_set(m_hash, key.c_str(), key.size(), val.get_string(m_pool));
+      apr_hash_set(m_hash, safe_key, key.size(), val.get_string(m_pool));
     }
 
   apr_hash_t* get() const

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java?rev=1544064&r1=1544063&r2=1544064&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java Thu Nov 21 08:24:43 2013
@@ -399,16 +399,19 @@ public class UtilTests extends SVNTests
 
     public void testBuildKeywords() throws Throwable
     {
-        final byte[] kwval = "TEST=%H%_%b%_%u".getBytes();
+        final byte[] kwval = "Id TEST=%H%_%b%_%u".getBytes();
 
         Map<String, byte[]> result;
 
         result = SVNUtil.buildKeywords(kwval, Revision.SVN_INVALID_REVNUM,
                                        null, null, null, null);
+        assertEquals("   ", new String(result.get("Id")));
         assertEquals("     ", new String(result.get("TEST")));
 
         result = SVNUtil.buildKeywords(kwval, 42, "http://a/b/c",
                                        "http://a", new Date(1), "X");
+        assertEquals("c 42 1970-01-01 00:00:00Z X",
+                     new String(result.get("Id")));
         assertEquals("b/c 42 1970-01-01 00:00:00Z X c http://a/b/c",
                      new String(result.get("TEST")));
     }
@@ -436,7 +439,8 @@ public class UtilTests extends SVNTests
             testin.close();
             testin = null;
 
-            assertEquals(new String(contentsExpanded),
+            assertEquals("expand InputStream with concrete keywords",
+                         new String(contentsExpanded),
                          new String(buffer, 0, size));
         } finally {
             if (testin != null) {
@@ -455,7 +459,8 @@ public class UtilTests extends SVNTests
             testin.close();
             testin = null;
 
-            assertEquals(new String(contentsExpanded),
+            assertEquals("expand InputStream with implied keywords",
+                         new String(contentsExpanded),
                          new String(buffer, 0, size));
         } finally {
             if (testin != null) {
@@ -473,7 +478,8 @@ public class UtilTests extends SVNTests
             testin.close();
             testin = null;
 
-            assertEquals(new String(contentsContracted),
+            assertEquals("contract InputStream with concrete keywords",
+                         new String(contentsContracted),
                          new String(buffer, 0, size));
         } finally {
             if (testin != null) {
@@ -492,7 +498,8 @@ public class UtilTests extends SVNTests
             testin.close();
             testin = null;
 
-            assertEquals(new String(contentsContracted),
+            assertEquals("contract InputStream with implied keywords",
+                         new String(contentsContracted),
                          new String(buffer, 0, size));
         } finally {
             if (testin != null) {
@@ -512,7 +519,8 @@ public class UtilTests extends SVNTests
             testout.close();
             testout = null;
 
-            assertEquals(new String(contentsExpanded), result.toString());
+            assertEquals("expand OutputStream with concrete keywords",
+                         new String(contentsExpanded), result.toString());
         } finally {
             if (testout != null) {
                 testout.close();
@@ -530,7 +538,8 @@ public class UtilTests extends SVNTests
             testout.close();
             testout = null;
 
-            assertEquals(new String(contentsExpanded), result.toString());
+            assertEquals("expand OutputStream with implied keywords",
+                         new String(contentsExpanded), result.toString());
         } finally {
             if (testout != null) {
                 testout.close();
@@ -547,7 +556,8 @@ public class UtilTests extends SVNTests
             testout.close();
             testout = null;
 
-            assertEquals(new String(contentsContracted), result.toString());
+            assertEquals("contract OutputStream with concrete keywords",
+                         new String(contentsContracted), result.toString());
         } finally {
             if (testout != null) {
                 testout.close();
@@ -565,7 +575,8 @@ public class UtilTests extends SVNTests
             testout.close();
             testout = null;
 
-            assertEquals(new String(contentsContracted), result.toString());
+            assertEquals("contract OutputStream with implied keywords",
+                         new String(contentsContracted), result.toString());
         } finally {
             if (testout != null) {
                 testout.close();