diff --git a/python/pydevSrc/com/jetbrains/python/console/pydev/PydevXmlRpcClient.java b/python/pydevSrc/com/jetbrains/python/console/pydev/PydevXmlRpcClient.java index b5e4ab2df6b5..38345bebc769 100644 --- a/python/pydevSrc/com/jetbrains/python/console/pydev/PydevXmlRpcClient.java +++ b/python/pydevSrc/com/jetbrains/python/console/pydev/PydevXmlRpcClient.java @@ -44,7 +44,7 @@ public class PydevXmlRpcClient implements IPydevXmlRpcClient { */ private static final Logger LOG = Logger.getInstance(PydevXmlRpcClient.class.getName()); - private static final long TIME_LIMIT = 5000; + private static final long TIME_LIMIT = 30000; /** diff --git a/python/src/com/jetbrains/python/console/PydevConsoleRunner.java b/python/src/com/jetbrains/python/console/PydevConsoleRunner.java index 96fde13ede93..ad9a15d85c11 100644 --- a/python/src/com/jetbrains/python/console/PydevConsoleRunner.java +++ b/python/src/com/jetbrains/python/console/PydevConsoleRunner.java @@ -24,6 +24,8 @@ import com.jetbrains.django.run.Runner; import com.jetbrains.python.PythonHelpersLocator; import com.jetbrains.python.console.pydev.ConsoleCommunication; import com.jetbrains.python.console.pydev.PydevConsoleCommunication; +import com.jetbrains.python.sdk.JythonSdkFlavor; +import com.jetbrains.python.sdk.PythonSdkFlavor; import org.apache.xmlrpc.XmlRpcException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -37,6 +39,7 @@ import java.util.Map; * @author oleg */ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory { + private Sdk mySdk; private final int[] myPorts; private PydevConsoleCommunication myPydevConsoleCommunication; private PyConsoleProcessHandler myProcessHandler; @@ -48,11 +51,12 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory { private static final long APPROPRIATE_TO_WAIT = 10000; protected PydevConsoleRunner(@NotNull final Project project, - @NotNull final String consoleTitle, + @NotNull Sdk sdk, @NotNull final String consoleTitle, @NotNull final CommandLineArgumentsProvider commandLineArgumentsProvider, @Nullable final String workingDir, int[] ports) { super(project, consoleTitle, commandLineArgumentsProvider, workingDir); + mySdk = sdk; myPorts = ports; } @@ -95,7 +99,7 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory { } }; - final PydevConsoleRunner consoleRunner = new PydevConsoleRunner(project, consoleTitle, provider, projectRoot, ports); + final PydevConsoleRunner consoleRunner = new PydevConsoleRunner(project, sdk, consoleTitle, provider, projectRoot, ports); try { consoleRunner.initAndRun(statements2execute); } @@ -136,6 +140,15 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory { final LanguageConsoleImpl console = getConsoleView().getConsole(); + //TODO: it is a dirty hack, implement proper handshake for processes + if (PythonSdkFlavor.getFlavor(mySdk.getHomePath()) instanceof JythonSdkFlavor) { + try { + Thread.sleep(3000); + } + catch (InterruptedException e) { + } + } + if (handshake()) { // Make executed statements visible to developers PyConsoleHighlightingUtil.processOutput(console, PYTHON_ENV_COMMAND, ProcessOutputTypes.SYSTEM);