Author: grossws
Date: Mon Mar 30 15:44:01 2015
New Revision: 1670125
URL: http://svn.apache.org/r1670125
Log:
Fix broken ForkParser APIs
Fixes TIKA-1587
Modified:
tika/trunk/tika-core/src/main/java/org/apache/tika/fork/ForkParser.java
Modified:
tika/trunk/tika-core/src/main/java/org/apache/tika/fork/ForkParser.java
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/fork/ForkParser.java?rev=1670125&r1=1670124&r2=1670125&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/java/org/apache/tika/fork/ForkParser.java
(original)
+++ tika/trunk/tika-core/src/main/java/org/apache/tika/fork/ForkParser.java Mon
Mar 30 15:44:01 2015
@@ -18,7 +18,9 @@ package org.apache.tika.fork;
import java.io.IOException;
import java.io.InputStream;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
@@ -97,9 +99,27 @@ public class ForkParser extends Abstract
* Returns the command used to start the forked server process.
*
* @return java command line
+ * @deprecated since 1.8
+ * @see ForkParser#getJavaCommandAsList()
*/
- public List<String> getJavaCommand() {
- return java;
+ @Deprecated
+ public String getJavaCommand() {
+ StringBuilder sb = new StringBuilder();
+ for (String part : getJavaCommandAsList()) {
+ sb.append(part).append(' ');
+ }
+ sb.deleteCharAt(sb.length() - 1);
+ return sb.toString();
+ }
+
+ /**
+ * Returns the command used to start the forked server process.
+ * <p/>
+ * Returned list is unmodifiable.
+ * @return java command line args
+ */
+ public List<String> getJavaCommandAsList() {
+ return Collections.unmodifiableList(java);
}
/**
@@ -107,11 +127,27 @@ public class ForkParser extends Abstract
* The arguments "-jar" and "/path/to/bootstrap.jar" are
* appended to the given command when starting the process.
* The default setting is {"java", "-Xmx32m"}.
- *
+ * <p/>
+ * Creates a defensive copy.
* @param java java command line
*/
public void setJavaCommand(List<String> java) {
- this.java = java;
+ this.java = new ArrayList<String>(java);
+ }
+
+ /**
+ * Sets the command used to start the forked server process.
+ * The given command line is split on whitespace and the arguments
+2 * "-jar" and "/path/to/bootstrap.jar" are appended to it when starting
+2 * the process. The default setting is "java -Xmx32m".
+ *
+ * @param java java command line
+ * @deprecated since 1.8
+ * @see ForkParser#setJavaCommand(List)
+ */
+ @Deprecated
+ public void setJavaCommand(String java) {
+ setJavaCommand(Arrays.asList(java.split(" ")));
}
public Set<MediaType> getSupportedTypes(ParseContext context) {