Skip to content

Commit

Permalink
make ThreadLocal usage static as per recommendations (#1441)
Browse files Browse the repository at this point in the history
Co-authored-by: McKerrell, Graeme <Graeme_McKerrell@McAfee.com>
Co-authored-by: Aaron Klish <aklish@gmail.com>
  • Loading branch information
3 people committed Jul 14, 2020
1 parent cafbd29 commit 2925b68
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 11 deletions.
11 changes: 4 additions & 7 deletions elide-core/src/main/java/com/yahoo/elide/audit/AuditLogger.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,17 @@
* This class uses ThreadLocal list to be thread safe.
*/
public abstract class AuditLogger {
protected final ThreadLocal<List<LogMessage>> messages;

public AuditLogger() {
messages = ThreadLocal.withInitial(ArrayList::new);
}
protected static final ThreadLocal<List<LogMessage>> MESSAGES =
ThreadLocal.withInitial(ArrayList::new);

public void log(LogMessage message) {
messages.get().add(message);
MESSAGES.get().add(message);
}

public abstract void commit(RequestScope requestScope) throws IOException;

public void clear() {
List<LogMessage> remainingMessages = messages.get();
List<LogMessage> remainingMessages = MESSAGES.get();
if (remainingMessages != null) {
remainingMessages.clear();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ public class Slf4jLogger extends AuditLogger {
@Override
public void commit(RequestScope requestScope) throws IOException {
try {
for (LogMessage message : messages.get()) {
for (LogMessage message : MESSAGES.get()) {
log.info("{} {} {}", System.currentTimeMillis(), message.getOperationCode(), message.getMessage());
}
} finally {
messages.get().clear();
MESSAGES.get().clear();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ public void commit(RequestScope requestScope) throws IOException {
}

public List<LogMessage> getMessages() {
return new ArrayList<>(this.messages.get());
return new ArrayList<>(this.MESSAGES.get());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1800,6 +1800,7 @@ public void testFieldLevelAudit() throws Exception {
assertEquals("UPDATE Child 5 Parent 7", message.getMessage(), "Logging template should match");

assertEquals(1, message.getOperationCode(), "Operation code should match");
logger.clear(); // tidy up this thread's messages
}

@Test
Expand All @@ -1823,6 +1824,7 @@ public void testClassLevelAudit() throws Exception {
assertEquals("CREATE Child 5 Parent 7", message.getMessage(), "Logging template should match");

assertEquals(0, message.getOperationCode(), "Operation code should match");
logger.clear(); // tidy up this thread's messages
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class InMemoryLogger extends AuditLogger {

@Override
public void commit(RequestScope requestScope) throws IOException {
for (LogMessage message : messages.get()) {
for (LogMessage message : MESSAGES.get()) {
if (message.getChangeSpec().isPresent()) {
logMessages.add(changeSpecToString(message.getChangeSpec().get()));
}
Expand Down

0 comments on commit 2925b68

Please sign in to comment.