Unreviewed, rolling out r189386.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 5 Sep 2015 05:29:24 +0000 (05:29 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 5 Sep 2015 05:29:24 +0000 (05:29 +0000)
https://bugs.webkit.org/show_bug.cgi?id=148883

Made several event dispatch tests assert (Requested by ap on
#webkit).

Reverted changeset:

"dispatchEvent() should throw an InvalidStateError if the
event's initialized flag is not set"
https://bugs.webkit.org/show_bug.cgi?id=148800
http://trac.webkit.org/changeset/189386

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@189419 268f45cc-cd09-0410-ab3c-d52691b4dbfc

25 files changed:
LayoutTests/ChangeLog
LayoutTests/dom/html/level2/events/dispatchEvent02-expected.txt
LayoutTests/dom/html/level2/events/dispatchEvent03-expected.txt
LayoutTests/dom/html/level2/events/dispatchEvent04-expected.txt
LayoutTests/dom/html/level2/events/dispatchEvent05-expected.txt
LayoutTests/dom/html/level2/events/dispatchEvent06-expected.txt
LayoutTests/dom/html/level2/events/dispatchEvent07-expected.txt
LayoutTests/dom/xhtml/level2/events/dispatchEvent02-expected.txt
LayoutTests/dom/xhtml/level2/events/dispatchEvent03-expected.txt
LayoutTests/dom/xhtml/level2/events/dispatchEvent04-expected.txt
LayoutTests/dom/xhtml/level2/events/dispatchEvent05-expected.txt
LayoutTests/dom/xhtml/level2/events/dispatchEvent06-expected.txt
LayoutTests/dom/xhtml/level2/events/dispatchEvent07-expected.txt
LayoutTests/fast/dom/DOMException/EventException-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/DOMException/EventException.html [new file with mode: 0644]
LayoutTests/fast/dom/DOMException/resources/EventException.js [new file with mode: 0644]
LayoutTests/fast/dom/Window/dispatchEvent-expected.txt
LayoutTests/fast/events/dispatch-event-being-dispatched-expected.txt
LayoutTests/fast/events/dispatch-event-being-dispatched.html
LayoutTests/http/tests/w3c/dom/events/Event-type-empty-expected.txt
LayoutTests/http/tests/w3c/dom/events/EventTarget-dispatchEvent-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/dom/Event.cpp
Source/WebCore/dom/Event.h
Source/WebCore/dom/EventTarget.cpp

index 1afd404..d7e06a1 100644 (file)
@@ -1,3 +1,18 @@
+2015-09-04  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r189386.
+        https://bugs.webkit.org/show_bug.cgi?id=148883
+
+        Made several event dispatch tests assert (Requested by ap on
+        #webkit).
+
+        Reverted changeset:
+
+        "dispatchEvent() should throw an InvalidStateError if the
+        event's initialized flag is not set"
+        https://bugs.webkit.org/show_bug.cgi?id=148800
+        http://trac.webkit.org/changeset/189386
+
 2015-09-04  Zalan Bujtas  <zalan@apple.com>
 
         Repaint cleanup:
index 2ae62b2..0be1d2c 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent02     
-Status:        failure
-Detail:        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent02
+Status:        Success
index 9c80a08..cd06d61 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent03     
-Status:        failure
-Detail:        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent03
+Status:        Success
index a75b804..c44cd14 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent04     
-Status:        failure
-Detail:        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent04
+Status:        Success
index c1cfe38..4e9d0fd 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent05     
-Status:        failure
-Detail:        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent05
+Status:        Success
index 29104a5..c832234 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent06     
-Status:        failure
-Detail:        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent06
+Status:        Success
index 99d7f4a..f941adb 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent07     
-Status:        failure
-Detail:        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent07
+Status:        Success
index e5b97dc..34bce9c 100644 (file)
@@ -1,3 +1,2 @@
 Test   http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent02
-Status failure
-Message        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Status Success
index 8f28029..9e62490 100644 (file)
@@ -1,3 +1,2 @@
 Test   http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent03
-Status failure
-Message        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Status Success
index b783dc1..f86950b 100644 (file)
@@ -1,3 +1,2 @@
 Test   http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent04
-Status failure
-Message        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Status Success
index e8325e8..191af33 100644 (file)
@@ -1,3 +1,2 @@
 Test   http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent05
-Status failure
-Message        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Status Success
index f928893..b3ef0db 100644 (file)
@@ -1,3 +1,2 @@
 Test   http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent06
-Status failure
-Message        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Status Success
index fecc1c3..d9d34eb 100644 (file)
@@ -1,3 +1,2 @@
 Test   http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent07
-Status failure
-Message        throw_UNSPECIFIED_EVENT_TYPE_ERR: assertTrue failed
+Status Success
diff --git a/LayoutTests/fast/dom/DOMException/EventException-expected.txt b/LayoutTests/fast/dom/DOMException/EventException-expected.txt
new file mode 100644 (file)
index 0000000..5aa9bd6
--- /dev/null
@@ -0,0 +1,16 @@
+Tests the properties of the EventException object.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS e.toString() is "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0"
+PASS Object.prototype.toString.call(e) is "[object EventException]"
+PASS Object.prototype.toString.call(e.__proto__) is "[object EventExceptionPrototype]"
+PASS e.constructor.toString() is "[object EventExceptionConstructor]"
+PASS e.constructor is window.EventException
+PASS e.UNSPECIFIED_EVENT_TYPE_ERR is e.constructor.UNSPECIFIED_EVENT_TYPE_ERR
+PASS e.UNSPECIFIED_EVENT_TYPE_ERR is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/DOMException/EventException.html b/LayoutTests/fast/dom/DOMException/EventException.html
new file mode 100644 (file)
index 0000000..0979ba7
--- /dev/null
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src="../../../resources/js-test-pre.js"></script>
+</head>
+<body>
+<script src="resources/EventException.js"></script>
+<script src="../../../resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/dom/DOMException/resources/EventException.js b/LayoutTests/fast/dom/DOMException/resources/EventException.js
new file mode 100644 (file)
index 0000000..7d3d4aa
--- /dev/null
@@ -0,0 +1,17 @@
+description("Tests the properties of the EventException object.")
+
+var e;
+try {
+    document.dispatchEvent(null);
+    // raises a UNSPECIFIED_EVENT_TYPE_ERR
+} catch (err) {
+    e = err;
+}
+
+shouldBeEqualToString("e.toString()", "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0");
+shouldBeEqualToString("Object.prototype.toString.call(e)", "[object EventException]");
+shouldBeEqualToString("Object.prototype.toString.call(e.__proto__)", "[object EventExceptionPrototype]");
+shouldBeEqualToString("e.constructor.toString()", "[object EventExceptionConstructor]");
+shouldBe("e.constructor", "window.EventException");
+shouldBe("e.UNSPECIFIED_EVENT_TYPE_ERR", "e.constructor.UNSPECIFIED_EVENT_TYPE_ERR");
+shouldBe("e.UNSPECIFIED_EVENT_TYPE_ERR", "0");
index 0c78fb2..2205ffb 100644 (file)
@@ -3,8 +3,8 @@ Test window.dispatchEvent().
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS window.dispatchEvent(event) threw exception TypeError: Type error.
-PASS window.dispatchEvent(event) threw exception Error: InvalidStateError: DOM Exception 11.
+PASS window.dispatchEvent(event) threw exception Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0.
+PASS window.dispatchEvent(event) threw exception Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0.
 PASS myEventDispatched is true
 PASS target is window
 PASS currentTarget is window
index 829f82b..40f07d6 100644 (file)
@@ -1,13 +1,10 @@
-Tests that dispatchEvent raises INVALID_STATE_ERR if the event being dispatched is already being dispatched.
+Tests that dispatchEvent raises DISPATCH_REQUEST_ERR if the event being dispatched is already being dispatched.
 
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS window.dispatchEvent(event) threw exception Error: InvalidStateError: DOM Exception 11.
+PASS should have got DISPATCH_REQUEST_ERR EventException
 PASS redispatchCustom.wasInvoked is true
-PASS window.dispatchEvent(event) threw exception Error: InvalidStateError: DOM Exception 11.
+PASS should have got DISPATCH_REQUEST_ERR EventException
 PASS checkCustom.wasInvoked is true
-PASS document.dispatchEvent(event) threw exception Error: InvalidStateError: DOM Exception 11.
+PASS should have got DISPATCH_REQUEST_ERR EventException
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 0864bc1..4dd3988 100644 (file)
@@ -1,24 +1,43 @@
 <!DOCTYPE html>
 <html>
-<body>
+<head>
 <script src="../../resources/js-test-pre.js"></script>
-<div class="testDiv"></div>
+</head>
+<body>
+<p class="description">
+Tests that dispatchEvent raises DISPATCH_REQUEST_ERR if the event
+being dispatched is already being dispatched.
+</p>
+<pre id="console">
+</pre>
 <script>
-description("Tests that dispatchEvent raises INVALID_STATE_ERR if the event being dispatched is already being dispatched.");
+if (window.testRunner)
+    testRunner.dumpAsText();
 
 jsTestIsAsync = true;
 
-// try redispatching an event in the process of being dispatched with dispatchEvent
+function shouldBeDispatchRequestErr(exception) {
+    var ok = EventException.prototype.isPrototypeOf(exception) && exception.code == EventException.DISPATCH_REQUEST_ERR;
+    (ok ? testPassed : testFailed)("should have got DISPATCH_REQUEST_ERR EventException");
+}
+
+// try redispatching an event in the process of being dispatched with
+// dispatchEvent
 
 function redispatchCustom(event) {
-    shouldThrow("window.dispatchEvent(event)", "'Error: InvalidStateError: DOM Exception 11'");
+    try {
+        window.dispatchEvent(event);
+        testFailed('dispatchEvent of an event being dispatched should throw an exception');
+    } catch (ex) {
+        shouldBeDispatchRequestErr(ex);
+    }
 
     redispatchCustom.wasInvoked = true;
 }
 
 var customEvent = document.createEvent('CustomEvent');
 customEvent.initCustomEvent('foo', true, true, null);
-var p = document.querySelector('.testDiv');
+var p = document.querySelector('.description');
 p.addEventListener('foo', redispatchCustom);
 p.dispatchEvent(customEvent);
 shouldBeTrue('redispatchCustom.wasInvoked');
@@ -43,9 +62,15 @@ function redispatchLoad(event) {
         return;
     }
 
-    redispatchLoad.dispatching = true;
-    shouldThrow("document.dispatchEvent(event)", "'Error: InvalidStateError: DOM Exception 11'");
-    delete redispatchLoad.dispatching;
+    try {
+        redispatchLoad.dispatching = true;
+        document.dispatchEvent(event);
+        testFailed('dispatchEvent of an event being dispatched should throw an exception');
+    } catch (ex) {
+        shouldBeDispatchRequestErr(ex);
+    } finally {
+        delete redispatchLoad.dispatching;
+    }
 
     finishJSTest();
 }
index ab99a02..68f5da5 100644 (file)
@@ -1,4 +1,4 @@
 
-PASS initEvent 
-PASS Constructor 
+FAIL initEvent UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0
+FAIL Constructor UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0
 
index ff3d49f..e42a75c 100644 (file)
@@ -1,19 +1,21 @@
 CONSOLE MESSAGE: line 60: Error
 
-PASS Calling dispatchEvent(null). 
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (CustomEvent). 
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (Event). 
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (Events). 
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (HTMLEvents). 
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (KeyboardEvent). 
+FAIL Calling dispatchEvent(null). assert_throws: function "function () { document.dispatchEvent(null) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" ("UNSPECIFIED_EVENT_TYPE_ERR") expected object "TypeError" ("TypeError")
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (CustomEvent). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (Event). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (Events). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (HTMLEvents). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (KeyboardEvent). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (KeyEvents). NotSupportedError: DOM Exception 9
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (MessageEvent). 
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (MouseEvent). 
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (MouseEvents). 
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (MessageEvent). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (MouseEvent). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (MouseEvents). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (TouchEvent). NotSupportedError: DOM Exception 9
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (UIEvent). 
-PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (UIEvents). 
-PASS If the event's dispatch flag is set, an InvalidStateError must be thrown. 
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (UIEvent). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (UIEvents). assert_throws: function "function () { document.dispatchEvent(e) }" threw object "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0" that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+FAIL If the event's dispatch flag is set, an InvalidStateError must be thrown. assert_throws: function "function () {
+      target.dispatchEvent(e)
+    }" threw object "Error: DISPATCH_REQUEST_ERR: DOM Events Exception 1" that is not a DOMException InvalidStateError: property "code" is equal to 1, expected 11
 PASS Exceptions from event listeners must not be propagated. 
 FAIL Event listeners added during dispatch should be called assert_array_equals: lengths differ, expected 2 got 0
 PASS Event listeners should be called in order of addition 
index 8a797ef..d76e643 100644 (file)
@@ -1,3 +1,18 @@
+2015-09-04  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r189386.
+        https://bugs.webkit.org/show_bug.cgi?id=148883
+
+        Made several event dispatch tests assert (Requested by ap on
+        #webkit).
+
+        Reverted changeset:
+
+        "dispatchEvent() should throw an InvalidStateError if the
+        event's initialized flag is not set"
+        https://bugs.webkit.org/show_bug.cgi?id=148800
+        http://trac.webkit.org/changeset/189386
+
 2015-09-04  Joseph Pecoraro  <pecoraro@apple.com>
 
         Web Inspector: Add tests for DOM highlight commands
index 0ed4db5..1d0fe61 100644 (file)
@@ -56,8 +56,7 @@ Event::Event()
 }
 
 Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg)
