Skip to content

Commit ef00f2d

Browse files
garyrussellartembilan
authored andcommitted
GH-1148: Revert Log4j Appender Change
Resolves #1148 Fix is now in Spring Framework.
1 parent 028550c commit ef00f2d

File tree

2 files changed

+12
-21
lines changed

2 files changed

+12
-21
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ ext {
6464
rabbitmqHttpClientVersion = '2.1.0.RELEASE'
6565
reactorVersion = '3.2.12.RELEASE'
6666
springRetryVersion = '1.2.4.RELEASE'
67-
springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.1.11.RELEASE'
67+
springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.1.14.BUILD-SNAPSHOT'
6868

6969

7070
expandPlaceholders = '**/quick-tour.xml'

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/log4j2/AmqpAppender.java

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public class AmqpAppender extends AbstractAppender {
123123
/**
124124
* The template.
125125
*/
126-
private RabbitTemplate rabbitTemplate;
126+
private final RabbitTemplate rabbitTemplate = new RabbitTemplate();
127127

128128
/**
129129
* Where LoggingEvents are queued to send.
@@ -256,12 +256,18 @@ public static AmqpAppender createAppender(// NOSONAR NCSS line count
256256
* Submit the required number of senders into the pool.
257257
*/
258258
private void startSenders() {
259+
this.rabbitTemplate.setConnectionFactory(this.manager.connectionFactory);
259260
if (this.manager.async) {
260-
this.manager.senderPool = Executors.newCachedThreadPool();
261261
for (int i = 0; i < this.manager.senderPoolSize; i++) {
262262
this.manager.senderPool.submit(new EventSender());
263263
}
264264
}
265+
else if (this.manager.maxSenderRetries > 0) {
266+
RetryTemplate retryTemplate = new RetryTemplate();
267+
RetryPolicy retryPolicy = new SimpleRetryPolicy(this.manager.maxSenderRetries);
268+
retryTemplate.setRetryPolicy(retryPolicy);
269+
this.rabbitTemplate.setRetryTemplate(retryTemplate);
270+
}
265271
}
266272

267273
@Override
@@ -287,22 +293,6 @@ protected Message postProcessMessageBeforeSend(Message message, Event event) {
287293
}
288294

289295
protected void sendEvent(Event event, Map<?, ?> properties) {
290-
synchronized (this) {
291-
if (this.rabbitTemplate == null) {
292-
if (this.manager.activateOptions()) {
293-
this.rabbitTemplate = new RabbitTemplate(this.manager.connectionFactory);
294-
if (!this.manager.async && this.manager.maxSenderRetries > 0) {
295-
RetryTemplate retryTemplate = new RetryTemplate();
296-
RetryPolicy retryPolicy = new SimpleRetryPolicy(this.manager.maxSenderRetries);
297-
retryTemplate.setRetryPolicy(retryPolicy);
298-
this.rabbitTemplate.setRetryTemplate(retryTemplate);
299-
}
300-
}
301-
else {
302-
throw new AmqpException("Cannot create template");
303-
}
304-
}
305-
}
306296
LogEvent logEvent = event.getEvent();
307297
String name = logEvent.getLoggerName();
308298
Level level = logEvent.getLevel();
@@ -368,7 +358,7 @@ protected void doSend(Event event, LogEvent logEvent, MessageProperties amqpProp
368358
message = new Message(msgBody.toString().getBytes(), amqpProps); //NOSONAR (default charset)
369359
}
370360
message = postProcessMessageBeforeSend(message, event);
371-
this.rabbitTemplate.send(this.manager.exchangeName, routingKey, message); // NOSONAR (sync)
361+
this.rabbitTemplate.send(this.manager.exchangeName, routingKey, message);
372362
}
373363
catch (AmqpException e) {
374364
int retries = event.incrementRetries();
@@ -661,7 +651,7 @@ protected AmqpManager(LoggerContext loggerContext, String name) {
661651
super(loggerContext, name);
662652
}
663653

664-
boolean activateOptions() {
654+
private boolean activateOptions() {
665655
ConnectionFactory rabbitConnectionFactory = createRabbitConnectionFactory();
666656
if (rabbitConnectionFactory != null) {
667657
Assert.state(this.applicationId != null, "applicationId is required");
@@ -683,6 +673,7 @@ boolean activateOptions() {
683673
this.clientConnectionProperties);
684674
}
685675
setUpExchangeDeclaration();
676+
this.senderPool = Executors.newCachedThreadPool();
686677
return true;
687678
}
688679
return false;

0 commit comments

Comments
 (0)