-
Notifications
You must be signed in to change notification settings - Fork 116
Closed
Description
Text logs can be created like normal, but when attempting to create a log with an attachment I get the following output on my terminal from phoebus:
java.lang.IllegalArgumentException: argument "content" is null
at com.fasterxml.jackson.databind.ObjectMapper._assertNotNull(ObjectMapper.java:4757)
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3040)
at org.phoebus.logbook.olog.ui.write.LogEntryEditorController.lambda$getServerSideStaticData$39(LogEntryEditorController.java:825)
at org.phoebus.framework.jobs.Job.execute(Job.java:50)
at org.phoebus.framework.jobs.JobManager.execute(JobManager.java:54)
at org.phoebus.framework.jobs.JobManager.lambda$schedule$0(JobManager.java:45)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-06-18 18:36:54 WARNING [org.phoebus.applications.logbook.InMemoryLogClient] failed to get in memory attachment
java.nio.file.FileAlreadyExistsException: /tmp/phoebus_tmp_file10766245626850128112.png
at java.base/sun.nio.fs.UnixFileSystem.copy(UnixFileSystem.java:1044)
at java.base/sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:300)
at java.base/java.nio.file.Files.copy(Files.java:1305)
at org.phoebus.applications.logbook.InMemoryLogClient.lambda$set$0(InMemoryLogClient.java:131)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:722)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.phoebus.applications.logbook.InMemoryLogClient.set(InMemoryLogClient.java:139)
at org.phoebus.logbook.olog.ui.write.LogEntryEditorController.lambda$submit$30(LogEntryEditorController.java:612)
at org.phoebus.framework.jobs.Job.execute(Job.java:50)
at org.phoebus.framework.jobs.JobManager.execute(JobManager.java:54)
at org.phoebus.framework.jobs.JobManager.lambda$schedule$0(JobManager.java:45)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-06-18 18:36:54 WARNING [org.phoebus.framework.jobs] Job 'Submit Log Entry' failed
java.lang.NullPointerException: Cannot invoke "org.phoebus.logbook.Attachment.getFile()" because "a" is null
at org.phoebus.logbook.LogEntryImpl.lambda$new$2(LogEntryImpl.java:41)
at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:179)
at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.phoebus.logbook.LogEntryImpl.<init>(LogEntryImpl.java:41)
at org.phoebus.logbook.LogEntryImpl$LogEntryBuilder.build(LogEntryImpl.java:303)
at org.phoebus.applications.logbook.InMemoryLogClient.set(InMemoryLogClient.java:143)
at org.phoebus.logbook.olog.ui.write.LogEntryEditorController.lambda$submit$30(LogEntryEditorController.java:612)
at org.phoebus.framework.jobs.Job.execute(Job.java:50)
at org.phoebus.framework.jobs.JobManager.execute(JobManager.java:54)
phoebus/app/logbook/inmemory/src/main/java/org/phoebus/applications/logbook/InMemoryLogClient.java
Line 130 in 0332a7f
| File tempFile = File.createTempFile(prefix, ext); |
Throws:
FileAlreadyExistsException – if the target file exists but cannot be replaced because the REPLACE_EXISTING option is not specified (optional specific exception)
So
Files.copy(file.toPath(), tempFile.toPath());should probably be replaced with
Files.copy(file.toPath(), tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING);Metadata
Metadata
Assignees
Labels
No labels