Skip to content

Commit 0ce0235

Browse files
committed
Storing only local ids as a quick fix for RSM on recent-items query.
Updated version to 0.13.
1 parent f2eab0b commit 0ce0235

5 files changed

Lines changed: 21 additions & 7 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>org.buddycloud</groupId>
55
<artifactId>channelserver</artifactId>
66
<packaging>jar</packaging>
7-
<version>0.12.0-search</version>
7+
<version>0.13</version>
88
<name>Buddycloud Java Server</name>
99
<scm>
1010
<url>https://github.com/buddycloud/buddycloud-server-java</url>

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/result/ItemsResult.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.buddycloud.channelserver.packetprocessor.iq.namespace.pubsub.PubSubElementProcessorAbstract;
1111
import org.buddycloud.channelserver.pubsub.affiliation.Affiliations;
1212
import org.buddycloud.channelserver.pubsub.model.NodeSubscription;
13+
import org.buddycloud.channelserver.pubsub.model.impl.GlobalItemIDImpl;
1314
import org.buddycloud.channelserver.pubsub.model.impl.NodeItemImpl;
1415
import org.buddycloud.channelserver.pubsub.model.impl.NodeSubscriptionImpl;
1516
import org.buddycloud.channelserver.pubsub.subscription.Subscriptions;
@@ -124,7 +125,8 @@ private void processPublishedItem(Element item) throws NodeStoreException {
124125
}
125126
Date updatedDate = Conf.parseDate(entry.elementText("updated"));
126127
NodeItemImpl nodeItem = new NodeItemImpl(node,
127-
entry.elementText("id"), updatedDate, entry.asXML(), inReplyTo);
128+
GlobalItemIDImpl.toLocalId(entry.elementText("id")),
129+
updatedDate, entry.asXML(), inReplyTo);
128130
try {
129131
channelManager
130132
.deleteNodeItemById(node, entry.elementText("id"));

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/PublishSet.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.buddycloud.channelserver.pubsub.model.NodeAffiliation;
1717
import org.buddycloud.channelserver.pubsub.model.NodeItem;
1818
import org.buddycloud.channelserver.pubsub.model.NodeSubscription;
19+
import org.buddycloud.channelserver.pubsub.model.impl.GlobalItemIDImpl;
1920
import org.buddycloud.channelserver.pubsub.model.impl.NodeItemImpl;
2021
import org.buddycloud.channelserver.pubsub.subscription.Subscriptions;
2122
import org.dom4j.Element;
@@ -151,9 +152,7 @@ private boolean extractItemDetails(Element item) throws InterruptedException {
151152
entry = vEntry.createBcCompatible(publishersJID.toBareJID(),
152153
requestIq.getTo().toBareJID(), node);
153154

154-
id = entry.element("id").getText();
155-
String[] idParts = id.split(",");
156-
id = idParts[2];
155+
id = GlobalItemIDImpl.toLocalId(entry.element("id").getText());
157156

158157
String updatedText = entry.elementText("updated");
159158

src/main/java/org/buddycloud/channelserver/packetprocessor/message/event/ItemsProcessor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.buddycloud.channelserver.channel.Conf;
1010
import org.buddycloud.channelserver.db.exception.ItemNotFoundException;
1111
import org.buddycloud.channelserver.db.exception.NodeStoreException;
12+
import org.buddycloud.channelserver.pubsub.model.impl.GlobalItemIDImpl;
1213
import org.buddycloud.channelserver.pubsub.model.impl.NodeItemImpl;
1314
import org.dom4j.Element;
1415
import org.xmpp.packet.Message;
@@ -66,8 +67,8 @@ private void handleNewItem(Element entry) throws NodeStoreException {
6667
Date updatedDate = Conf.parseDate(entry.elementText("updated"));
6768
deleteItem(entry.elementText("id"));
6869
NodeItemImpl nodeItem = new NodeItemImpl(node,
69-
entry.elementText("id"), updatedDate, entry.asXML(),
70-
inReplyTo);
70+
GlobalItemIDImpl.toLocalId(entry.elementText("id")),
71+
updatedDate, entry.asXML(), inReplyTo);
7172
channelManager.addNodeItem(nodeItem);
7273
} catch (IllegalArgumentException e) {
7374
logger.error(e);

src/main/java/org/buddycloud/channelserver/pubsub/model/impl/GlobalItemIDImpl.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,18 @@ public static GlobalItemID fromBuddycloudString(String itemId) {
9797
return new GlobalItemIDImpl(null, splittedItemId[0], splittedItemId[1]);
9898
}
9999

100+
public static String toLocalId(String itemId) {
101+
if (itemId == null) {
102+
return null;
103+
}
104+
String[] splittedItemId = itemId.split(",");
105+
if (splittedItemId.length == 1) {
106+
// Already a local id
107+
return itemId;
108+
}
109+
return fromBuddycloudString(itemId).getItemID();
110+
}
111+
100112
@Override
101113
public int hashCode() {
102114
final int prime = 31;

0 commit comments

Comments
 (0)