NodeList sessionsNode = document.getElementsByTagName(MIStrings.SESSION);
// There should be only one session
if (sessionsNode.getLength() != 1) {
- throw new ExecutionException(Messages.TraceControl_MiInvalidNumberOfElementError);
+ throw new ExecutionException(NLS.bind(Messages.TraceControl_MiInvalidNumberOfElementError, MIStrings.SESSION));
}
// Populate session information
ICommandResult result = executeCommand(command.toString(), monitor, false);
List<IBaseEventInfo> events = new ArrayList<>();
- if (isError(result)) {
- return events;
+ if (isError(result) && result.getErrorOutput() != null) {
+ // Ignore the following 2 cases:
+ // Spawning a session daemon
+ // Error: Unable to list kernel events
+ // or:
+ // Error: Unable to list kernel events
+ if (ignoredPattern(result.getErrorOutput(), LTTngControlServiceConstants.LIST_KERNEL_NO_KERNEL_PROVIDER_PATTERN)) {
+ return events;
+ }
+ throw new ExecutionException(Messages.TraceControl_CommandError + LTTngControlServiceConstants.COMMAND_LIST_KERNEL);
}
Document document = getDocumentFromStrings(result.getOutput());
ICommandResult result = executeCommand(command.toString(), monitor, false);
List<IUstProviderInfo> allProviders = new ArrayList<>();
- if (isError(result)) {
- return allProviders;
+ if (isError(result) && result.getErrorOutput() != null) {
+ // Ignore the following 2 cases:
+ // Spawning a session daemon
+ // Error: Unable to list UST events: Listing UST events failed
+ // or:
+ // Error: Unable to list UST events: Listing UST events failed
+ if (ignoredPattern(result.getErrorOutput(), LTTngControlServiceConstants.LIST_UST_NO_UST_PROVIDER_PATTERN)) {
+ return allProviders;
+ }
+ throw new ExecutionException(Messages.TraceControl_CommandError + LTTngControlServiceConstants.COMMAND_LIST_UST);
}
Document document = getDocumentFromStrings(result.getOutput());
@Override
public void destroySession(String sessionName, IProgressMonitor monitor) throws ExecutionException {
- // TODO Auto-generated method stub
+ String newName = formatParameter(sessionName);
- }
+ StringBuffer command = createCommand(LTTngControlServiceConstants.COMMAND_DESTROY_SESSION, newName);
- @Override
- public void startSession(String sessionName, IProgressMonitor monitor) throws ExecutionException {
- // TODO Auto-generated method stub
+ ICommandResult result = executeCommand(command.toString(), monitor, false);
+ String[] errorOutput = result.getErrorOutput();
- }
+ if (isError(result) && (errorOutput != null)) {
+ // Don't treat this as an error
+ if (ignoredPattern(errorOutput, LTTngControlServiceConstants.SESSION_NOT_FOUND_ERROR_PATTERN)) {
+ return;
- @Override
- public void stopSession(String sessionName, IProgressMonitor monitor) throws ExecutionException {
- // TODO Auto-generated method stub
+ }
+ throw new ExecutionException(Messages.TraceControl_CommandError + " " + command.toString() + "\n" + formatOutput(result)); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // Check for action effect
+ Document doc = getDocumentFromStrings(result.getOutput());
+ NodeList sessions = doc.getElementsByTagName(MIStrings.SESSION);
+ if (sessions.getLength() != 1) {
+ throw new ExecutionException(NLS.bind(Messages.TraceControl_MiInvalidNumberOfElementError, MIStrings.SESSION));
+ }
+ Node rawSessionName = getFirstOf(sessions.item(0).getChildNodes(), MIStrings.NAME);
+ if (rawSessionName == null) {
+ throw new ExecutionException(Messages.TraceControl_MiMissingRequiredError);
+ }
+
+ // Validity check
+ if (!rawSessionName.getTextContent().equals(sessionName)) {
+ throw new ExecutionException(NLS.bind(Messages.TraceControl_UnexpectedValueError, rawSessionName.getTextContent(), sessionName));
+ }
}
@Override