Tag | Date | Blame | Line | Source |
---|---|---|---|---|
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 69 | /** |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 70 | * The same approach using a completely detached process works nicely on Mac OS X. |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 71 | * |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 72 | * @throws IOException |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 73 | */ |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 74 | @Test(timeout = TEST_TIMEOUT) |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 75 | public void testExecutionOfDetachedProcess() throws IOException { |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 76 | |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 77 | if (!OS.isFamilyUnix()) { |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 78 | testNotSupportedForCurrentOperatingSystem(); |
1.3-RC1 | Fri Jan 10 23:23:40 JST 2014 | 1b86b8 | 79 | return; |
1.3-RC1 | Fri Jan 10 23:23:40 JST 2014 | 1b86b8 | 80 | } |
1.3-RC1 | Fri Jan 10 23:23:40 JST 2014 | 1b86b8 | 81 | |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 82 | final CommandLine cmdLine = new CommandLine("sh").addArgument("-c").addArgument("./src/test/scripts/issues/exec-57-detached.sh", false); |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 83 | final DefaultExecutor executor = new DefaultExecutor(); |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 84 | final PumpStreamHandler pumpStreamHandler = new PumpStreamHandler(System.out, System.err); |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 85 | |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 86 | executor.setStreamHandler(pumpStreamHandler); |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 87 | |
latest | Sat Jan 09 08:29:56 JST 2016 | d8ed2f | 88 | executor.execute(cmdLine); |
1.3-RC1 | Fri Jan 10 23:23:40 JST 2014 | 1b86b8 | 89 | } |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 60 | final boolean closeWhenExhausted) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 61 | this.is = is; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 62 | this.os = os; |
sandbox | Sat Feb 09 02:02:37 JST 2008 | 76aa29 | 63 | this.size = DEFAULT_SIZE; |
sandbox | Sat Feb 09 02:02:37 JST 2008 | 76aa29 | 64 | this.closeWhenExhausted = closeWhenExhausted; |
sandbox | Sat Feb 09 02:02:37 JST 2008 | 76aa29 | 65 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 98 | synchronized (this) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 100 | finished = false; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 101 | } |
sandbox | Sat Feb 09 02:02:37 JST 2008 | 76aa29 | 103 | final byte[] buf = new byte[this.size]; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 107 | while ((length = is.read(buf)) > 0) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 108 | os.write(buf, 0, length); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 113 | if (closeWhenExhausted) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 121 | synchronized (this) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 122 | finished = true; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 123 | notifyAll(); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 124 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 125 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 126 | } |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
1.3-RC1 | Sat Jan 11 20:49:27 JST 2014 | 594812 | 42 | private final Vector |
1.2-RC1 | Sat Dec 28 23:20:34 JST 2013 | c1410e | 102 | public CommandLine(final String executable) { |
sandbox | Sat Apr 12 01:37:11 JST 2008 | 7aa110 | 103 | this.isFile=false; |
1.3-RC1 | Thu Jul 24 20:52:06 JST 2014 | 0bf316 | 104 | this.executable=toCleanExecutable(executable); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 105 | } |
EXEC_1_0_0_RC1 | Sat Jul 19 05:40:44 JST 2008 | b95e06 | 150 | return StringUtils.fixFileSeparatorChar(expandArgument(executable)); |
sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 227 | return this.addArgument(argument, true); |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 239 | if (argument == null) |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 246 | if (handleQuoting) |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 248 | StringUtils.quoteArgument(argument); |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 251 | arguments.add(new Argument(argument, handleQuoting)); |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 252 | return this; |
1.2-RC1 | Sat Dec 28 23:20:34 JST 2013 | c1410e | 264 | final String[] result = new String[arguments.size()]; |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 266 | for (int i=0; i |
1.3-RC1 | Sat Jan 11 20:49:27 JST 2014 | 594812 | 267 | currArgument = arguments.get(i); |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 268 | expandedArgument = expandArgument(currArgument.getValue()); |
1.2-RC1 | Sat Dec 28 23:18:57 JST 2013 | 01bfe9 | 269 | result[i] = currArgument.isHandleQuoting() ? StringUtils.quoteArgument(expandedArgument) : expandedArgument; |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 272 | return result; |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 279 | return substitutionMap; |
EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 298 | final String[] result = new String[arguments.size() + 1]; |
EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 299 | result[0] = this.getExecutable(); |
EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 300 | System.arraycopy(getArguments(), 0, result, 1, result.length-1); |
EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 301 | return result; |
1.2-RC1 | Sat Dec 28 23:20:34 JST 2013 | c1410e | 325 | final StringBuffer stringBuffer = StringUtils.stringSubstitution(argument, this.getSubstitutionMap(), true); |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 326 | return stringBuffer.toString(); |
1.3-RC1 | Thu Jul 24 20:52:06 JST 2014 | 0bf316 | 412 | if (dirtyExecutable == null) { |
1.3-RC1 | Thu Jul 24 20:52:06 JST 2014 | 0bf316 | 414 | } else if (dirtyExecutable.trim().length() == 0) { |
1.3-RC1 | Thu Jul 24 20:52:06 JST 2014 | 0bf316 | 417 | return StringUtils.fixFileSeparatorChar(dirtyExecutable); |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
sandbox | Fri Sep 23 23:09:14 JST 2005 | 245019 | 42 | if (OS.isFamilyOpenVms()) { |
sandbox | Fri Sep 23 23:09:14 JST 2005 | 245019 | 45 | launcher = new Java13CommandLauncher(); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 48 | return launcher; |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
sandbox | Sun Jan 07 00:42:23 JST 2007 | d4c6f1 | 39 | public class DefaultProcessingEnvironment { |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
1.3-RC1 | Sat Jan 11 01:11:40 JST 2014 | c01912 | 41 | PROCESSING_ENVIRONMENT_IMPLEMENTATION = new DefaultProcessingEnvironment(); |
1.3-RC1 | Sat Jan 11 01:11:40 JST 2014 | c01912 | 43 | } |
EXEC_1_0_0_RC1 | Mon Nov 17 08:07:06 JST 2008 | 765387 | 60 | if (environment == null) { |
sandbox | Sun Jan 29 08:15:24 JST 2006 | 0d1dbf | 61 | return null; |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 430 | { |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 431 | this.value = value.trim(); |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 432 | this.handleQuoting = handleQuoting; |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 433 | } |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 437 | return value; |
COMMONS_EXEC_1_1_RC1 | Wed Sep 22 04:11:01 JST 2010 | 351ae2 | 442 | return handleQuoting; |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
1.2-RC1 | Sat Dec 28 23:20:34 JST 2013 | c1410e | 72 | final StringBuffer argBuf = new StringBuffer(); |
EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 74 | if (argStr == null || argStr.length() == 0) { |
EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 78 | if (vars == null || vars.size() == 0) { |
EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 79 | return argBuf.append(argStr); |
EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 188 | return arg.replace(SLASH_CHAR, File.separatorChar).replace( |
EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 224 | String cleanedArgument = argument.trim(); |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 227 | while (cleanedArgument.startsWith(SINGLE_QUOTE) || cleanedArgument.startsWith(DOUBLE_QUOTE)) { |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 231 | while (cleanedArgument.endsWith(SINGLE_QUOTE) || cleanedArgument.endsWith(DOUBLE_QUOTE)) { |
1.3-RC1 | Sat Jan 11 22:10:49 JST 2014 | 14624a | 235 | final StringBuilder buf = new StringBuilder(); |
EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 236 | if (cleanedArgument.indexOf(DOUBLE_QUOTE) > -1) { |
EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 243 | } else if (cleanedArgument.indexOf(SINGLE_QUOTE) > -1 |
EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 244 | || cleanedArgument.indexOf(" ") > -1) { |
EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 248 | return cleanedArgument; |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 84 | public DefaultExecutor() { |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 85 | this.streamHandler = new PumpStreamHandler(); |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 86 | this.launcher = CommandLauncherFactory.createVMLauncher(); |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 87 | this.exitValues = new int[0]; |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 20:08:38 JST 2010 | 189459 | 88 | this.workingDirectory = new File("."); |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 89 | this.exceptionCaught = null; |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 90 | } |
sandbox | Thu May 25 05:29:38 JST 2006 | 33fe5d | 103 | this.streamHandler = streamHandler; |
sandbox | Thu May 25 05:29:38 JST 2006 | 33fe5d | 104 | } |
sandbox | Wed Jan 02 07:50:59 JST 2008 | aa0cd6 | 124 | return this.processDestroyer; |
1.3-RC1 | Sat Jan 11 19:34:22 JST 2014 | 2e1280 | 153 | return execute(command, (Map |
sandbox | Mon Jul 10 05:32:36 JST 2006 | 13fdc8 | 162 | if (workingDirectory != null && !workingDirectory.exists()) { |
sandbox | Mon Jul 10 05:32:36 JST 2006 | 13fdc8 | 166 | return executeInternal(command, environment, workingDirectory, streamHandler); |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 228 | if (this.exitValues == null) { |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 231 | else if (this.exitValues.length == 0) { |
sandbox | Tue Apr 22 05:32:43 JST 2008 | 223467 | 232 | return this.launcher.isFailure(exitValue); |
sandbox | Thu Apr 24 05:42:39 JST 2008 | 5e9951 | 272 | if (this.launcher == null) { |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 276 | if (dir != null && !dir.exists()) { |
sandbox | Thu Apr 24 05:42:39 JST 2008 | 5e9951 | 279 | return this.launcher.exec(command, env, dir); |
sandbox | Thu Jan 03 03:20:58 JST 2008 | 6f2747 | 299 | process.getInputStream().close(); |
sandbox | Thu Jan 24 06:22:59 JST 2008 | c9e47e | 303 | } |
sandbox | Thu Jan 03 03:20:58 JST 2008 | 6f2747 | 306 | process.getOutputStream().close(); |
sandbox | Thu Jan 24 06:22:59 JST 2008 | c9e47e | 310 | } |
sandbox | Thu Jan 03 03:20:58 JST 2008 | 6f2747 | 313 | process.getErrorStream().close(); |
sandbox | Thu Jan 03 03:20:58 JST 2008 | 6f2747 | 317 | } |
sandbox | Thu Jan 03 03:20:58 JST 2008 | 6f2747 | 318 | } |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 348 | streams.setProcessInputStream(process.getOutputStream()); |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 349 | streams.setProcessOutputStream(process.getInputStream()); |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 350 | streams.setProcessErrorStream(process.getErrorStream()); |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 357 | } |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 359 | streams.start(); |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 364 | if (this.getProcessDestroyer() != null) { |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 369 | if (watchdog != null) { |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 373 | int exitValue = Executor.INVALID_EXITVALUE; |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 376 | exitValue = process.waitFor(); |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 03:12:00 JST 2010 | 810be9 | 385 | Thread.interrupted(); |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 03:12:00 JST 2010 | 810be9 | 386 | } |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 388 | if (watchdog != null) { |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 393 | streams.stop(); |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 397 | } |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 399 | closeProcessStreams(process); |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 401 | if (getExceptionCaught() != null) { |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 405 | if (watchdog != null) { |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 415 | if (this.isFailure(exitValue)) { |
sandbox | Fri Nov 30 08:20:34 JST 2007 | a9c1a6 | 419 | return exitValue; |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 422 | if (this.getProcessDestroyer() != null) { |
sandbox | Wed Jan 02 07:50:59 JST 2008 | aa0cd6 | 423 | this.getProcessDestroyer().remove(process); |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 445 | return this.exceptionCaught; |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 57 | private IOException caught = null; |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 03:08:25 JST 2010 | 527529 | 63 | this(System.out, System.err); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 64 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 82 | this(out, err, null); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 83 | } |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 92 | public PumpStreamHandler(final OutputStream out, final OutputStream err, final InputStream input) { |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 03:08:25 JST 2010 | 527529 | 93 | this.out = out; |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 03:08:25 JST 2010 | 527529 | 94 | this.err = err; |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 03:08:25 JST 2010 | 527529 | 95 | this.input = input; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 96 | } |
EXEC_1_0_0 | Mon Feb 02 06:18:31 JST 2009 | 6ad70c | 115 | if (out != null) { |
EXEC_1_0_0 | Mon Feb 02 06:18:31 JST 2009 | 6ad70c | 116 | createProcessOutputPump(is, out); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 118 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 127 | if (err != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 128 | createProcessErrorPump(is, err); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 130 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 139 | if (input != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 147 | os.close(); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 151 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 153 | } |
EXEC_1_0_0 | Mon Feb 02 06:18:31 JST 2009 | 6ad70c | 159 | if (outputThread != null) { |
EXEC_1_0_0 | Mon Feb 02 06:18:31 JST 2009 | 6ad70c | 160 | outputThread.start(); |
EXEC_1_0_0 | Mon Feb 02 06:18:31 JST 2009 | 6ad70c | 162 | if (errorThread != null) { |
EXEC_1_0_0 | Mon Feb 02 06:18:31 JST 2009 | 6ad70c | 163 | errorThread.start(); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 165 | if (inputThread != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 168 | } |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 03:08:25 JST 2010 | 527529 | 176 | if (inputStreamPumper != null) { |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 180 | stopThread(outputThread, stopTimeout); |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 181 | stopThread(errorThread, stopTimeout); |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 182 | stopThread(inputThread, stopTimeout); |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 184 | if (err != null && err != out) { |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 186 | err.flush(); |
COMMONS_EXEC_1_1_RC1 | Fri Aug 13 03:08:25 JST 2010 | 527529 | 190 | } |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 193 | if (out != null) { |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 195 | out.flush(); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 199 | } |
1.2-RC1 | Sat Dec 28 23:35:41 JST 2013 | 7fc828 | 202 | if (caught != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 205 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 232 | outputThread = createPump(is, os); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 233 | } |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 242 | errorThread = createPump(is, os); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 243 | } |
1.2-RC1 | Sat Dec 28 23:20:34 JST 2013 | c1410e | 255 | final boolean closeWhenExhausted = os instanceof PipedOutputStream ? true : false; |
1.2-RC1 | Sat Nov 06 04:07:57 JST 2010 | 4f20b7 | 256 | return createPump(is, os, closeWhenExhausted); |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 269 | final Thread result = new Thread(new StreamPumper(is, os, closeWhenExhausted), "Exec Stream Pumper"); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 270 | result.setDaemon(true); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 271 | return result; |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 285 | if (thread != null) { |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 287 | if (timeout == 0) { |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 288 | thread.join(); |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 300 | } |
1.2-RC1 | Tue Oct 11 06:33:07 JST 2011 | 6e795c | 302 | } |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
sandbox | Fri Aug 19 13:07:50 JST 2005 | 1ef5f9 | 35 | public abstract class CommandLauncherImpl implements CommandLauncher { |
sandbox | Tue Apr 22 05:32:43 JST 2008 | 223467 | 50 | return exitValue != 0; |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 51 | private static final String OS_NAME = System.getProperty("os.name") |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 52 | .toLowerCase(Locale.US); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 54 | private static final String OS_ARCH = System.getProperty("os.arch") |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 55 | .toLowerCase(Locale.US); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 57 | private static final String OS_VERSION = System.getProperty("os.version") |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 58 | .toLowerCase(Locale.US); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 60 | private static final String PATH_SEP = System.getProperty("path.separator"); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 89 | return isOs(family, null, null, null); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 97 | return isFamily(FAMILY_MAC); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 113 | return isFamily(FAMILY_UNIX); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 133 | return isFamily(FAMILY_OPENVMS); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 187 | boolean retValue = false; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 189 | if (family != null || name != null || arch != null || version != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 191 | boolean isFamily = true; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 192 | boolean isName = true; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 193 | boolean isArch = true; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 194 | boolean isVersion = true; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 196 | if (family != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 197 | if (family.equals(FAMILY_WINDOWS)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 199 | } else if (family.equals(FAMILY_OS_2)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 201 | } else if (family.equals(FAMILY_NETWARE)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 203 | } else if (family.equals(FAMILY_DOS)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 206 | } else if (family.equals(FAMILY_MAC)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 207 | isFamily = OS_NAME.indexOf(FAMILY_MAC) > -1; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 208 | } else if (family.equals(FAMILY_TANDEM)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 210 | } else if (family.equals(FAMILY_UNIX)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 211 | isFamily = PATH_SEP.equals(":") |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 212 | && !isFamily(FAMILY_OPENVMS) |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 213 | && (!isFamily(FAMILY_MAC) || OS_NAME.endsWith("x")); |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 214 | } else if (family.equals(FAMILY_WIN9X)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 220 | } else if (family.equals(FAMILY_Z_OS)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 223 | } else if (family.equals(FAMILY_OS_400)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 225 | } else if (family.equals(FAMILY_OPENVMS)) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 226 | isFamily = OS_NAME.indexOf(FAMILY_OPENVMS) > -1; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 233 | if (name != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 236 | if (arch != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 239 | if (version != null) { |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 242 | retValue = isFamily && isName && isArch && isVersion; |
sandbox | Fri Aug 05 21:21:46 JST 2005 | 94b6fa | 244 | return retValue; |
Tag | Date | Blame | Line | Source |
---|---|---|---|---|
sandbox | Fri Dec 07 07:32:34 JST 2007 | a9f0f5 | 39 | public Java13CommandLauncher() { |
1.3-RC1 | Fri Jan 10 01:22:43 JST 2014 | 434ab3 | 40 | } |
1.3-RC1 | Fri Jan 10 01:22:43 JST 2014 | 434ab3 | 59 | final String[] envVars = EnvironmentUtils.toStrings(env); |
1.3-RC1 | Fri Jan 10 01:22:43 JST 2014 | 434ab3 | 61 | return Runtime.getRuntime().exec(cmd.toStrings(), |