From 01448c22c5fd0a8d659e7a4b3e4def5bf482ad73 Mon Sep 17 00:00:00 2001 From: Iaroslav Iershov Date: Fri, 22 Jun 2018 11:14:45 +0300 Subject: [PATCH] #24: Fixed NPE in log storage --- .../com/github/invictum/reportportal/LogStorage.java | 12 ++++++++---- .../github/invictum/reportportal/LogStorageTest.java | 7 +++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/github/invictum/reportportal/LogStorage.java b/src/main/java/com/github/invictum/reportportal/LogStorage.java index b28e71f..2da84e4 100644 --- a/src/main/java/com/github/invictum/reportportal/LogStorage.java +++ b/src/main/java/com/github/invictum/reportportal/LogStorage.java @@ -1,5 +1,6 @@ package com.github.invictum.reportportal; +import org.openqa.selenium.logging.LogEntries; import org.openqa.selenium.logging.Logs; import java.util.ArrayList; @@ -30,10 +31,13 @@ public void collect(Logs seleniumLogs) { } // Collect all available logs types.get().ifPresent(types -> types.forEach(type -> { - List typedLogs = seleniumLogs.get(type).getAll().stream() - .map(log -> new EnhancedLogEntry(type, log.getLevel(), log.getTimestamp(), log.getMessage())) - .collect(Collectors.toList()); - logs.get().addAll(typedLogs); + LogEntries logEntries = seleniumLogs.get(type); + if (logEntries != null) { + List typedLogs = logEntries.getAll().stream() + .map(log -> new EnhancedLogEntry(type, log.getLevel(), log.getTimestamp(), log.getMessage())) + .collect(Collectors.toList()); + logs.get().addAll(typedLogs); + } })); } diff --git a/src/test/java/com/github/invictum/reportportal/LogStorageTest.java b/src/test/java/com/github/invictum/reportportal/LogStorageTest.java index b9db43b..d2b6815 100644 --- a/src/test/java/com/github/invictum/reportportal/LogStorageTest.java +++ b/src/test/java/com/github/invictum/reportportal/LogStorageTest.java @@ -57,4 +57,11 @@ public void collectAvailableTypesOnlyOnceTest() { storage.collect(logsMock); Mockito.verify(logsMock, Mockito.times(1)).getAvailableLogTypes(); } + + @Test + public void skipCollectionIfNull() { + Mockito.when(logsMock.get("data")).thenReturn(null); + storage.collect(logsMock); + Assert.assertTrue(storage.query(item -> true).isEmpty()); + } }