[ https://issues.apache.org/jira/browse/METRON-601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15712236#comment-15712236 ]
ASF GitHub Bot commented on METRON-601: --------------------------------------- Github user nickwallen commented on a diff in the pull request: https://github.com/apache/incubator-metron/pull/381#discussion_r90467737 --- Diff: metron-platform/metron-test-utilities/src/main/java/org/apache/metron/test/mock/MockHTable.java --- @@ -437,15 +463,14 @@ public ResultScanner getScanner(byte[] family, byte[] qualifier) return getScanner(scan); } - List<Put> putLog = new ArrayList<>(); - public List<Put> getPutLog() { - return putLog; + return ImmutableList.copyOf(putLog.get()); } @Override public void put(Put put) throws IOException { - putLog.add(put); + putLog.get().add(put); --- End diff -- See my response to @justinleet per `synchronizedList`. Per your testing question: "I have triggered this code to run in Travis CI many times without seeing a failure. Prior to this the Travis CI builds would more likely fail than not." > MockHTable Put Log is Not Thread Safe > ------------------------------------- > > Key: METRON-601 > URL: https://issues.apache.org/jira/browse/METRON-601 > Project: Metron > Issue Type: Sub-task > Reporter: Nick Allen > Assignee: Nick Allen > > The MockHTable uses an ArrayList to store a log of Puts that have been > submitted against the MockHTable. The MockHTable, along with the put log, is > accessed from multiple threads during the integration tests. Access to the > Put log is not thread safe, which is likely at least one cause of METRON-597. > The Put log is used by multiple tests, but more so by the > ProfilerIntegrationTest. This tests polls the list to block the thread until > the expected number of Puts have been submitted. This is likely why this > test is more impacted by this issue than others. > The Put Log needs to made thread safe. See > `org.apache.metron.test.mock.MockHTable.putLog` -- This message was sent by Atlassian JIRA (v6.3.4#6332)