Repository: qpid-broker-j
Updated Branches:
  refs/heads/master 857720328 -> 5d97850ba


QPID-7772: [Java Broker] Prevent unintentional sharing of statistic 
value/previous value stores between sibling objects

Also fixed display of data values within the 
msgBytePairPointInTimeStatisticsGrid


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/5d97850b
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/5d97850b
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/5d97850b

Branch: refs/heads/master
Commit: 5d97850ba3a048c3c6aa5a751827426f69af19ba
Parents: 8577203
Author: Keith Wall <[email protected]>
Authored: Mon Sep 18 14:37:12 2017 +0100
Committer: Keith Wall <[email protected]>
Committed: Mon Sep 18 16:09:09 2017 +0100

----------------------------------------------------------------------
 .../resources/js/qpid/common/StatisticsWidget.js | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5d97850b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/StatisticsWidget.js
----------------------------------------------------------------------
diff --git 
a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/StatisticsWidget.js
 
b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/StatisticsWidget.js
index 3f6fc74..44dc127 100644
--- 
a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/StatisticsWidget.js
+++ 
b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/StatisticsWidget.js
@@ -131,7 +131,7 @@ define(["dojox/lang/functional/object",
                     };
 
                     this._msgBytePairCumulativeStatisticsGrid =
-                        new Grid(lang.mixin(gridProps, {
+                        new Grid(lang.mixin(lang.clone(gridProps), {
                             collection: 
this._pairedStatsStore.filter({statisticType : "CUMULATIVE"})
                                                               
.filter(lang.hitch(this, defaultFilter)),
                             columns: [{
@@ -153,7 +153,7 @@ define(["dojox/lang/functional/object",
                         }), this.msgBytePairCumulativeStatisticsGridContainer);
 
                     this._otherCumulativeStatisticsGrid =
-                        new Grid(lang.mixin(gridProps, {
+                        new Grid(lang.mixin(lang.clone(gridProps), {
                             collection: 
this._otherStatsStore.filter({statisticType: "CUMULATIVE"})
                                                              
.filter(lang.hitch(this, defaultFilter)),
                             columns: [{
@@ -169,7 +169,7 @@ define(["dojox/lang/functional/object",
                         }), this.otherCumulativeStatisticsGridContainer);
 
                     this._msgBytePairPointInTimeStatisticsGrid =
-                        new Grid(lang.mixin(gridProps, {
+                        new Grid(lang.mixin(lang.clone(gridProps), {
                             collection: 
this._pairedStatsStore.filter({statisticType : "POINT_IN_TIME"})
                                                               
.filter(lang.hitch(this, defaultFilter)),
                             columns: [{
@@ -177,15 +177,15 @@ define(["dojox/lang/functional/object",
                                 get: lang.hitch(this, function (obj) {return 
obj.msgItem.label})
                             }, {
                                 label: "Message Value",
-                                get: lang.hitch(this, function(obj) {return 
this._formatValue(obj)})
+                                get: lang.hitch(this, function(obj) {return 
this._formatValue(obj.msgItem)})
                             }, {
                                 label: "Byte Value",
-                                get: lang.hitch(this, function(obj) {return 
this._formatValue(obj)})
+                                get: lang.hitch(this, function(obj) {return 
this._formatValue(obj.byteItem)})
                             }]
                         }), 
this.msgBytePairPointInTimeStatisticsGridContainer);
 
                     this._otherPointInTimeStatisticsGrid =
-                        new Grid(lang.mixin(gridProps, {
+                        new Grid(lang.mixin(lang.clone(gridProps), {
                             collection: 
this._otherStatsStore.filter({statisticType: "POINT_IN_TIME"})
                                                              
.filter(lang.hitch(this, defaultFilter)),
                             columns: [{
@@ -385,11 +385,12 @@ define(["dojox/lang/functional/object",
                 {
                     var items = [];
                     fobject.forIn(statItems, function(statItem) {
-                        var item = lang.mixin(statItem,
-                            {id: statItem.name,
+                        var copy = lang.clone(statItem);
+                        var item = lang.mixin(copy,
+                            {id: copy.name,
                                 value: null,
                                 previousValue: null,
-                                defaultItem: 
array.indexOf(this.defaultStatistics, statItem.name) > -1});
+                                defaultItem: 
array.indexOf(this.defaultStatistics, copy.name) > -1});
                         items.push(item);
                     }, this);
                     items.sort(function(x,y) {return ((x.label === y.label) ? 
0 : ((x.label > y.label) ? 1 : -1 ))});


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to