Skip to content

Commit

Permalink
Fix typo, store binary in a different property
Browse files Browse the repository at this point in the history
  • Loading branch information
Pablo Castelo committed May 29, 2024
1 parent 4456f1c commit 0e5cb32
Showing 1 changed file with 6 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ public class HistoryUtil {

public static final String ATTR_PATH = "path";
protected static final String ATTR_RUN_OUTPUT = "runOutput";
protected static final String ATTR_RUN_OUTPUT_FULL = "runOutputFull";
protected static final String ATTR_RUN_STATE = "runState";
protected static final String ATTR_RUN_RESULT = "runResult";
protected static final String ATTR_RUN_TIME = "runTime";
Expand All @@ -88,7 +89,7 @@ public class HistoryUtil {
private static final String NAME_INDEX = "oak:index";
// This size is limited by the LuceneDocumentMaker to be able to read the property and create the new index
// The limit is 102400 but just to be in the safe side, is set to a bit lower number
private static final int MAXIMUN_PROPERTY_SIZE = 100000;
private static final int MAXIMUM_PROPERTY_SIZE = 100000;

private Random random = new Random();

Expand Down Expand Up @@ -370,16 +371,18 @@ private void saveExecutionResultInHistory(ExecutionResult result, String path, R
values.put(ATTR_RUN_STATE, result.getState().name());
values.put(ATTR_PATH, result.getPath());
if (StringUtils.isNotBlank(result.getOutput())) {
if (result.getOutput().getBytes(StandardCharsets.UTF_8).length < MAXIMUN_PROPERTY_SIZE) {
if (result.getOutput().getBytes(StandardCharsets.UTF_8).length < MAXIMUM_PROPERTY_SIZE) {
values.put(ATTR_RUN_OUTPUT, result.getOutput());
} else {
values.put(ATTR_RUN_OUTPUT, "Output data too big, full data is stored as a binary in runOutputFull");
LOG.info("Script result is bigger than 100 000 bytes. Full data can be found as a binary in property runOutputFull for path {}", path );
try {
Node node = entry.adaptTo(Node.class);
Session session = node.getSession();
ValueFactory factory = session.getValueFactory();
InputStream is = new ByteArrayInputStream(result.getOutput().getBytes());
Binary binary = factory.createBinary(is);
node.setProperty(ATTR_RUN_OUTPUT, binary);
node.setProperty(ATTR_RUN_OUTPUT_FULL, binary);
session.save();
} catch (RepositoryException e) {
LOG.error("Not able to save the output of the script as binary on the History node [{}]", entry.getPath());
Expand Down

0 comments on commit 0e5cb32

Please sign in to comment.