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();