Description
While using oak-run console against a repository which is configured with blobstore displaying the node content throws exception if blobstore is not configured while launching oak-run
/jcr:system/jcr:versionStorage/cb/c4/6a/cbc46ae0-bf55-4033-a0c9-15316fd31f3f/1.1/jcr:frozenNode/jcr:content> pn ERROR java.lang.IllegalStateException: Attempt to read external blob with blobId [b885eaf812d1efa57170dc70337a5d815bcba087#5000000] without specifying BlobStore at org.apache.jackrabbit.oak.plugins.segment.file.FileStore.readBlob (FileStore.java:1324) at org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getBlob (SegmentBlob.java:261) at org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getLength (SegmentBlob.java:269) at org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.length (SegmentBlob.java:109) at org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.size (SegmentPropertyState.java:209) at org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.size (SegmentPropertyState.java:156) at org.apache.jackrabbit.oak.plugins.memory.AbstractPropertyState.toString (AbstractPropertyState.java:70) at org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.toString (SegmentPropertyState.java:242) at org.apache.jackrabbit.oak.spi.state.AbstractNodeState.toString (AbstractNodeState.java:208) at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.toString (SegmentNodeState.java:620) at org.apache.jackrabbit.oak.spi.state.AbstractChildNodeEntry.toString (AbstractChildNodeEntry.java:37) at org.apache.jackrabbit.oak.spi.state.AbstractNodeState.toString (AbstractNodeState.java:213) at org.apache.jackrabbit.oak.console.commands.PnCommand.execute (PnCommand.groovy:38)
AbstractPropertyState#toString(org.apache.jackrabbit.oak.api.PropertyState) should handle such scenario gracefully and return some marker value
This would simplify analysing repository content where we only have access to NodeStore content