QPID-8394: [Broker-J][WMC] Fix message table
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/MessageStore.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/MessageStore.js
index 166ac15..fbb9860 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/MessageStore.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/MessageStore.js
@@ -56,7 +56,7 @@
}
if (kwArgs && kwArgs.hasOwnProperty("end"))
{
- query.last = kwArgs.end;
+ query.last = kwArgs.end - 1;
}
var headers = lang.mixin({Accept: "application/javascript, application/json"}, kwArgs.headers);
var messages = this.management.invoke(modelObj, query, {headers: headers}, true);
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/StoreUpdater.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/StoreUpdater.js
index c313dcb..33a09af 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/StoreUpdater.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/StoreUpdater.js
@@ -60,16 +60,26 @@
_currentResultsIdToIndexMap: null,
_updating: false,
_fetchRangeCapturedArguments: null,
+ _inProgressfetchRange: null,
+ _inProgressfetch: null,
fetch: function ()
{
- var queryResults = this.inherited(arguments);
+ if (this._inProgressfetch === null || this._inProgressfetch === undefined)
+ {
+ this._inProgressfetch = this.inherited(arguments);
+ }
this._captureResults(queryResults, "fetch");
return queryResults;
},
fetchRange: function (args)
{
- var queryResults = this.inherited(arguments);
+ if (this._inProgressfetchRange === null || this._inProgressfetchRange === undefined)
+ {
+ this._inProgressfetchRange = this.inherited(arguments);
+ }
+ var queryResults = this._inProgressfetchRange;
+
this._captureResults(queryResults, "fetchRange", args);
return queryResults;
},
@@ -94,7 +104,14 @@
{
var handler = lang.hitch(this, function (data)
{
- this._processResults(data, methodName, args);
+ try
+ {
+ this._processResults(data, methodName, args);
+ }
+ finally
+ {
+ this["_inProgress" + methodName ] = null;
+ }
if (!data.hasOwnProperty("results"))
{
this.emit("unexpected", data);
@@ -143,8 +160,8 @@
for (var i = currentResults.length - 1; i >= 0; i--)
{
var currentResult = currentResults[i];
- var id = currentResult[idProperty];
- var newResultIndex = newResultsIdToIndexMap[id];
+ var currentId = currentResult[idProperty];
+ var newResultIndex = newResultsIdToIndexMap[currentId];
if (newResultIndex === undefined)
{
this._pushChange("delete", currentResult, offset + i, offset + i, total);
@@ -153,7 +170,7 @@
idProperty,
this._currentResultsIdToIndexMap,
i);
- delete this._currentResultsIdToIndexMap[id];
+ delete this._currentResultsIdToIndexMap[currentId];
}
}
@@ -174,11 +191,11 @@
}
else
{
- var currentResult = currentResults[previousIndex];
+ var current = currentResults[previousIndex];
if (previousIndex === j)
{
currentResults[j] = newResult;
- if (!util.equals(newResult, currentResult))
+ if (!util.equals(newResult, current))
{
this._pushChange("update", newResult, offset + j, previousIndex + offset, total);
}
@@ -187,7 +204,7 @@
{
this._pushChange("update", newResult, offset + j, previousIndex + offset, total);
currentResults.splice(previousIndex, 1);
- currentResults.splice(j, 0, currentResult);
+ currentResults.splice(j, 0, current);
updateIdToIndexMap(currentResults,
idProperty,
this._currentResultsIdToIndexMap,
@@ -198,9 +215,9 @@
}
else
{
- for (var j = 0; j < newResults.length; j++)
+ for (var k = 0; k < newResults.length; k++)
{
- this._pushChange("add", newResults[j], offset + j, -1, total);
+ this._pushChange("add", newResults[k], offset + k, -1, total);
}
}