Bring back zones; mysterious hang

This commit is contained in:
Tobe O 2018-04-06 15:43:10 -04:00
parent 289f4a6ec7
commit c5dcbedd67
3 changed files with 256 additions and 206 deletions

View file

@ -3,9 +3,8 @@
<component name="ChangeListManager">
<list default="true" id="7b89ff1e-1260-4dcf-9c3d-345de0471ea1" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/CHANGELOG.md" afterPath="$PROJECT_DIR$/CHANGELOG.md" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/src/core/map_service.dart" afterPath="$PROJECT_DIR$/lib/src/core/map_service.dart" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pubspec.yaml" afterPath="$PROJECT_DIR$/pubspec.yaml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/src/http/angel_http.dart" afterPath="$PROJECT_DIR$/lib/src/http/angel_http.dart" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/parameter_meta_test.dart" afterPath="$PROJECT_DIR$/test/parameter_meta_test.dart" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
@ -40,12 +39,12 @@
</provider>
</entry>
</file>
<file leaf-file-name="README.md" pinned="false" current-in-tab="true">
<file leaf-file-name="README.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="145">
<caret line="11" column="43" lean-forward="true" selection-start-line="11" selection-start-column="43" selection-end-line="11" selection-end-column="43" />
<first_editor relative-caret-position="150">
<caret line="10" column="7" lean-forward="false" selection-start-line="10" selection-start-column="7" selection-end-line="10" selection-end-column="7" />
<folding>
<marker date="1517982736000" expanded="true" signature="588:912" ph="{...}" />
</folding>
@ -55,11 +54,11 @@
</provider>
</entry>
</file>
<file leaf-file-name="map_service.dart" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/lib/src/core/map_service.dart">
<file leaf-file-name="parameter_meta_test.dart" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test/parameter_meta_test.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="5" lean-forward="true" selection-start-line="7" selection-start-column="5" selection-end-line="7" selection-end-column="5" />
<state relative-caret-position="1320">
<caret line="88" column="24" lean-forward="false" selection-start-line="88" selection-start-column="24" selection-end-line="88" selection-end-column="24" />
<folding>
<element signature="e#0#20#0" expanded="true" />
</folding>
@ -67,6 +66,28 @@
</provider>
</entry>
</file>
<file leaf-file-name="angel_http.dart" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/lib/src/http/angel_http.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="124" column="0" lean-forward="true" selection-start-line="124" selection-start-column="0" selection-end-line="124" selection-end-column="0" />
<folding>
<element signature="e#0#20#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="map_service.dart" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/lib/src/core/map_service.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="15" lean-forward="true" selection-start-line="2" selection-start-column="15" selection-end-line="2" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
@ -79,21 +100,11 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>cache</find>
<find>errorHan</find>
<find>addStre</find>
<find>((cre)|(upd))atedAt</find>
<find>'((cre)|(upd))atedAt'</find>
<find>handleReque</find>
<find>optimize</find>
<find>serializer`</find>
<find>serializer</find>
<find>injectSeri</find>
<find>close</find>
<find>shutdown</find>
<find>HttpHeaders</find>
<find>ContentType</find>
<find>createZ</find>
<find>app</find>
<find>handleRe</find>
<find>instead.</find>
@ -109,6 +120,16 @@
<find>= true</find>
<find>Future</find>
<find>toId</find>
<find>createZ</find>
<find>default</find>
<find>catch</find>
<find>error</find>
<find>trace</find>
<find>zonesp</find>
<find>close(</find>
<find>runGuar</find>
<find>unca</find>
<find>async</find>
</findStrings>
<replaceStrings>
<replace>_isClosed</replace>
@ -164,7 +185,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/lib/src/http/angel_base.dart" />
<option value="$PROJECT_DIR$/lib/src/http/hooked_service.dart" />
<option value="$PROJECT_DIR$/lib/metrics.dart" />
<option value="$PROJECT_DIR$/lib/src/stats/stats.dart" />
@ -178,7 +198,6 @@
<option value="$PROJECT_DIR$/test/extension_test.dart" />
<option value="$PROJECT_DIR$/test/accepts_test.dart" />
<option value="$PROJECT_DIR$/test/streaming_test.dart" />
<option value="$PROJECT_DIR$/test/parameter_meta_test.dart" />
<option value="$PROJECT_DIR$/test/primitives_test.dart" />
<option value="$PROJECT_DIR$/example/json.dart" />
<option value="$PROJECT_DIR$/example/main.dart" />
@ -202,12 +221,10 @@
<option value="$PROJECT_DIR$/lib/src/core/core.dart" />
<option value="$PROJECT_DIR$/lib/angel_framework.dart" />
<option value="$PROJECT_DIR$/lib/src/http/http_request_context.dart" />
<option value="$PROJECT_DIR$/lib/src/core/server.dart" />
<option value="$PROJECT_DIR$/lib/src/stats/metric_server.dart" />
<option value="$PROJECT_DIR$/lib/src/core/response_context.dart" />
<option value="$PROJECT_DIR$/lib/src/http/http_response_context.dart" />
<option value="$PROJECT_DIR$/lib/src/http/controller.dart" />
<option value="$PROJECT_DIR$/lib/src/http/angel_http.dart" />
<option value="$PROJECT_DIR$/lib/http.dart" />
<option value="$PROJECT_DIR$/lib/src/core/anonymous_service.dart" />
<option value="$PROJECT_DIR$/lib/src/core/service.dart" />
@ -215,6 +232,10 @@
<option value="$PROJECT_DIR$/pubspec.yaml" />
<option value="$PROJECT_DIR$/CHANGELOG.md" />
<option value="$PROJECT_DIR$/lib/src/core/map_service.dart" />
<option value="$PROJECT_DIR$/lib/src/core/server.dart" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/mock_request-1.0.2/lib/src/response.dart" />
<option value="$PROJECT_DIR$/test/parameter_meta_test.dart" />
<option value="$PROJECT_DIR$/lib/src/http/angel_http.dart" />
</list>
</option>
</component>
@ -225,7 +246,7 @@
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="39" />
<option name="x" value="73" />
<option name="y" value="25" />
<option name="width" value="1360" />
<option name="height" value="797" />
@ -248,9 +269,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane" />
<pane id="AndroidView" />
<pane id="PackagesPane" />
<pane id="Scratches" />
<pane id="Scope">
<subPane subId="Project Files">
<expand>
@ -299,7 +318,9 @@
<select />
</subPane>
</pane>
<pane id="Scratches" />
<pane id="AndroidView" />
<pane id="ProjectPane" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
@ -340,7 +361,7 @@
</list>
</option>
</component>
<component name="RunManager" selected="Dart Test.All Tests">
<component name="RunManager" selected="Dart Test.injects session or throws in parameter_meta_test.dart">
<configuration name="Chained routes in routing_test.dart" type="DartTestRunConfigurationType" factoryName="Dart Test" nameIsGenerated="true">
<option name="filePath" value="$PROJECT_DIR$/test/routing_test.dart" />
<option name="scope" value="GROUP_OR_TEST_BY_NAME" />
@ -645,14 +666,8 @@
<workItem from="1513103506825" duration="139000" />
<workItem from="1517332581856" duration="858000" />
<workItem from="1517973177718" duration="9736000" />
<workItem from="1522434729364" duration="75000" />
</task>
<task id="LOCAL-00026" summary="1.0.7+2">
<created>1500824472581</created>
<option name="number" value="00026" />
<option name="presentableId" value="LOCAL-00026" />
<option name="project" value="LOCAL" />
<updated>1500824472581</updated>
<workItem from="1522434729364" duration="100000" />
<workItem from="1523041434716" duration="2337000" />
</task>
<task id="LOCAL-00027" summary="Working on 1.0.8, including performance tuning">
<created>1501778421241</created>
@ -990,43 +1005,50 @@
<option name="project" value="LOCAL" />
<updated>1517982826744</updated>
</task>
<option name="localTasksCounter" value="75" />
<task id="LOCAL-00075" summary="MapService dates will be strings">
<created>1522434816896</created>
<option name="number" value="00075" />
<option name="presentableId" value="LOCAL-00075" />
<option name="project" value="LOCAL" />
<updated>1522434816901</updated>
</task>
<option name="localTasksCounter" value="76" />
<servers />
</component>
<component name="TestHistory">
<history-entry file="All_Tests - 2018.02.07 at 00h 30m 51s.xml">
<configuration name="All Tests" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 35m 42s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="All_Tests - 2018.02.07 at 00h 31m 37s.xml">
<configuration name="All Tests" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 36m 29s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="All_Tests - 2018.02.07 at 00h 33m 17s.xml">
<configuration name="All Tests" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 36m 42s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="All_Tests - 2018.02.07 at 00h 34m 49s.xml">
<configuration name="All Tests" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 38m 08s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="All_Tests - 2018.02.07 at 00h 35m 05s.xml">
<configuration name="All Tests" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 38m 29s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="All_Tests - 2018.02.07 at 00h 35m 52s.xml">
<configuration name="All Tests" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 39m 23s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="All_Tests - 2018.02.07 at 00h 44m 04s.xml">
<configuration name="All Tests" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 39m 28s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="All_Tests - 2018.03.30 at 14h 33m 23s.xml">
<configuration name="All Tests" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 39m 59s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="encoding_in_encoders_buffer_test_dart - 2018.02.07 at 00h 34m 12s.xml">
<configuration name="encoding in encoders_buffer_test.dart" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 41m 13s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
<history-entry file="encoding_in_encoders_buffer_test_dart - 2018.02.07 at 00h 34m 29s.xml">
<configuration name="encoding in encoders_buffer_test.dart" configurationId="DartTestRunConfigurationType" />
<history-entry file="injects_session_or_throws_in_parameter_meta_test_dart - 2018.04.06 at 15h 42m 12s.xml">
<configuration name="injects session or throws in parameter_meta_test.dart" configurationId="DartTestRunConfigurationType" />
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="127847000" />
<option name="totallyTimeSpent" value="130209000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@ -1038,40 +1060,40 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="39" y="25" width="1360" height="797" extended-state="0" />
<frame x="73" y="25" width="1360" height="797" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32763532" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Tool Output" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.34188035" sideWeight="0.5035524" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Dart Analysis" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.31196582" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32905984" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4017094" sideWeight="0.4964476" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.48005697" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.23141123" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="ANTLR Preview" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24962063" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3988604" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32763532" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3233618" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.4002849" sideWeight="0.4964476" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32905984" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.48005697" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23141123" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3988604" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="DB Execution Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="DB Browser" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32998413" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3233618" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Coverage" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32905984" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
@ -1085,7 +1107,6 @@
</component>
<component name="VcsManagerConfiguration">
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<MESSAGE value="Created setup for AngelHttp" />
<MESSAGE value="Basic server methods transferred to AngelHttp" />
<MESSAGE value="Made `Angel.serializer` public" />
<MESSAGE value="Remove line that resets `Angel.serializer` on close" />
@ -1110,7 +1131,8 @@
<MESSAGE value="IDEA" />
<MESSAGE value="README update" />
<MESSAGE value="Pubspec -&gt; v1.1.1" />
<option name="LAST_COMMIT_MESSAGE" value="Pubspec -&gt; v1.1.1" />
<MESSAGE value="MapService dates will be strings" />
<option name="LAST_COMMIT_MESSAGE" value="MapService dates will be strings" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
@ -1119,27 +1141,6 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/test/all.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="31" column="33" lean-forward="false" selection-start-line="31" selection-start-column="33" selection-end-line="31" selection-end-column="33" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/angel_route-2.0.3+1/lib/src/router.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<caret line="328" column="26" lean-forward="false" selection-start-line="328" selection-start-column="26" selection-end-line="328" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/extension_test.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="261">
<caret line="26" column="21" lean-forward="false" selection-start-line="26" selection-start-column="21" selection-end-line="26" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/accepts_test.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
@ -1162,13 +1163,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/parameter_meta_test.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="23" column="30" lean-forward="false" selection-start-line="23" selection-start-column="30" selection-end-line="23" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/meta-1.1.2/lib/meta.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224">
@ -1239,13 +1233,6 @@
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/mock_request-1.0.2/lib/src/response.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<caret line="116" column="3" lean-forward="true" selection-start-line="116" selection-start-column="3" selection-end-line="116" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/controller_test.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
@ -1289,13 +1276,6 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core.dart" />
<entry file="file://$PROJECT_DIR$/lib/src/core/injection.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="13" column="0" lean-forward="true" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/metadata.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="251">
@ -1345,13 +1325,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/server.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="122">
<caret line="323" column="42" lean-forward="false" selection-start-line="323" selection-start-column="42" selection-end-line="323" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/response_context.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
@ -1373,13 +1346,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/http/angel_http.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="11" column="27" lean-forward="true" selection-start-line="11" selection-start-column="27" selection-end-line="11" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/http.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
@ -1408,23 +1374,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/http/http.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="25" lean-forward="true" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/service.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="93" column="12" lean-forward="false" selection-start-line="93" selection-start-column="12" selection-end-line="93" selection-end-column="12" />
<folding>
<element signature="e#39#59#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/example/main.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
@ -1444,26 +1393,64 @@
<state split_layout="SPLIT">
<first_editor relative-caret-position="90">
<caret line="6" column="38" lean-forward="true" selection-start-line="6" selection-start-column="38" selection-end-line="6" selection-end-column="38" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/map_service.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="5" lean-forward="true" selection-start-line="7" selection-start-column="5" selection-end-line="7" selection-end-column="5" />
<folding>
<element signature="e#0#20#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pubspec.yaml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="6" column="24" lean-forward="true" selection-start-line="6" selection-start-column="24" selection-end-line="6" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/http/http.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="18" column="50" lean-forward="true" selection-start-line="18" selection-start-column="50" selection-end-line="18" selection-end-column="50" />
<folding>
<element signature="e#100#120#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/server.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1188">
<caret line="489" column="25" lean-forward="true" selection-start-line="489" selection-start-column="25" selection-end-line="490" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/injection.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="26" column="50" lean-forward="false" selection-start-line="26" selection-start-column="50" selection-end-line="26" selection-end-column="50" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/mock_request-1.0.2/lib/src/response.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="318">
<caret line="99" column="11" lean-forward="false" selection-start-line="99" selection-start-column="11" selection-end-line="99" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.pub-cache/hosted/pub.dartlang.org/mock_request-1.0.2/lib/mock_request.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="4" column="16" lean-forward="true" selection-start-line="4" selection-start-column="16" selection-end-line="4" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file:///usr/local/Cellar/dart/1.24.2/libexec/lib/async/future.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="131">
<caret line="659" column="12" lean-forward="false" selection-start-line="659" selection-start-column="12" selection-end-line="659" selection-end-column="12" />
<folding />
</state>
</provider>
@ -1471,8 +1458,8 @@
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="145">
<caret line="11" column="43" lean-forward="true" selection-start-line="11" selection-start-column="43" selection-end-line="11" selection-end-column="43" />
<first_editor relative-caret-position="150">
<caret line="10" column="7" lean-forward="false" selection-start-line="10" selection-start-column="7" selection-end-line="10" selection-end-column="7" />
<folding>
<marker date="1517982736000" expanded="true" signature="588:912" ph="{...}" />
</folding>
@ -1481,6 +1468,52 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/service.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="93" column="12" lean-forward="false" selection-start-line="93" selection-start-column="12" selection-end-line="93" selection-end-column="12" />
<folding>
<element signature="e#39#59#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file:///usr/local/Cellar/dart/1.24.2/libexec/lib/async/zone.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="389">
<caret line="222" column="19" lean-forward="false" selection-start-line="222" selection-start-column="19" selection-end-line="222" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/parameter_meta_test.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1320">
<caret line="88" column="24" lean-forward="false" selection-start-line="88" selection-start-column="24" selection-end-line="88" selection-end-column="24" />
<folding>
<element signature="e#0#20#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/http/angel_http.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="124" column="0" lean-forward="true" selection-start-line="124" selection-start-column="0" selection-end-line="124" selection-end-column="0" />
<folding>
<element signature="e#0#20#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/src/core/map_service.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="15" lean-forward="true" selection-start-line="2" selection-start-column="15" selection-end-line="2" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>

View file

@ -6,6 +6,7 @@ import 'package:angel_route/angel_route.dart';
import 'package:combinator/combinator.dart';
import 'package:json_god/json_god.dart' as god;
import 'package:pool/pool.dart';
import 'package:stack_trace/stack_trace.dart';
import 'package:tuple/tuple.dart';
import 'http_request_context.dart';
import 'http_response_context.dart';
@ -26,7 +27,8 @@ class AngelHttp {
AngelHttp(this.app);
/// The function used to bind this instance to an HTTP server.
Future<HttpServer> Function(dynamic, int) get serverGenerator => _serverGenerator;
Future<HttpServer> Function(dynamic, int) get serverGenerator =>
_serverGenerator;
/// An instance mounted on a server started by the [serverGenerator].
factory AngelHttp.custom(
@ -90,9 +92,7 @@ class AngelHttp {
// TODO: Remove this try/catch in 1.2.0
try {
await app.close();
} catch(_) {
}
} catch (_) {}
for (var configurer in app.shutdownHooks) await app.configure(configurer);
return _server;
@ -103,7 +103,54 @@ class AngelHttp {
var req = await createRequestContext(request);
var res = await createResponseContext(request.response, req);
var zoneSpec = new ZoneSpecification(
print: (self, parent, zone, line) {
if (app.logger != null)
app.logger.info(line);
else
parent.print(zone, line);
},
handleUncaughtError: (self, parent, zone, error, stackTrace) async {
var trace = new Trace.from(stackTrace).terse;
try {
AngelHttpException e;
if (error is FormatException) {
e = new AngelHttpException.badRequest(message: error.message);
} else {
e = new AngelHttpException(error,
stackTrace: stackTrace, message: error?.toString());
}
if (app.logger != null) {
app.logger.severe(e.message ?? e.toString(), error, trace);
}
await handleAngelHttpException(e, trace, req, res, request);
} catch (e, st) {
var trace = new Trace.from(st).terse;
request.response.close();
// Ideally, we won't be in a position where an absolutely fatal error occurs,
// but if so, we'll need to log it.
if (app.logger != null) {
app.logger.severe(
'Fatal error occurred when processing ${request.uri}.',
e,
trace);
} else {
stderr
..writeln('Fatal error occurred when processing '
'${request.uri}:')
..writeln(e)
..writeln(trace);
}
}
},
);
var zone = Zone.current.fork(specification: zoneSpec);
return await zone.runGuarded(() async {
var path = req.path;
if (path == '/') path = '';
@ -124,8 +171,8 @@ class AngelHttp {
? app.handlerCache.putIfAbsent(cacheKey, resolveTuple)
: resolveTuple();
//req.inject(Zone, zone);
//req.inject(ZoneSpecification, zoneSpec);
req.inject(Zone, zone);
req.inject(ZoneSpecification, zoneSpec);
req.params.addAll(tuple.item2);
req.inject(ParseResult, tuple.item3);
@ -134,48 +181,15 @@ class AngelHttp {
var pipeline = tuple.item1;
for (var handler in pipeline) {
try {
if (handler == null || !await app.executeHandler(handler, req, res))
break;
} on AngelHttpException catch (e, st) {
e.stackTrace ??= st;
return await handleAngelHttpException(e, st, req, res, request);
}
}
try {
await sendResponse(request, req, res);
} on AngelHttpException catch (e, st) {
e.stackTrace ??= st;
return await handleAngelHttpException(
e,
st,
req,
res,
request,
ignoreFinalizers: true,
);
}
} on FormatException catch (error, stackTrace) {
var e = new AngelHttpException.badRequest(message: error.message);
if (app.logger != null) {
app.logger.severe(e.message ?? e.toString(), error, stackTrace);
}
return await handleAngelHttpException(e, stackTrace, req, res, request);
} catch (error, stackTrace) {
var e = new AngelHttpException(error,
stackTrace: stackTrace, message: error?.toString());
if (app.logger != null) {
app.logger.severe(e.message ?? e.toString(), error, stackTrace);
}
return await handleAngelHttpException(e, stackTrace, req, res, request);
} finally {
}).whenComplete(() {
res.dispose();
}
print('hey');
});
}
/// Handles an [AngelHttpException].

View file

@ -85,11 +85,14 @@ main() {
// Invalid request
var rq = new MockHttpRequest('GET', Uri.parse('/session'))..close();
var rs = rq.response;
print('a');
await http.handleRequest(rq);
print('b');
await printResponse(rs);
expect(rs.statusCode, 500);
rq = new MockHttpRequest('GET', Uri.parse('/session'));
rq.session['foo'] = 'bar';
rq.close();