From e29a0ef3b08d79d6c8dd63cf788542672683b107 Mon Sep 17 00:00:00 2001 From: Elizaveta Shashkova Date: Mon, 4 Apr 2016 20:26:51 +0300 Subject: [PATCH] Debugger hangs on Jython with "Attach to subprocess" option enabled (PY-18742) We shouldn't update sys.modules for the main thread, cause it leads to the second importing 'threading' module, and the new instance of main thread is created. In this case we lose thread id and thread additional info, so it totally breaks the debugger. --- python/helpers/pydev/_pydevd_bundle/pydevd_comm.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_comm.py b/python/helpers/pydev/_pydevd_bundle/pydevd_comm.py index d3c12f164dbb..edebeb1f0905 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_comm.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_comm.py @@ -265,7 +265,9 @@ class PyDBDaemonThread(threading.Thread): created_pydb_daemon[self] = 1 try: try: - if IS_JYTHON: + if IS_JYTHON and not isinstance(threading.currentThread(), threading._MainThread): + # we shouldn't update sys.modules for the main thread, cause it leads to the second importing 'threading' + # module, and the new instance of main thread is created import org.python.core as PyCore #@UnresolvedImport ss = PyCore.PySystemState() # Note: Py.setSystemState() affects only the current thread.