Skip to content

Commit 8622db9

Browse files
committed
GH-1162: Reinstate GH-1148 Log4j Appender Change
Resolves #1162 Revert "Revert "GH-1148: Revert Log4j Appender Change"" This reverts commit 7af0f90. Upgrade SF to 5.2.4.
1 parent e4c523b commit 8622db9

File tree

2 files changed

+17
-23
lines changed

2 files changed

+17
-23
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ ext {
5353
rabbitmqHttpClientVersion = '3.2.0.RELEASE'
5454
reactorVersion = 'Dysprosium-SR4'
5555
springDataCommonsVersion = '2.2.4.RELEASE'
56-
springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.2.3.RELEASE'
56+
springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.2.4.RELEASE'
5757
springRetryVersion = '1.2.5.RELEASE'
5858
}
5959

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

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public class AmqpAppender extends AbstractAppender {
126126
/**
127127
* The template.
128128
*/
129-
private RabbitTemplate rabbitTemplate;
129+
private final RabbitTemplate rabbitTemplate = new RabbitTemplate();
130130

131131
/**
132132
* Where LoggingEvents are queued to send.
@@ -250,12 +250,18 @@ public static Builder newBuilder() {
250250
* Submit the required number of senders into the pool.
251251
*/
252252
private void startSenders() {
253+
this.rabbitTemplate.setConnectionFactory(this.manager.connectionFactory);
253254
if (this.manager.async) {
254-
this.manager.senderPool = Executors.newCachedThreadPool();
255255
for (int i = 0; i < this.manager.senderPoolSize; i++) {
256256
this.manager.senderPool.submit(new EventSender());
257257
}
258258
}
259+
else if (this.manager.maxSenderRetries > 0) {
260+
RetryTemplate retryTemplate = new RetryTemplate();
261+
RetryPolicy retryPolicy = new SimpleRetryPolicy(this.manager.maxSenderRetries);
262+
retryTemplate.setRetryPolicy(retryPolicy);
263+
this.rabbitTemplate.setRetryTemplate(retryTemplate);
264+
}
259265
}
260266

261267
@Override
@@ -281,22 +287,6 @@ protected Message postProcessMessageBeforeSend(Message message, Event event) {
281287
}
282288

283289
protected void sendEvent(Event event, Map<?, ?> properties) {
284-
synchronized (this) {
285-
if (this.rabbitTemplate == null) {
286-
if (this.manager.activateOptions()) {
287-
this.rabbitTemplate = new RabbitTemplate(this.manager.connectionFactory);
288-
if (!this.manager.async && this.manager.maxSenderRetries > 0) {
289-
RetryTemplate retryTemplate = new RetryTemplate();
290-
RetryPolicy retryPolicy = new SimpleRetryPolicy(this.manager.maxSenderRetries);
291-
retryTemplate.setRetryPolicy(retryPolicy);
292-
this.rabbitTemplate.setRetryTemplate(retryTemplate);
293-
}
294-
}
295-
else {
296-
throw new AmqpException("Cannot create template");
297-
}
298-
}
299-
}
300290
LogEvent logEvent = event.getEvent();
301291
String name = logEvent.getLoggerName();
302292
Level level = logEvent.getLevel();
@@ -362,7 +352,7 @@ protected void doSend(Event event, LogEvent logEvent, MessageProperties amqpProp
362352
message = new Message(msgBody.toString().getBytes(), amqpProps); //NOSONAR (default charset)
363353
}
364354
message = postProcessMessageBeforeSend(message, event);
365-
this.rabbitTemplate.send(this.manager.exchangeName, routingKey, message); // NOSONAR (sync)
355+
this.rabbitTemplate.send(this.manager.exchangeName, routingKey, message);
366356
}
367357
catch (AmqpException e) {
368358
int retries = event.incrementRetries();
@@ -655,7 +645,7 @@ protected AmqpManager(LoggerContext loggerContext, String name) {
655645
super(loggerContext, name);
656646
}
657647

658-
boolean activateOptions() {
648+
private boolean activateOptions() {
659649
ConnectionFactory rabbitConnectionFactory = createRabbitConnectionFactory();
660650
if (rabbitConnectionFactory != null) {
661651
Assert.state(this.applicationId != null, "applicationId is required");
@@ -677,6 +667,7 @@ boolean activateOptions() {
677667
this.clientConnectionProperties);
678668
}
679669
setUpExchangeDeclaration();
670+
this.senderPool = Executors.newCachedThreadPool();
680671
return true;
681672
}
682673
return false;
@@ -1191,8 +1182,11 @@ public AmqpAppender build() {
11911182
}
11921183

11931184
AmqpAppender appender = buildInstance(this.name, this.filter, theLayout, this.ignoreExceptions, manager, eventQueue);
1194-
appender.startSenders();
1195-
return appender;
1185+
if (manager.activateOptions()) {
1186+
appender.startSenders();
1187+
return appender;
1188+
}
1189+
return null;
11961190
}
11971191

11981192
/**

0 commit comments

Comments
 (0)