This is an automated email from the ASF dual-hosted git repository.
bschuchardt pushed a commit to branch feature/GEODE-5013
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-5013 by this
push:
new 2101bbd fixing unit test failures - still not ready for review
2101bbd is described below
commit 2101bbd8405a9878bc7966ee7cc41ed8063bdc44
Author: Bruce Schuchardt <[email protected]>
AuthorDate: Tue Mar 12 15:58:56 2019 -0700
fixing unit test failures - still not ready for review
---
.../LocatorLauncherRemoteIntegrationTestCase.java | 1 +
.../apache/geode/codeAnalysis/excludedClasses.txt | 2 +-
.../apache/geode/distributed/LocatorLauncher.java | 11 +++++--
.../apache/geode/distributed/ServerLauncher.java | 3 +-
.../membership/gms/membership/GMSJoinLeave.java | 2 --
.../geode/internal/cache/versions/VersionTag.java | 3 +-
.../internal/cli/CommandResponseBuilder.java | 2 ++
.../management/internal/cli/json/GfJsonArray.java | 32 +++++++++----------
.../management/internal/cli/json/GfJsonObject.java | 37 ++++++++++++++++------
.../internal/cli/result/AbstractResultData.java | 8 ++---
.../internal/cli/result/LegacyCommandResult.java | 10 +++---
.../internal/cli/result/ModelCommandResult.java | 1 +
.../management/internal/cli/result/ResultData.java | 6 ++++
.../internal/cli/result/TabularResultData.java | 2 +-
.../geode/management/internal/cli/shell/Gfsh.java | 12 ++++++-
.../web/controllers/ShellCommandsController.java | 5 +++
.../AbstractLauncherServiceStateTest.java | 4 +--
.../internal/cli/json/GfJsonArrayTest.java | 14 ++++----
.../management/internal/cli/HeadlessGfsh.java | 11 +++++++
.../geode/test/junit/rules/GfshCommandRule.java | 2 ++
20 files changed, 113 insertions(+), 55 deletions(-)
diff --git
a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTestCase.java
b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTestCase.java
index 34f8f31..cff5c60 100644
---
a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTestCase.java
+++
b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTestCase.java
@@ -199,6 +199,7 @@ public abstract class
LocatorLauncherRemoteIntegrationTestCase
try {
assertThat(launcher.status().getStatus()).isEqualTo(Status.ONLINE);
} catch (Exception e) {
+ e.printStackTrace();
throw new AssertionError(statusFailedWithException(e), e);
}
});
diff --git
a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
index 23a7c42..b4acde0 100644
---
a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
+++
b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
@@ -77,7 +77,7 @@ org/apache/geode/internal/tcp/VersionedByteBufferInputStream
org/apache/geode/internal/util/concurrent/StoppableReadWriteLock
org/apache/geode/management/internal/cli/commands/ShowMetricsCommand$Category
org/apache/geode/management/internal/cli/exceptions/UserErrorException
-org/apache/geode/management/internal/cli/json/QueryResultFormatter$PreventReserializationModule
+org/apache/geode/management/internal/cli/json/AbstractJSONFormatter$PreventReserializationModule
org/apache/geode/security/ResourcePermission
org/apache/geode/security/ResourcePermission$Operation
org/apache/geode/security/ResourcePermission$Resource
diff --git
a/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
b/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
index 7ea24fe..d9a845c 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
@@ -78,7 +78,6 @@ import org.apache.geode.internal.process.ProcessType;
import org.apache.geode.internal.process.ProcessUtils;
import org.apache.geode.internal.process.UnableToControlProcessException;
import org.apache.geode.lang.AttachAPINotFoundException;
-import org.apache.geode.management.internal.cli.json.GfJsonArray;
import org.apache.geode.management.internal.cli.json.GfJsonException;
import org.apache.geode.management.internal.cli.json.GfJsonObject;
import org.apache.geode.management.internal.cli.util.HostUtils;
@@ -2000,8 +1999,16 @@ public class LocatorLauncher extends
AbstractLauncher<String> {
final Status status =
Status.valueOfDescription(gfJsonObject.getString(JSON_STATUS));
+ // StringWriter writer = new StringWriter().append("Bruce:
LocatorState.fromJson document
+ // keys=");
+ // for (Iterator<String> keys = gfJsonObject.keys(); keys.hasNext();) {
+ // writer.append(" ").append(keys.next());
+ // }
+ // System.out.println(writer.toString());
+ // System.out.println("Bruce:
jvmArguments="+gfJsonObject.getJSONObject(JSON_JVMARGUMENTS));
+
final List<String> jvmArguments =
-
Arrays.asList(GfJsonArray.toStringArray(gfJsonObject.getJSONArray(JSON_JVMARGUMENTS)));
+ gfJsonObject.getJSONArray(JSON_JVMARGUMENTS).toStringList();
return new LocatorState(status,
gfJsonObject.getString(JSON_STATUSMESSAGE),
gfJsonObject.getLong(JSON_TIMESTAMP),
gfJsonObject.getString(JSON_LOCATION),
diff --git
a/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
b/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
index 9edee8b..a12de6e 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
@@ -85,7 +85,6 @@ import org.apache.geode.internal.process.ProcessType;
import org.apache.geode.internal.process.UnableToControlProcessException;
import org.apache.geode.lang.AttachAPINotFoundException;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.json.GfJsonArray;
import org.apache.geode.management.internal.cli.json.GfJsonException;
import org.apache.geode.management.internal.cli.json.GfJsonObject;
import org.apache.geode.management.internal.cli.util.HostUtils;
@@ -2596,7 +2595,7 @@ public class ServerLauncher extends
AbstractLauncher<String> {
final Status status =
Status.valueOfDescription(gfJsonObject.getString(JSON_STATUS));
final List<String> jvmArguments =
-
Arrays.asList(GfJsonArray.toStringArray(gfJsonObject.getJSONArray(JSON_JVMARGUMENTS)));
+ gfJsonObject.getJSONArray(JSON_JVMARGUMENTS).toStringList();
return new ServerState(status,
gfJsonObject.getString(JSON_STATUSMESSAGE),
gfJsonObject.getLong(JSON_TIMESTAMP),
gfJsonObject.getString(JSON_LOCATION),
diff --git
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java
index a816e78..0aa6b13 100644
---
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java
+++
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java
@@ -1078,8 +1078,6 @@ public class GMSJoinLeave implements JoinLeave,
MessageHandler {
private void forceDisconnect(String reason) {
this.isStopping = true;
if (!isJoined) {
- logger.fatal("BRUCE: forcedDisconnect invoked. isReconnecting={}
isJoined={}",
- services.getConfig().isReconnecting(), isJoined);
joinResponse[0] =
new JoinResponseMessage(
"Stopping due to ForcedDisconnectException caused by '" + reason
+ "'", -1);
diff --git
a/geode-core/src/main/java/org/apache/geode/internal/cache/versions/VersionTag.java
b/geode-core/src/main/java/org/apache/geode/internal/cache/versions/VersionTag.java
index f34f4d9..2329cd6 100644
---
a/geode-core/src/main/java/org/apache/geode/internal/cache/versions/VersionTag.java
+++
b/geode-core/src/main/java/org/apache/geode/internal/cache/versions/VersionTag.java
@@ -408,9 +408,10 @@ public abstract class VersionTag<T extends VersionSource>
this.previousMemberID = readMember(in);
}
}
- setIsRemoteForTesting();
+ setBits(BITS_IS_REMOTE_TAG);
}
+ /** for unit testing receipt of version tags from another member of the
cluster */
public void setIsRemoteForTesting() {
setBits(BITS_IS_REMOTE_TAG);
}
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandResponseBuilder.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandResponseBuilder.java
index 1d3956b..85ba64e 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandResponseBuilder.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandResponseBuilder.java
@@ -34,6 +34,8 @@ public class CommandResponseBuilder {
private static CommandResponse prepareCommandResponse(String memberName,
CommandResult result) {
GfJsonObject content;
content = result.getContent();
+ // System.out.println("Bruce:
+ // CommandResponseBuilder.prepareCommandResponse(content="+content+")");
return new CommandResponse(memberName, getType(result),
result.getStatus().getCode(), "1/1",
CliMetaData.ANNOTATION_NULL_VALUE, getDebugInfo(), result.getHeader(),
content,
result.getFooter(), result.failedToPersist(),
result.getFileToDownload());
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonArray.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonArray.java
index 2deeb29..5a65a21 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonArray.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonArray.java
@@ -14,6 +14,8 @@
*/
package org.apache.geode.management.internal.cli.json;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode;
@@ -63,9 +65,9 @@ public class GfJsonArray extends AbstractJSONFormatter {
* @return An object value.
* @throws GfJsonException If there is no value for the index.
*/
- public Object get(int index) throws GfJsonException {
+ public String getString(int index) throws GfJsonException {
try {
- return this.jsonArray.get(index).textValue();
+ return jsonArray.get(index).asText();
} catch (IllegalArgumentException e) {
throw new GfJsonException(e);
}
@@ -81,7 +83,6 @@ public class GfJsonArray extends AbstractJSONFormatter {
public GfJsonArray put(Object value) {
this.jsonArray.add(toJsonNode(value));
-
return this;
}
@@ -139,7 +140,7 @@ public class GfJsonArray extends AbstractJSONFormatter {
byteArray = new byte[length];
for (int i = 0; i < length; i++) {
try {
- byteArray[i] = Byte.valueOf(String.valueOf(jsonArray.get(i)));
+ byteArray[i] = Byte.valueOf(String.valueOf(jsonArray.getString(i)));
} catch (GfJsonException e) {
throw new GfJsonException(e.getMessage());
}
@@ -149,21 +150,18 @@ public class GfJsonArray extends AbstractJSONFormatter {
return byteArray;
}
- public static String[] toStringArray(GfJsonArray jsonArray) {
- String[] stringArray = null;
- if (jsonArray != null) {
- int length = jsonArray.size();
- stringArray = new String[length];
- for (int i = 0; i < length; i++) {
- try {
- stringArray[i] = String.valueOf(jsonArray.get(i));
- } catch (GfJsonException e) {
- logger.info("", e);
- stringArray = null;
- }
+ public List<String> toStringList() {
+ List<String> stringArray = null;
+ int length = jsonArray.size();
+ stringArray = new ArrayList<>(length);
+ for (int i = 0; i < length; i++) {
+ try {
+ stringArray.add(getString(i));
+ } catch (GfJsonException e) {
+ logger.info("", e);
+ stringArray = null;
}
}
-
return stringArray;
}
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java
index 704dce6..9d667cc 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java
@@ -138,22 +138,27 @@ public class GfJsonObject extends AbstractJSONFormatter {
return this;
}
- // TODO all uses of this need to be examined - most can use type-specific
get() methods
+ /**
+ * return the Jackson JsonNode associated with the given key
+ */
public JsonNode get(String key) {
return rootNode.get(key);
}
public String getString(String key) {
- System.out.println("Bruce: rootNode.get(" + key + "=" + rootNode.get(key)
+ ")");
+ System.out.println("Bruce: rootNode.getString(" + key + ") =" +
rootNode.get(key)/*
+
* +
+
* " (rootNode="
+
* +rootNode+
+
* ")"
+
*/);
+ if (key.equals("fileToDownload"))
+ Thread.dumpStack();
JsonNode node = rootNode.get(key);
if (node == null) {
- return "null";
+ return null; // "null";
}
- String textValue = node.textValue();
- if (textValue != null) {
- return textValue;
- }
- return node.toString();
+ return node.asText();
}
public int getInt(String key) {
@@ -191,9 +196,18 @@ public class GfJsonObject extends AbstractJSONFormatter {
*/
public GfJsonArray getJSONArray(String key) throws GfJsonException {
JsonNode node = rootNode.get(key);
- if (!(node instanceof ArrayNode)) {
+ if (node == null) {
return null;
}
+ if (!(node instanceof ArrayNode)) {
+ // convert from list format to array format
+ ArrayNode newNode = mapper.createArrayNode();
+ for (int i = 0; i < node.size(); i++) {
+ newNode.add(node.get("" + i));
+ }
+ rootNode.set(key, newNode);
+ return new GfJsonArray(newNode);
+ }
return new GfJsonArray(node);
}
@@ -329,6 +343,8 @@ public class GfJsonObject extends AbstractJSONFormatter {
public List<String> getArrayValues(String key) {
List<String> result = new ArrayList<>();
+ System.out.println("Bruce: GfJsonObject.getArrayValues(" + key + ") node="
+ rootNode.get(key)
+ + " class=" + rootNode.get(key).getClass());
if (rootNode.has(key)) {
JsonNode node = rootNode.get(key);
if (!(node instanceof ArrayNode)) {
@@ -336,7 +352,8 @@ public class GfJsonObject extends AbstractJSONFormatter {
}
ArrayNode array = (ArrayNode) node;
for (int i = 0; i < array.size(); i++) {
- result.add(array.get(i).textValue());
+ JsonNode valueNode = array.get(i);
+ result.add(valueNode.asText());
}
}
return result;
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
index db65160..1164494 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
@@ -187,7 +187,7 @@ public abstract class AbstractResultData implements
ResultData {
fileNameBytes = GfJsonArray.toByteArray(fileNameJsonBytes);
fileName = new String(fileNameBytes);
} else { // if on member
- fileName = object.get(FILE_NAME_FIELD).toString();
+ fileName = object.getString(FILE_NAME_FIELD);
}
// build file message
@@ -198,11 +198,11 @@ public abstract class AbstractResultData implements
ResultData {
fileMessageBytes = GfJsonArray.toByteArray(fileMessageJsonBytes);
fileMessage = new String(fileMessageBytes);
} else { // if on member
- fileMessage = object.get(FILE_MESSAGE).asText();
+ fileMessage = object.getString(FILE_MESSAGE);
}
- String fileDataString = object.get(FILE_DATA_FIELD).asText();
- int fileDataLength = object.get(DATA_LENGTH_FIELD).asInt();
+ String fileDataString = object.getString(FILE_DATA_FIELD);
+ int fileDataLength = object.getInt(DATA_LENGTH_FIELD);
byte[] byteArray = Base64.getDecoder().decode(fileDataString);
byte[] uncompressBytes = CliUtil.uncompressBytes(byteArray,
fileDataLength).getData();
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/LegacyCommandResult.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/LegacyCommandResult.java
index 5ec7c38..afed0f1 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/LegacyCommandResult.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/LegacyCommandResult.java
@@ -262,7 +262,7 @@ public class LegacyCommandResult implements CommandResult {
}
private static String[] getValuesSeparatedByLines(Object object) {
- String valueString = String.valueOf(object);
+ String valueString = "" + object;
return valueString.split(GfshParser.LINE_SEPARATOR);
}
@@ -275,7 +275,7 @@ public class LegacyCommandResult implements CommandResult {
// build Table Header first
for (int i = 0; i < numOfColumns; i++) {
- Object object = columnNames.get(i);
+ Object object = columnNames.getString(i);
if (ResultData.BYTE_DATA_ACCESSOR.equals(object)) {
// skip file data if any
continue;
@@ -286,7 +286,7 @@ public class LegacyCommandResult implements CommandResult {
// Build remaining rows by extracting data column-wise from JSON object
Row[] dataRows = null;
for (int i = 0; i < numOfColumns; i++) {
- Object object = columnNames.get(i);
+ Object object = columnNames.getString(i);
if (ResultData.BYTE_DATA_ACCESSOR.equals(object)) {
// skip file data if any
continue;
@@ -312,7 +312,7 @@ public class LegacyCommandResult implements CommandResult {
// Add data column-wise
for (int j = 0; j < size; j++) {
- dataRows[j].newLeftCol(accumulatedData.get(j));
+ dataRows[j].newLeftCol(accumulatedData.getString(j));
}
return dataRows;
}
@@ -402,6 +402,7 @@ public class LegacyCommandResult implements CommandResult {
public String getMessageFromContent() {
List<String> messages;
try {
+ // System.out.println("BRUCE: getMessageFromContent()
content="+getContent());
GfJsonArray jsonArray = getContent().getJSONArray("message");
if (jsonArray == null) {
return "";
@@ -421,6 +422,7 @@ public class LegacyCommandResult implements CommandResult {
@Override
public List<String> getListFromContent(String key) {
+ System.out.println("BRUCE: LegacyCommandResult.getListFromContentString("
+ key + ")");
return getContent().getArrayValues(key);
}
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ModelCommandResult.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ModelCommandResult.java
index 3143d61..dfe8e00 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ModelCommandResult.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ModelCommandResult.java
@@ -167,6 +167,7 @@ public class ModelCommandResult implements CommandResult {
@Override
public List<String> getListFromContent(String key) {
+ System.out.println("BRUCE: ModelCommandResult.getListFromContentString(" +
key + ")");
return null;
}
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultData.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultData.java
index 94cf9ed..e79da62 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultData.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultData.java
@@ -14,6 +14,8 @@
*/
package org.apache.geode.management.internal.cli.result;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
import org.apache.geode.management.cli.Result.Status;
import org.apache.geode.management.internal.cli.json.GfJsonObject;
@@ -46,21 +48,25 @@ public interface ResultData {
String getFooter();
+ @JsonIgnore
default GfJsonObject getGfJsonObject() {
throw new UnsupportedOperationException(
"This should never be called and only exists during migration from
GfJsonObject to POJOs - use getContent() instead");
}
+ @JsonIgnore
default String getType() {
throw new UnsupportedOperationException(
"This should never be called and only exists during migration from
GfJsonObject to POJOs");
}
+ @JsonIgnore
default Status getStatus() {
throw new UnsupportedOperationException(
"This should never be called and only exists during migration from
GfJsonObject to POJOs");
}
+ @JsonIgnore
default void setStatus(final Status status) {
throw new UnsupportedOperationException(
"This should never be called and only exists during migration from
GfJsonObject to POJOs");
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/TabularResultData.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/TabularResultData.java
index c18b892..736e60f 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/TabularResultData.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/TabularResultData.java
@@ -119,7 +119,7 @@ public class TabularResultData extends AbstractResultData {
GfJsonArray jsonArray = contentObject.getJSONArray(columnName);
int size = jsonArray.size();
for (int i = 0; i < size; i++) {
- values.add(String.valueOf(jsonArray.get(i)));
+ values.add(String.valueOf(jsonArray.getString(i)));
}
} catch (GfJsonException e) {
throw new ResultDataException(e.getMessage());
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
index ac38304..0e01adb 100755
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
@@ -270,18 +270,23 @@ public class Gfsh extends JLineShell {
}
public static void println() {
+ System.out.println("Bruce: println()");
gfshout.println();
}
public static <T> void println(T toPrint) {
+ System.out.println("Bruce: println(" + "\"" + toPrint + "\")");
gfshout.println(toPrint);
}
public static <T> void print(T toPrint) {
+ System.out.print("Bruce: print(\"" + toPrint + "\")");
gfshout.print(toPrint);
}
public static <T> void printlnErr(T toPrint) {
+ System.err.println("Bruce: printlnErr(\"" + toPrint + "\"");
+ Thread.dumpStack();
gfsherr.println(toPrint);
}
@@ -706,7 +711,9 @@ public class Gfsh extends JLineShell {
if (!isScriptRunning) {
// Normal Command
while (commandResult.hasNextLine()) {
- write(commandResult.nextLine(), isError);
+ String nextLine = commandResult.nextLine();
+ System.out.println("Bruce: Gfsh.handleExecutionResult writing "
+ nextLine);
+ write(nextLine, isError);
}
} else if (!suppressScriptCmdOutput) {
// Command is part of script. Show output only when quite=false
@@ -722,6 +729,7 @@ public class Gfsh extends JLineShell {
// to save the exported file at this point. All file saving should be
done in the
// specific command's postExecutor
if (result instanceof LegacyCommandResult) {
+ System.out.println("Bruce: Gfsh.handleExecutionResult processing
LegacyCommandResult");
CommandResult cmdResult = (CommandResult) result;
if (cmdResult.hasIncomingFiles()) {
boolean isAlreadySaved = cmdResult.getNumTimesSaved() > 0;
@@ -733,9 +741,11 @@ public class Gfsh extends JLineShell {
}
}
if (result != null && !(result instanceof Result)) {
+ System.out.println("Bruce: Gfsh.handleExecutionResult is printing " +
result);
printAsInfo(result.toString());
}
} catch (Exception e) {
+ e.printStackTrace();
printAsWarning(e.getMessage());
logToFile(e.getMessage(), e);
}
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java
b/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java
index 16e53e5..e070cd6 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java
@@ -48,6 +48,7 @@ import org.springframework.web.multipart.MultipartFile;
import org.apache.geode.annotations.Immutable;
import org.apache.geode.cache.RegionShortcut;
+import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.internal.GemFireVersion;
import org.apache.geode.internal.util.IOUtils;
import org.apache.geode.management.cli.Result;
@@ -191,8 +192,12 @@ public class ShellCommandsController extends
AbstractCommandsController {
private ResponseEntity<InputStreamResource> getResponse(String result) {
CommandResult commandResult = ResultBuilder.fromJson(result);
if (commandResult.getStatus().equals(Result.Status.OK) &&
commandResult.hasFileToDownload()) {
+ InternalDistributedSystem.getLogger()
+ .info("Bruce: returning file download response from
ShellCommandsController.getResponse");
return getFileDownloadResponse(commandResult);
} else {
+ InternalDistributedSystem.getLogger()
+ .info("Bruce: returning json response from
ShellCommandsController.getResponse");
return getJsonResponse(result);
}
}
diff --git
a/geode-core/src/test/java/org/apache/geode/distributed/AbstractLauncherServiceStateTest.java
b/geode-core/src/test/java/org/apache/geode/distributed/AbstractLauncherServiceStateTest.java
index da47ac7..07d0a36 100755
---
a/geode-core/src/test/java/org/apache/geode/distributed/AbstractLauncherServiceStateTest.java
+++
b/geode-core/src/test/java/org/apache/geode/distributed/AbstractLauncherServiceStateTest.java
@@ -42,7 +42,6 @@ import org.junit.Test;
import org.apache.geode.internal.GemFireVersion;
import org.apache.geode.internal.process.ProcessUtils;
-import org.apache.geode.management.internal.cli.json.GfJsonArray;
import org.apache.geode.management.internal.cli.json.GfJsonException;
import org.apache.geode.management.internal.cli.json.GfJsonObject;
@@ -805,8 +804,7 @@ public class AbstractLauncherServiceStateTest {
GfJsonObject gfJsonObject = new GfJsonObject(json);
Status status =
valueOfDescription(gfJsonObject.getString(JSON_STATUS));
- List<String> jvmArguments = Arrays
-
.asList(GfJsonArray.toStringArray(gfJsonObject.getJSONArray(JSON_JVMARGUMENTS)));
+ List<String> jvmArguments =
gfJsonObject.getJSONArray(JSON_JVMARGUMENTS).toStringList();
return new TestState(status,
gfJsonObject.getString(JSON_STATUSMESSAGE),
gfJsonObject.getLong(JSON_TIMESTAMP),
gfJsonObject.getString(JSON_LOCATION),
diff --git
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/json/GfJsonArrayTest.java
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/json/GfJsonArrayTest.java
index 3247bf1..ce67c4b 100644
---
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/json/GfJsonArrayTest.java
+++
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/json/GfJsonArrayTest.java
@@ -59,15 +59,15 @@ public class GfJsonArrayTest {
gfJsonArray = new GfJsonArray(new String[] {"a", "b", "c"});
assertThat(gfJsonArray.size()).isEqualTo(3);
- assertThat(gfJsonArray.get(0)).isEqualTo("a");
- assertThat(gfJsonArray.get(1)).isEqualTo("b");
- assertThat(gfJsonArray.get(2)).isEqualTo("c");
+ assertThat(gfJsonArray.getString(0)).isEqualTo("a");
+ assertThat(gfJsonArray.getString(1)).isEqualTo("b");
+ assertThat(gfJsonArray.getString(2)).isEqualTo("c");
}
@Test
public void addSingleObject() throws Exception {
gfJsonArray.put("a");
- assertThat(gfJsonArray.get(0)).isEqualTo("a");
+ assertThat(gfJsonArray.getString(0)).isEqualTo("a");
assertThat(gfJsonArray.toString()).isEqualTo("[\"a\"]");
}
@@ -77,9 +77,9 @@ public class GfJsonArrayTest {
gfJsonArray.put("b");
gfJsonArray.put("c");
- assertThat(gfJsonArray.get(0)).isEqualTo("a");
- assertThat(gfJsonArray.get(1)).isEqualTo("b");
- assertThat(gfJsonArray.get(2)).isEqualTo("c");
+ assertThat(gfJsonArray.getString(0)).isEqualTo("a");
+ assertThat(gfJsonArray.getString(1)).isEqualTo("b");
+ assertThat(gfJsonArray.getString(2)).isEqualTo("c");
assertThat(gfJsonArray.toString()).isEqualTo("[\"a\",\"b\",\"c\"]");
}
diff --git
a/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
b/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
index f395e36..2a31f6f 100644
---
a/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
+++
b/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
@@ -105,6 +105,9 @@ public class HeadlessGfsh implements ResultHandler {
if (!success && shell.output != null) {
outputString = shell.output.toString();
shell.output.reset();
+ System.out.println(
+ "Bruce: HeadlessGfsh.executeCommand setting gfsh.outputString to " +
outputString);
+ Thread.dumpStack();
}
return success;
}
@@ -117,6 +120,11 @@ public class HeadlessGfsh implements ResultHandler {
@Override
public void handleExecutionResult(Object result, String sysout) {
queue.add(result);
+ System.out.println("Bruce: HeadlessGfsh.handleExecutionResult result class
is "
+ + result.getClass() + " toString=" + result);
+ System.out
+ .println("Bruce: HeadlessGfsh.handleExecutionResult is setting
gfsh.outputString to \""
+ + sysout + "\"");
outputString = sysout;
}
@@ -126,6 +134,7 @@ public class HeadlessGfsh implements ResultHandler {
return null;
try {
Object result = queue.poll(timeout, TimeUnit.SECONDS);
+ // System.out.println("Bruce: HeadlessGfsh.getResult found " + result);
queue.clear();
if (!(result instanceof
org.apache.geode.management.internal.cli.result.CommandResult)) {
if (result == null) {
@@ -206,6 +215,8 @@ public class HeadlessGfsh implements ResultHandler {
@Override
protected void handleExecutionResult(Object result) {
if (!result.equals(ERROR_RESULT)) {
+ System.out
+ .println("HeadlessGfsh.handleExecutionResult output is \"" +
output.toString() + "\"");
super.handleExecutionResult(result);
handler.handleExecutionResult(result, output.toString());
output.reset();
diff --git
a/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/GfshCommandRule.java
b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/GfshCommandRule.java
index eb25ebf..3e3fc0d 100644
---
a/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/GfshCommandRule.java
+++
b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/GfshCommandRule.java
@@ -256,6 +256,8 @@ public class GfshCommandRule extends
DescribedExternalResource {
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
+ System.out
+ .println("Bruce: GfshCommandRule.executeCommand gfsh.outputString=" +
gfsh.outputString);
if (StringUtils.isBlank(gfsh.outputString) && result != null
&& !result.getMessageFromContent().isEmpty()) {
if (result.getStatus() == Result.Status.ERROR) {