aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src/vespa/storage/visiting/visitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/src/vespa/storage/visiting/visitor.cpp')
-rw-r--r--storage/src/vespa/storage/visiting/visitor.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/storage/src/vespa/storage/visiting/visitor.cpp b/storage/src/vespa/storage/visiting/visitor.cpp
index e8a217fc718..91f304ad9a0 100644
--- a/storage/src/vespa/storage/visiting/visitor.cpp
+++ b/storage/src/vespa/storage/visiting/visitor.cpp
@@ -2,15 +2,15 @@
#include "visitor.h"
#include "visitormetrics.h"
+#include <vespa/document/select/node.h>
+#include <vespa/document/fieldset/fieldsets.h>
+#include <vespa/documentapi/messagebus/messages/visitor.h>
#include <vespa/persistence/spi/docentry.h>
-#include <vespa/storageframework/generic/clock/timer.h>
#include <vespa/storageapi/message/datagram.h>
+#include <vespa/storageframework/generic/clock/timer.h>
#include <vespa/storage/persistence/messages.h>
-#include <vespa/documentapi/messagebus/messages/visitor.h>
-#include <vespa/document/select/node.h>
-#include <vespa/document/fieldset/fieldsets.h>
-#include <vespa/vespalib/stllike/hash_map.hpp>
#include <vespa/vespalib/stllike/asciistream.h>
+#include <vespa/vespalib/util/string_escape.h>
#include <vespa/vespalib/util/stringfmt.h>
#include <unordered_map>
#include <sstream>
@@ -932,10 +932,12 @@ Visitor::continueVisitor()
void
Visitor::getStatus(std::ostream& out, bool verbose) const
{
+ using vespalib::xml_content_escaped;
+
out << "<table border=\"1\"><tr><td>Property</td><td>Value</td></tr>\n";
out << "<tr><td>Visitor id</td><td>" << _visitorId << "</td></tr>\n";
- out << "<tr><td>Visitor name</td><td>" << _id << "</td></tr>\n";
+ out << "<tr><td>Visitor name</td><td>" << xml_content_escaped(_id) << "</td></tr>\n";
out << "<tr><td>Number of buckets to visit</td><td>" << _buckets.size()
<< "</td></tr>\n";
@@ -953,7 +955,7 @@ Visitor::getStatus(std::ostream& out, bool verbose) const
<< "</td></tr>\n";
out << "<tr><td>Current status</td><td>"
- << _result << "</td></tr>\n";
+ << xml_content_escaped(_result.toString()) << "</td></tr>\n";
out << "<tr><td>Failed</td><td>" << (failed() ? "true" : "false")
<< "</td></tr>\n";
@@ -973,28 +975,28 @@ Visitor::getStatus(std::ostream& out, bool verbose) const
out << "<tr><td>Called completed visitor</td><td>"
<< (_calledCompletedVisitor ? "true" : "false") << "</td></tr>\n";
out << "<tr><td>Visiting fields</td><td>"
- << _visitorOptions._fieldSet
+ << xml_content_escaped(_visitorOptions._fieldSet)
<< "</td></tr>\n";
out << "<tr><td>Visiting removes</td><td>"
<< (_visitorOptions._visitRemoves ? "true" : "false")
<< "</td></tr>\n";
out << "<tr><td>Control destination</td><td>";
if (_controlDestination.get()) {
- out << _controlDestination->toString();
+ out << xml_content_escaped(_controlDestination->toString());
} else {
out << "nil";
}
out << "</td></tr>\n";
out << "<tr><td>Data destination</td><td>";
if (_dataDestination.get()) {
- out << _dataDestination->toString();
+ out << xml_content_escaped(_dataDestination->toString());
} else {
out << "nil";
}
out << "</td></tr>\n";
out << "<tr><td>Document selection</td><td>";
if (_documentSelection.get()) {
- out << *_documentSelection;
+ out << xml_content_escaped(_documentSelection->toString());
} else {
out << "nil";
}
@@ -1052,7 +1054,7 @@ Visitor::getStatus(std::ostream& out, bool verbose) const
for (auto& idAndMeta : _visitorTarget._messageMeta) {
const VisitorTarget::MessageMeta& meta(idAndMeta.second);
out << "Message #" << idAndMeta.first << " <b>"
- << meta.messageText << "</b> ";
+ << xml_content_escaped(meta.messageText) << "</b> ";
if (meta.retryCount > 0) {
out << "Retried " << meta.retryCount << " times. ";
}