Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)

63338: Merged BRANCHES/DEV/KEVINR to HEAD-BUG-FIX
      63337: Fix bug in SolrJSONResultSet where 'lastIndexedTx' is not always reported in JSON returned from SOLR but it is assumed to be mandatory.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@64283 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2014-03-14 16:11:01 +00:00
parent 3969c10fee
commit 96f5e5815d

View File

@@ -37,6 +37,8 @@ import org.alfresco.service.cmr.search.ResultSetMetaData;
import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.cmr.search.ResultSetRow;
import org.alfresco.service.cmr.search.SearchParameters; import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.util.Pair; import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
@@ -46,6 +48,8 @@ import org.json.JSONObject;
*/ */
public class SolrJSONResultSet implements ResultSet public class SolrJSONResultSet implements ResultSet
{ {
private static final Log logger = LogFactory.getLog(SolrJSONResultSet.class);
private NodeService nodeService; private NodeService nodeService;
private ArrayList<Pair<Long, Float>> page; private ArrayList<Pair<Long, Float>> page;
@@ -91,13 +95,15 @@ public class SolrJSONResultSet implements ResultSet
numberFound = response.getLong("numFound"); numberFound = response.getLong("numFound");
start = response.getLong("start"); start = response.getLong("start");
maxScore = Float.valueOf(response.getString("maxScore")); maxScore = Float.valueOf(response.getString("maxScore"));
lastIndexedTxId = json.getLong("lastIndexedTx"); if (json.has("lastIndexedTx"))
{
lastIndexedTxId = json.getLong("lastIndexedTx");
}
JSONArray docs = response.getJSONArray("docs"); JSONArray docs = response.getJSONArray("docs");
int numDocs = docs.length(); int numDocs = docs.length();
ArrayList<Long> rawDbids = new ArrayList<Long>(numDocs); ArrayList<Long> rawDbids = new ArrayList<Long>(numDocs);
ArrayList<Float> rawScores = new ArrayList<Float>(numDocs); ArrayList<Float> rawScores = new ArrayList<Float>(numDocs);
for(int i = 0; i < numDocs; i++) for(int i = 0; i < numDocs; i++)
@@ -161,7 +167,7 @@ public class SolrJSONResultSet implements ResultSet
} }
catch (JSONException e) catch (JSONException e)
{ {
logger.info(e.getMessage());
} }
// We'll say we were unlimited if we got a number less than the limit // We'll say we were unlimited if we got a number less than the limit
this.resultSetMetaData = new SimpleResultSetMetaData( this.resultSetMetaData = new SimpleResultSetMetaData(