Fixes tests - adds adds null pointer check.
diff --git a/src/org/waveprotocol/box/server/waveserver/AbstractSearchProviderImpl.java b/src/org/waveprotocol/box/server/waveserver/AbstractSearchProviderImpl.java
index e026a81..b5e81ad 100644
--- a/src/org/waveprotocol/box/server/waveserver/AbstractSearchProviderImpl.java
+++ b/src/org/waveprotocol/box/server/waveserver/AbstractSearchProviderImpl.java
@@ -20,6 +20,7 @@
package org.waveprotocol.box.server.waveserver;
import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -139,6 +140,7 @@
protected boolean isWaveletMatchesCriteria(ReadableWaveletData wavelet, ParticipantId user,
ParticipantId sharedDomainParticipantId, boolean isAllQuery)
throws WaveletStateException {
+ Preconditions.checkNotNull(wavelet);
// If it is user data wavelet for the user - return true.
if (IdUtil.isUserDataWavelet(wavelet.getWaveletId()) && wavelet.getCreator().equals(user)) {
return true;
@@ -158,7 +160,7 @@
// explicit or implicit participant and therefore has access permission.
return true;
}
-
+
/**
* Ensures that each wave in the current waves view has the user data wavelet by always adding
* it to the view.
diff --git a/src/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImpl.java b/src/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImpl.java
index d0104b6..9884daf 100644
--- a/src/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImpl.java
+++ b/src/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImpl.java
@@ -20,6 +20,7 @@
package org.waveprotocol.box.server.waveserver;
import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Lists;
import com.google.inject.Inject;
@@ -97,7 +98,7 @@
createWavesViewToFilter(user, isAllQuery);
Function<ReadableWaveletData, Boolean> filterWaveletsFunction =
createFilterWaveletsFunction(user, isAllQuery, withParticipantIds, creatorParticipantIds);
-
+
ensureWavesHaveUserDataWavelet(currentUserWavesView, user);
List<WaveViewData> results =
@@ -142,7 +143,8 @@
@Override
public Boolean apply(ReadableWaveletData wavelet) {
try {
- return isWaveletMatchesCriteria(wavelet, user, sharedDomainParticipantId,
+ return wavelet != null
+ && isWaveletMatchesCriteria(wavelet, user, sharedDomainParticipantId,
withParticipantIds, creatorParticipantIds, isAllQuery);
} catch (WaveletStateException e) {
LOG.warning(
@@ -169,6 +171,7 @@
protected boolean isWaveletMatchesCriteria(ReadableWaveletData wavelet, ParticipantId user,
ParticipantId sharedDomainParticipantId, List<ParticipantId> withList,
List<ParticipantId> creatorList, boolean isAllQuery) throws WaveletStateException {
+ Preconditions.checkNotNull(wavelet);
// Filter by creator. This is the fastest check so we perform it first.
for (ParticipantId creator : creatorList) {
if (!creator.equals(wavelet.getCreator())) {