-    : m_isInitialized(true)
-    , m_type(eventType)
+    : m_type(eventType)
     , m_canBubble(canBubbleArg)
     , m_cancelable(cancelableArg)
     , m_propagationStopped(false)
@@ -72,8 +71,7 @@ Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableAr
 }
 
 Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, double timestamp)
-    : m_isInitialized(true)
-    , m_type(eventType)
+    : m_type(eventType)
     , m_canBubble(canBubbleArg)
     , m_cancelable(cancelableArg)
     , m_propagationStopped(false)
@@ -88,8 +86,7 @@ Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableAr
 }
 
 Event::Event(const AtomicString& eventType, const EventInit& initializer)
-    : m_isInitialized(true)
-    , m_type(eventType)
+    : m_type(eventType)
     , m_canBubble(initializer.bubbles)
     , m_cancelable(initializer.cancelable)
     , m_propagationStopped(false)
@@ -112,7 +109,6 @@ void Event::initEvent(const AtomicString& eventTypeArg, bool canBubbleArg, bool
     if (dispatched())
         return;
 
-    m_isInitialized = true;
     m_propagationStopped = false;
     m_immediatePropagationStopped = false;
     m_defaultPrevented = false;
index 74f855a..00a6874 100644 (file)
@@ -100,7 +100,6 @@ public:
     virtual ~Event();
 
     void initEvent(const AtomicString& type, bool canBubble, bool cancelable);
-    bool isInitialized() const { return m_isInitialized; }
 
     const AtomicString& type() const { return m_type; }
     void setType(const AtomicString& type) { m_type = type; }
@@ -189,7 +188,6 @@ protected:
     bool dispatched() const { return m_target; }
 
 private:
-    bool m_isInitialized { false };
     AtomicString m_type;
     bool m_canBubble;
     bool m_cancelable;
index 6561ad9..1e51577 100644 (file)
@@ -138,13 +138,13 @@ bool EventTarget::clearAttributeEventListener(const AtomicString& eventType)
 
 bool EventTarget::dispatchEvent(PassRefPtr<Event> event, ExceptionCode& ec)
 {
-    if (!event) {
-        ec = TypeError;
+    if (!event || event->type().isEmpty()) {
+        ec = EventException::UNSPECIFIED_EVENT_TYPE_ERR;
         return false;
     }
 
-    if (!event->isInitialized() || event->isBeingDispatched()) {
-        ec = INVALID_STATE_ERR;
+    if (event->isBeingDispatched()) {
+        ec = EventException::DISPATCH_REQUEST_ERR;
         return false;
     }