diff --git a/src/main/java/org/scijava/log/LogMessage.java b/src/main/java/org/scijava/log/LogMessage.java index bd84e787f..63ad2caeb 100644 --- a/src/main/java/org/scijava/log/LogMessage.java +++ b/src/main/java/org/scijava/log/LogMessage.java @@ -112,6 +112,7 @@ public Date time() { * {@link #attach(Object)}. */ public Collection attachments() { + if (attachments == null) return Collections.emptyList(); return Collections.unmodifiableCollection(attachments); } diff --git a/src/test/java/org/scijava/log/LogMessageTest.java b/src/test/java/org/scijava/log/LogMessageTest.java index 33cca9a4e..0f19c0b65 100644 --- a/src/test/java/org/scijava/log/LogMessageTest.java +++ b/src/test/java/org/scijava/log/LogMessageTest.java @@ -34,6 +34,12 @@ import org.junit.Assert; import org.junit.Test; +import java.util.ArrayList; +import java.util.Collections; + +import static junit.framework.TestCase.assertTrue; +import static org.junit.Assert.assertEquals; + /** * Tests {@link LogMessage}. * @@ -68,4 +74,13 @@ public void testToStringOptionalParameters() { // test Assert.assertTrue("Log message contains level", s.contains(LogLevel.prefix(message.level()))); } + + @Test + public void testAttachments() { + LogMessage message = new LogMessage(LogSource.newRoot(), LogLevel.ERROR, "Message") ; + assertTrue(message.attachments().isEmpty()); + Object object = new Object(); + message.attach(object); + assertEquals(Collections.singletonList(object), new ArrayList<>(message.attachments())); + } }