From 15bb7ce510a86ac95a63e67ec407e4c0c8cb7866 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Mon, 4 Jul 2016 13:55:10 +0200 Subject: [PATCH] Clear channel attributes on channel unregister to avoid project leaks (IDEA-158108) --- .../intellij/compiler/server/BuildMessageDispatcher.java | 9 ++++++++- .../org/jetbrains/jps/javac/ExternalJavacManager.java | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/server/BuildMessageDispatcher.java b/java/compiler/impl/src/com/intellij/compiler/server/BuildMessageDispatcher.java index 2624cde1af17..ed3bbba1709c 100644 --- a/java/compiler/impl/src/com/intellij/compiler/server/BuildMessageDispatcher.java +++ b/java/compiler/impl/src/com/intellij/compiler/server/BuildMessageDispatcher.java @@ -71,7 +71,14 @@ class BuildMessageDispatcher extends SimpleChannelInboundHandlerAdapter { @Override public void channelUnregistered(ChannelHandlerContext ctx) throws Exception { - JavacProcessDescriptor descriptor = ctx.channel().attr(SESSION_DESCRIPTOR).get(); + JavacProcessDescriptor descriptor = ctx.channel().attr(SESSION_DESCRIPTOR).getAndRemove(); if (descriptor != null) { descriptor.setDone(); }