You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2017/09/28 14:24:53 UTC
svn commit: r1810005 - in /jackrabbit/branches/2.12: ./
jackrabbit-jcr-server/
jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/
jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/webdav/jcr/observation/
Author: reschke
Date: Thu Sep 28 14:24:53 2017
New Revision: 1810005
URL: http://svn.apache.org/viewvc?rev=1810005&view=rev
Log:
JCR-4173: Unable to receive observation events when connecting via DavEx (ported to 2.12)
make sure we do not produce broken XML, add a minimal test case
Added:
jackrabbit/branches/2.12/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/webdav/jcr/observation/
- copied from r1807244, jackrabbit/trunk/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/webdav/jcr/observation/
Modified:
jackrabbit/branches/2.12/ (props changed)
jackrabbit/branches/2.12/jackrabbit-jcr-server/pom.xml
jackrabbit/branches/2.12/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java
Propchange: jackrabbit/branches/2.12/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 28 14:24:53 2017
@@ -1,3 +1,3 @@
/jackrabbit/branches/JCR-2272:1173165-1176545
/jackrabbit/sandbox/JCR-2415-lucene-3.0:1060860-1064038
-/jackrabbit/trunk:1732436,1751279,1752165,1753226,1758600,1759607,1759782,1759865,1761679,1761909,1762422,1763558,1766398,1768684,1771078,1771741,1771939,1771999,1772049,1772299,1772343,1772444,1772457,1772530,1772544,1772597,1772822,1773579,1773591,1773745,1774021,1774443,1775123,1775132,1775315,1775384,1775414,1775419,1775437,1775444,1775463,1775472-1775473,1775481,1775485,1775496,1775509,1775514,1775613,1775617,1775621,1775624,1775629,1775631-1775632,1775634-1775635,1775637,1775657,1776410,1776414,1776416-1776417,1776421,1776907,1776911-1776912,1776914,1776918,1779166,1779460,1779632,1780208,1786325,1787043,1787381,1792100,1792105,1792113,1792193,1793315,1793323,1793327,1793332,1796980,1797209,1797917,1798586,1799429,1807234
+/jackrabbit/trunk:1732436,1751279,1752165,1753226,1758600,1759607,1759782,1759865,1761679,1761909,1762422,1763558,1766398,1768684,1771078,1771741,1771939,1771999,1772049,1772299,1772343,1772444,1772457,1772530,1772544,1772597,1772822,1773579,1773591,1773745,1774021,1774443,1775123,1775132,1775315,1775384,1775414,1775419,1775437,1775444,1775463,1775472-1775473,1775481,1775485,1775496,1775509,1775514,1775613,1775617,1775621,1775624,1775629,1775631-1775632,1775634-1775635,1775637,1775657,1776410,1776414,1776416-1776417,1776421,1776907,1776911-1776912,1776914,1776918,1779166,1779460,1779632,1780208,1786325,1787043,1787381,1792100,1792105,1792113,1792193,1793315,1793323,1793327,1793332,1796980,1797209,1797917,1798586,1799429,1807234,1807244
Modified: jackrabbit/branches/2.12/jackrabbit-jcr-server/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.12/jackrabbit-jcr-server/pom.xml?rev=1810005&r1=1810004&r2=1810005&view=diff
==============================================================================
--- jackrabbit/branches/2.12/jackrabbit-jcr-server/pom.xml (original)
+++ jackrabbit/branches/2.12/jackrabbit-jcr-server/pom.xml Thu Sep 28 14:24:53 2017
@@ -256,6 +256,11 @@
<artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
Modified: jackrabbit/branches/2.12/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.12/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java?rev=1810005&r1=1810004&r2=1810005&view=diff
==============================================================================
--- jackrabbit/branches/2.12/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java (original)
+++ jackrabbit/branches/2.12/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java Thu Sep 28 14:24:53 2017
@@ -535,18 +535,8 @@ public class SubscriptionImpl implements
log.error("Internal error while retrieving event identifier. {}", e.getMessage());
}
// info
- Element info = DomUtil.addChildElement(eventElem, XML_EVENTINFO, NAMESPACE);
try {
- Map<?, ?> m = event.getInfo();
- for (Map.Entry<?, ?> entry : m.entrySet()) {
- String key = entry.getKey().toString();
- Object value = entry.getValue();
- if (value != null) {
- DomUtil.addChildElement(info, key, Namespace.EMPTY_NAMESPACE, value.toString());
- } else {
- DomUtil.addChildElement(info, key, Namespace.EMPTY_NAMESPACE);
- }
- }
+ serializeInfoMap(eventElem, session, event.getInfo());
} catch (RepositoryException e) {
log.error("Internal error while retrieving event info. {}", e.getMessage());
}
@@ -555,6 +545,33 @@ public class SubscriptionImpl implements
}
}
+ protected static void serializeInfoMap(Element eventElem, Session session, Map<?, ?> map) {
+ // info
+ Element info = DomUtil.addChildElement(eventElem, XML_EVENTINFO, NAMESPACE);
+ Map<?, ?> m = map;
+ for (Map.Entry<?, ?> entry : m.entrySet()) {
+ try {
+ String key = entry.getKey().toString();
+ Namespace ns = Namespace.EMPTY_NAMESPACE;
+ int colon = key.indexOf(':');
+ if (colon >= 0) {
+ String prefix = key.substring(0, colon);
+ String localname = key.substring(colon + 1);
+ ns = Namespace.getNamespace(prefix, session.getNamespaceURI(prefix));
+ key = localname;
+ }
+ Object value = entry.getValue();
+ if (value != null) {
+ DomUtil.addChildElement(info, key, ns, value.toString());
+ } else {
+ DomUtil.addChildElement(info, key, ns);
+ }
+ } catch (RepositoryException nse) {
+ log.error("Internal error while getting namespaceUri, info map field skipped for {}", entry.getKey());
+ }
+ }
+ }
+
//----------------------------< TransactionEvent >------------------------
/**