writeFieldMetadata spams the log with ERRORs and attempts to alter record state
Opened this issue · 0 comments
tokee commented
When using the CumulusRecord#writeFieldMetadata(OutputStream) method with read-only credentials, the the method logs the ERROR
stated below.
This contaminates the log and it is quite worrying that a presumably read-only operation seemingly tries to modify the state of the record at the server!?
2019-11-21 09:56:59.115 ERROR dk.kb.cumulus.CumulusRecord - Could not set the value 'f44fa439-40da-4bd2-b46b-882ff522b571' for the field '{4f68838d-0e2f-471e-b8fc-b95ae2821912}'
com.canto.cumulus.exceptions.PermissionDeniedException: $ModifyItem: Permission denied
at com.canto.cumulus.Item.save1(Native Method)
at com.canto.cumulus.Item.save(Item.java:165)
at com.canto.cumulus.Item.save(Item.java:151)
at dk.kb.cumulus.CumulusRecord.setStringValueInField(CumulusRecord.java:422)
at dk.kb.cumulus.CumulusRecord.setStringValueInField(CumulusRecord.java:139)
at dk.kb.cumulus.FieldExtractor.extractBinaryField(FieldExtractor.java:292)
at dk.kb.cumulus.FieldExtractor.getFieldValue(FieldExtractor.java:173)
at dk.kb.cumulus.FieldExtractor.getFields(FieldExtractor.java:104)
at dk.kb.cumulus.FieldExtractor.getFields(FieldExtractor.java:67)
at dk.kb.cumulus.CumulusRecord.writeFieldMetadata(CumulusRecord.java:251)
at dk.kb.ds.cumulus.export.CumulusStats.collect(CumulusStats.java:88)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.SliceOps$1$1.accept(SliceOps.java:199)
at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
at dk.kb.ds.cumulus.export.CumulusStats.<init>(CumulusStats.java:70)
at dk.kb.ds.cumulus.export.CumulusStats.main(CumulusStats.java:50)