Author: kwall
Date: Sun May 31 21:44:37 2015
New Revision: 1682801
URL: http://svn.apache.org/r1682801
Log:
QPID-6561: [Java Broker] Handle exception from HTML5 FileReader#abort()
Also ensure that KeyStore/TrustStore/AccessControl dialogues abort any in
progress file reading operation
if dialogue is cancelled.
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ResourceWidget.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ResourceWidget.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ResourceWidget.js?rev=1682801&r1=1682800&r2=1682801&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ResourceWidget.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ResourceWidget.js
Sun May 31 21:44:37 2015
@@ -104,6 +104,14 @@ function (declare, array, lang, util, _W
this.uploader.startup();
}
},
+ destroy: function()
+ {
+ if (this.fileReaderSupported && this.fileReader)
+ {
+ util.abortReaderSafely(this.fileReader);
+ }
+ this.inherited(arguments);
+ },
_fileChanged: function (evt)
{
var file = this.uploader.domNode.children[0].files[0];
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js?rev=1682801&r1=1682800&r2=1682801&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
Sun May 31 21:44:37 2015
@@ -729,5 +729,20 @@ define(["dojo/_base/xhr",
util.xhrErrorHandler);
}
- return util;
+ util.abortReaderSafely = function(reader)
+ {
+ if (reader && reader.readyState > 0)
+ {
+ try
+ {
+ this.reader.abort();
+ }
+ catch(ex)
+ {
+ // Ignore - read no longer in progress
+ }
+ }
+ }
+
+ return util;
});
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js?rev=1682801&r1=1682800&r2=1682801&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
Sun May 31 21:44:37 2015
@@ -84,10 +84,7 @@ define(["dojo/_base/lang",
_cancel: function(e)
{
event.stop(e);
- if (this.reader)
- {
- this.reader.abort();
- }
+
this._destroyTypeFields(this.accessControlProviderTypeFieldsContainer);
this.dialog.hide();
},
_add: function(e)
@@ -112,11 +109,15 @@ define(["dojo/_base/lang",
{
this._typeChanged(type,
this.accessControlProviderTypeFieldsContainer,
"qpid/management/accesscontrolprovider/", "AccessControlProvider" );
},
+ _destroyTypeFields: function(typeFieldsContainer)
+ {
+ var widgets = registry.findWidgets(typeFieldsContainer);
+ array.forEach(widgets, function(item) {
item.destroyRecursive();});
+ construct.empty(typeFieldsContainer);
+ },
_typeChanged: function(type, typeFieldsContainer, baseUrl,
category )
{
- var widgets = registry.findWidgets(typeFieldsContainer);
- array.forEach(widgets, function(item) {
item.destroyRecursive();});
- construct.empty(typeFieldsContainer);
+ this._destroyTypeFields(typeFieldsContainer);
if (type)
{
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js?rev=1682801&r1=1682800&r2=1682801&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
Sun May 31 21:44:37 2015
@@ -114,10 +114,7 @@ define(["dojo/_base/lang",
_cancel: function(e)
{
event.stop(e);
- if (this.reader)
- {
- this.reader.abort();
- }
+ this._destroyTypeFields(this.storeTypeFieldsContainer);
this.dialog.hide();
},
_add: function(e)
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js?rev=1682801&r1=1682800&r2=1682801&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
Sun May 31 21:44:37 2015
@@ -292,10 +292,7 @@ define([
},
_cancel: function(e)
{
- if (this.reader)
- {
- this.reader.abort();
- }
+ util.abortReaderSafely(this.reader);
this.dialog.hide();
},
_add: function(e)
@@ -312,7 +309,7 @@ define([
if (uploadVHConfig && this.virtualHostNodeFile.getFileList().length >
0 && this.virtualHostNodeForm.validate())
{
// VH config is being uploaded
- virtualHostNodeData = this._getValues(this.virtualHostNodeForm);
+ virtualHostNodeData =
util.getFormWidgetValues(this.virtualHostNodeForm);
var virtualHostNodeContext =
this.virtualHostNodeContext.get("value");
if (virtualHostNodeContext)
{
@@ -324,14 +321,14 @@ define([
}
else if (!uploadVHConfig && this.virtualHostNodeForm.validate() &&
this.virtualHostForm.validate())
{
- virtualHostNodeData = this._getValues(this.virtualHostNodeForm);
+ virtualHostNodeData =
util.getFormWidgetValues(this.virtualHostNodeForm);
var virtualHostNodeContext =
this.virtualHostNodeContext.get("value");
if (virtualHostNodeContext)
{
virtualHostNodeData["context"] = virtualHostNodeContext;
}
- var virtualHostData = this._getValues(this.virtualHostForm);
+ var virtualHostData = util.getFormWidgetValues(this.virtualHostForm);
var virtualHostContext = this.virtualHostContext.get("value");
if (virtualHostContext)
{
@@ -352,64 +349,6 @@ define([
var that = this;
that.management.create("virtualhostnode", {type: "broker"},
virtualHostNodeData).then(function(x){that.dialog.hide();});
- },
- _getValues: function (form)
- {
- var values = {};
- var contextMap = {};
-
- var formWidgets = form.getChildren();
- for(var i in formWidgets)
- {
- var widget = formWidgets[i];
- var value = widget.value;
- var propName = widget.name;
- if (propName && (widget.required || value ))
- {
- if (widget.contextvar)
- {
- contextMap [propName] = String(value); // Broker requires
that context values are Strings
- }
- else
- {
- if (widget instanceof dijit.form.CheckBox)
- {
- values[ propName ] = widget.checked;
- }
- else if (widget instanceof dijit.form.RadioButton && value)
- {
- var currentValue = values[propName];
- if (currentValue)
- {
- if (lang.isArray(currentValue))
- {
- currentValue.push(value)
- }
- else
- {
- values[ propName ] = [currentValue, value];
- }
- }
- else
- {
- values[ propName ] = value;
- }
- }
- else
- {
- values[ propName ] = value ? value: null;
- }
-
- }
- }
- }
-
- // One or more context variables were defined on form
- if (fobject.keys(contextMap).length > 0)
- {
- values ["context"] = contextMap;
- }
- return values;
}
};
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]