Chromium Code Reviews| Index: pkg/analysis_server/lib/src/context_manager.dart |
| diff --git a/pkg/analysis_server/lib/src/context_manager.dart b/pkg/analysis_server/lib/src/context_manager.dart |
| index bfa8cb6fbd0c7fd383aefbde12a7d6ab2d3be71c..3abc54de15ab441685f44dff9ac57ce8f835edc8 100644 |
| --- a/pkg/analysis_server/lib/src/context_manager.dart |
| +++ b/pkg/analysis_server/lib/src/context_manager.dart |
| @@ -444,12 +444,15 @@ abstract class ContextManager { |
| _ContextInfo info = new _ContextInfo( |
| folder, pubspecFile, children, normalizedPackageRoots[folder.path]); |
| _contexts[folder] = info; |
| - info.changeSubscription = folder.changes.listen((WatchEvent event) { |
| - _handleWatchEvent(folder, info, event); |
| - }); |
| UriResolver packageUriResolver = _computePackageUriResolver(folder, info); |
| info.context = addContext(folder, packageUriResolver); |
| info.context.name = folder.path; |
| + // Subscribe to file changes after context has been set |
| + // so that no changes will be received before we have a context |
| + // (e.g. _computePackageUriResolver throws an exception) |
|
Paul Berry
2015/06/18 20:24:42
I don't understand why this is necessary. Subscri
danrubel
2015/06/22 11:22:56
Good point. Per discussion I reworked this to add
|
| + info.changeSubscription = folder.changes.listen((WatchEvent event) { |
| + _handleWatchEvent(folder, info, event); |
| + }); |
| return info; |
| } |