Skip to content

Commit 53cb9bd

Browse files
committed
Recovering from corrupt files
1 parent f5a0e20 commit 53cb9bd

File tree

2 files changed

+3
-21
lines changed

2 files changed

+3
-21
lines changed

src/main/java/org/buddycloud/channelserver/db/jdbc/dialect/Sql92NodeStoreDialect.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,14 @@ public class Sql92NodeStoreDialect implements NodeStoreSQLDialect {
107107
+ " FROM \"items\" WHERE \"node\" = ? AND \"id\" = ?";
108108

109109
private static final String SELECT_ITEMS_FOR_NODE = "SELECT \"node\", \"id\", \"updated\", \"xml\", \"in_reply_to\", \"created\""
110-
+ " FROM \"items\" WHERE \"node\" = ? ORDER BY \"updated\" DESC, \"id\" ASC";
110+
+ " FROM \"items\" WHERE \"node\" = ? %parentOnly% ORDER BY \"updated\" DESC, \"id\" ASC";
111111

112112
private static final String SELECT_ITEMS_FOR_NODE_AFTER_DATE = "SELECT \"node\", \"id\", \"updated\", \"xml\", \"in_reply_to\", \"created\""
113113
+ " FROM \"items\" WHERE \"node\" = ? AND ( \"updated\" > ? OR ( \"updated\" = ? AND \"id\" > ? ) )"
114114
+ " ORDER BY \"updated\" ASC, \"id\" DESC";
115115

116116
private static final String SELECT_ITEMS_FOR_NODE_BEFORE_DATE = "SELECT \"node\", \"id\", \"updated\", \"xml\", \"in_reply_to\", \"created\""
117-
+ " FROM \"items\" WHERE \"node\" = ? AND ( \"updated\" < ? OR ( \"updated\" = ? AND \"id\" < ? ) )"
117+
+ " FROM \"items\" WHERE \"node\" = ? AND ( \"updated\" < ? OR ( \"updated\" = ? AND \"id\" < ? ) ) %parentOnly%"
118118
+ " ORDER BY \"updated\" DESC, \"id\" ASC";
119119

120120
private static final String SELECT_ITEMS_FOR_USER_BETWEEN_DATES = "" + "SELECT \"node\", \"id\", \"updated\", \"xml\", \"in_reply_to\", \"created\""

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/get/items/NodeItemsGetTest.java

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,6 @@ public void nodeStoreExceptionReturnsInternalServerErrorStanza()
161161
public void testSubscriptionIncompatibleWithItemRetrievalReturnsExpectedStanza()
162162
throws Exception {
163163

164-
element.addAttribute("node", node);
165-
166164
Mockito.when(channelManager.nodeExists(node)).thenReturn(true);
167165
Mockito.when(channelManager.getNodeMembership(node, jid)).thenReturn(
168166
new NodeMembershipImpl(node, jid, Subscriptions.none,
@@ -197,8 +195,6 @@ public void testStandardNodeWithNoItemsReturnsNoItems() throws Exception {
197195

198196
AccessModels accessModel = AccessModels.authorize;
199197

200-
element.addAttribute("node", node);
201-
202198
NodeMembershipImpl membership = Mockito.mock(NodeMembershipImpl.class);
203199
Mockito.when(membership.getAffiliation()).thenReturn(
204200
Affiliations.member);
@@ -238,8 +234,6 @@ public void testUnparsableNodeEntryIsIgnoredInItemsResponse()
238234
throws Exception {
239235
AccessModels accessModel = AccessModels.authorize;
240236

241-
element.addAttribute("node", node);
242-
243237
NodeMembershipImpl membership = Mockito.mock(NodeMembershipImpl.class);
244238
Mockito.when(membership.getAffiliation()).thenReturn(
245239
Affiliations.member);
@@ -347,8 +341,6 @@ public void testPagingAfterItem() throws Exception {
347341
rsm.addElement("after").setText(
348342
"tag:denmark.lit,/user/" + node + "/posts,item-id");
349343

350-
element.addAttribute("node", node);
351-
352344
Mockito.when(channelManager.nodeExists(anyString())).thenReturn(true);
353345

354346
NodeMembershipImpl membership = Mockito.mock(NodeMembershipImpl.class);
@@ -372,8 +364,6 @@ public void pagingAfterItemWithPlainNodeID() throws Exception {
372364

373365
rsm.addElement("after").setText("item-id");
374366

375-
element.addAttribute("node", node);
376-
377367
Mockito.when(channelManager.nodeExists(anyString())).thenReturn(true);
378368

379369
itemsGet.process(element, jid, request, rsm);
@@ -423,9 +413,6 @@ public void canRetrieveSingleItem() throws Exception {
423413
String id = "12345";
424414
String payload = "<entry>entry text</entry>";
425415

426-
element.addAttribute("node", node);
427-
element.addElement("item").addAttribute("id", id);
428-
429416
Mockito.when(channelManager.nodeExists(Mockito.anyString()))
430417
.thenReturn(true);
431418

@@ -460,8 +447,6 @@ public void settingParentOnlyToTrueRequestsParentOnlyItems() throws Exception {
460447

461448
AccessModels accessModel = AccessModels.authorize;
462449

463-
element.addAttribute("node", node);
464-
465450
NodeMembershipImpl membership = Mockito.mock(NodeMembershipImpl.class);
466451
Mockito.when(membership.getAffiliation()).thenReturn(
467452
Affiliations.member);
@@ -508,8 +493,6 @@ public void settingParentOnlyToOneRequestsParentOnlyItems() throws Exception {
508493

509494
AccessModels accessModel = AccessModels.authorize;
510495

511-
element.addAttribute("node", node);
512-
513496
NodeMembershipImpl membership = Mockito.mock(NodeMembershipImpl.class);
514497
Mockito.when(membership.getAffiliation()).thenReturn(
515498
Affiliations.member);
@@ -556,8 +539,6 @@ public void settingIllegalParentOnlyAttributeDoesNotRequestParentOnlyItems() thr
556539

557540
AccessModels accessModel = AccessModels.authorize;
558541

559-
element.addAttribute("node", node);
560-
561542
NodeMembershipImpl membership = Mockito.mock(NodeMembershipImpl.class);
562543
Mockito.when(membership.getAffiliation()).thenReturn(
563544
Affiliations.member);
@@ -599,3 +580,4 @@ public void settingIllegalParentOnlyAttributeDoesNotRequestParentOnlyItems() thr
599580
.nodeCount());
600581
}
601582
}
583+

0 commit comments

Comments
 (0)