Closed andreasolund closed 10 years ago
The issue occurs when you combine different request methods in your sub routes (GET, POST, PUT etc.).
Working:
import 'dart:async'; import 'package:vane/vane.dart'; class TestClass extends Vane { @Route("/test/") Future main() => close("OK"); @Route("/test/state", method: GET) Future state() => close("OK"); @Route("/test/wake", method: POST) Future wake() => close("OK"); } void main() => serve();
Failing:
import 'dart:async'; import 'package:vane/vane.dart'; @Route("/test") class TestClass extends Vane { @Route("/") Future main() => close("OK"); @Route("/state", method: GET) Future state() => close("OK"); @Route("/wake", method: POST) Future wake() => close("OK"); } void main() => serve();
Stack trace:
2014-07-03 15:34:46.465 WARNING: The null object does not have a method 'contains'. NoSuchMethodError: method not found: 'contains' Receiver: null Arguments: ["GET"] 2014-07-03 15:34:46.465 WARNING: 2014-07-03 15:34:46.466 WARNING: #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:45) #1 Router.matchRequest (package:vane/src/router.dart:36:42) #2 serve.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:vane/src/serve.dart:34:36) #3 _rootRunUnary (dart:async/zone.dart:730) #4 _ZoneDelegate.runUnary (dart:async/zone.dart:462) #5 _CustomizedZone.runUnary (dart:async/zone.dart:667) #6 _BaseZone.runUnaryGuarded (dart:async/zone.dart:582) #7 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:333) #8 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:263) #9 _StreamController&&_SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:569) #10 _StreamController._add (dart:async/stream_controller.dart:449) #11 _StreamController.add (dart:async/stream_controller.dart:406) #12 _HttpServer._handleRequest.<anonymous closure> (dart:io/http_impl.dart:2248) #13 _rootRun (dart:async/zone.dart:719) #14 _ZoneDelegate.run (dart:async/zone.dart:453) #15 _CustomizedZone.run (dart:async/zone.dart:663) #16 _BaseZone.runGuarded (dart:async/zone.dart:574) #17 _BaseZone.bindCallback.<anonymous closure> (dart:async/zone.dart:599) #18 _rootRun (dart:async/zone.dart:723) #19 _ZoneDelegate.run (dart:async/zone.dart:453) #20 _CustomizedZone.run (dart:async/zone.dart:663) #21 _BaseZone.runGuarded (dart:async/zone.dart:574) #22 _BaseZone.bindCallback.<anonymous closure> (dart:async/zone.dart:599) #23 _createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:11) #24 _handleTimeout (dart:io/timer_impl.dart:292) #25 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:124)
Fix in this commit: https://github.com/DartVoid/Vane/commit/cd31bfa009ed4bd83fa09e3bf5bab6e1221264ca
:+1:
The issue occurs when you combine different request methods in your sub routes (GET, POST, PUT etc.).
Working:
Failing:
Stack trace: