You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2014/05/28 17:51:43 UTC
svn commit: r1598053 -
/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
Author: olegk
Date: Wed May 28 15:51:42 2014
New Revision: 1598053
URL: http://svn.apache.org/r1598053
Log:
Slightly better synchronization
Modified:
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java?rev=1598053&r1=1598052&r2=1598053&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java Wed May 28 15:51:42 2014
@@ -117,6 +117,7 @@ public abstract class AbstractMultiworke
private final Thread[] threads;
private final Object statusLock;
+ //TODO: make final
protected IOReactorExceptionHandler exceptionHandler;
protected List<ExceptionEvent> auditLog;
@@ -151,6 +152,7 @@ public abstract class AbstractMultiworke
} else {
this.threadFactory = new DefaultThreadFactory();
}
+ this.auditLog = new ArrayList<ExceptionEvent>();
this.workerCount = this.config.getIoThreadCount();
this.dispatchers = new BaseIOReactor[workerCount];
this.workers = new Worker[workerCount];
@@ -217,11 +219,9 @@ public abstract class AbstractMultiworke
*
* @return audit log.
*/
- public synchronized List<ExceptionEvent> getAuditLog() {
- if (this.auditLog != null) {
+ public List<ExceptionEvent> getAuditLog() {
+ synchronized (this.auditLog) {
return new ArrayList<ExceptionEvent>(this.auditLog);
- } else {
- return null;
}
}
@@ -237,10 +237,9 @@ public abstract class AbstractMultiworke
if (ex == null) {
return;
}
- if (this.auditLog == null) {
- this.auditLog = new ArrayList<ExceptionEvent>();
+ synchronized (this.auditLog) {
+ this.auditLog.add(new ExceptionEvent(ex, timestamp != null ? timestamp : new Date()));
}
- this.auditLog.add(new ExceptionEvent(ex, timestamp != null ? timestamp : new Date()));
}
/**