public static String prompt(String promptMessage, SVNCommandEnvironment env, boolean hide) throws SVNException { System.out.print(promptMessage); System.out.flush(); StringBuffer input = null; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { while (true) { env.checkCancelled(); if (!reader.ready()) { SVNDebugLog.getDefaultLog().info("not ready.."); try { Thread.sleep(1); } catch (InterruptedException e) { // } continue; } int r = reader.read(); if (r == -1) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, "Can't read stdin: End of file found"); SVNErrorManager.error(err); } char ch = (char) (r & 0xFF); if (ch == '\n' || ch == '\r') { if (input == null) { input = new StringBuffer(); } break; } if (input == null) { input = new StringBuffer(); } input.append(ch); } } catch (IOException ioe) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, "Can''t read stdin: {0}", ioe.getLocalizedMessage()); SVNErrorManager.error(err); } if (input == null) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, "Can't read stdin: End of file found"); SVNErrorManager.error(err); } return input.toString(); }