From d5e3a77cb0f6eb6f3a16fcb071b6e7064595f51d Mon Sep 17 00:00:00 2001 From: Elizaveta Shashkova Date: Wed, 21 Jan 2015 18:55:26 +0300 Subject: [PATCH] PY-13927 Debugger: Timeout waiting for response on 113 when viewing watches Getting the next sequence number was not synchronized. Sometimes it returned the same value for different commands and lost some responses. --- .../jetbrains/python/debugger/pydev/RemoteDebugger.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/python/pydevSrc/com/jetbrains/python/debugger/pydev/RemoteDebugger.java b/python/pydevSrc/com/jetbrains/python/debugger/pydev/RemoteDebugger.java index 1956f9faaec8..cd2c6e2f0b4d 100644 --- a/python/pydevSrc/com/jetbrains/python/debugger/pydev/RemoteDebugger.java +++ b/python/pydevSrc/com/jetbrains/python/debugger/pydev/RemoteDebugger.java @@ -55,6 +55,7 @@ public class RemoteDebugger implements ProcessDebugger { private Socket mySocket; private volatile boolean myConnected = false; private int mySequence = -1; + private final Object mySequenceObject = new Object(); // for synchronization on mySequence private final Map myThreads = new ConcurrentHashMap(); private final Map myResponseQueue = new HashMap(); private final TempVarsHolder myTempVars = new TempVarsHolder(); @@ -285,8 +286,10 @@ public class RemoteDebugger implements ProcessDebugger { } int getNextSequence() { - mySequence += 2; - return mySequence; + synchronized (mySequenceObject) { + mySequence += 2; + return mySequence; + } } void placeResponse(final int sequence, final ProtocolFrame response) {