| Index: editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/RemoteAnalysisServerImpl.java
|
| diff --git a/editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/RemoteAnalysisServerImpl.java b/editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/RemoteAnalysisServerImpl.java
|
| index df2f6c3497ca75ad186ff2210fe37c2522fd5583..8f9ce51de51964b6f64ae138e03c126012678ef7 100644
|
| --- a/editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/RemoteAnalysisServerImpl.java
|
| +++ b/editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/RemoteAnalysisServerImpl.java
|
| @@ -139,6 +139,10 @@ public class RemoteAnalysisServerImpl implements AnalysisServer {
|
| stream.lastRequestProcessed();
|
| }
|
| } catch (Throwable e) {
|
| + // Ignore exceptions during shutdown
|
| + if (shutdownRequested) {
|
| + return;
|
| + }
|
| if (e instanceof IOException) {
|
| String message = e.getMessage();
|
| if (message != null && message.contains("closed")) {
|
| @@ -219,6 +223,11 @@ public class RemoteAnalysisServerImpl implements AnalysisServer {
|
| */
|
| private boolean watch;
|
|
|
| + /**
|
| + * A flag indicating whether the server shutdown process has been requested.
|
| + */
|
| + private boolean shutdownRequested;
|
| +
|
| public RemoteAnalysisServerImpl(AnalysisServerSocket socket) {
|
| this.socket = socket;
|
| }
|
| @@ -450,6 +459,7 @@ public class RemoteAnalysisServerImpl implements AnalysisServer {
|
|
|
| @Override
|
| public void server_shutdown() {
|
| + shutdownRequested = true;
|
| stopWatcher();
|
| String id = generateUniqueId();
|
| sendRequestToServer(id, RequestUtilities.generateServerShutdown(id), new BasicConsumer() {
|
|
|