Skip to content

Commit 93f17da

Browse files
committed
Log4jLog explicitly passes String argument (avoiding argument expansion)
Issue: SPR-16226
1 parent b7c924c commit 93f17da

File tree

1 file changed

+34
-18
lines changed

1 file changed

+34
-18
lines changed

spring-jcl/src/main/java/org/apache/commons/logging/LogFactory.java

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -206,92 +206,108 @@ public Log4jLog(String name) {
206206

207207
@Override
208208
public boolean isFatalEnabled() {
209-
return logger.isEnabled(Level.FATAL, null, null);
209+
return this.logger.isEnabled(Level.FATAL);
210210
}
211211

212212
@Override
213213
public boolean isErrorEnabled() {
214-
return logger.isEnabled(Level.ERROR, null, null);
214+
return this.logger.isEnabled(Level.ERROR);
215215
}
216216

217217
@Override
218218
public boolean isWarnEnabled() {
219-
return logger.isEnabled(Level.WARN, null, null);
219+
return this.logger.isEnabled(Level.WARN);
220220
}
221221

222222
@Override
223223
public boolean isInfoEnabled() {
224-
return logger.isEnabled(Level.INFO, null, null);
224+
return this.logger.isEnabled(Level.INFO);
225225
}
226226

227227
@Override
228228
public boolean isDebugEnabled() {
229-
return logger.isEnabled(Level.DEBUG, null, null);
229+
return this.logger.isEnabled(Level.DEBUG);
230230
}
231231

232232
@Override
233233
public boolean isTraceEnabled() {
234-
return logger.isEnabled(Level.TRACE, null, null);
234+
return this.logger.isEnabled(Level.TRACE);
235235
}
236236

237237
@Override
238238
public void fatal(Object message) {
239-
logger.logIfEnabled(FQCN, Level.FATAL, null, message, null);
239+
log(Level.FATAL, message, null);
240240
}
241241

242242
@Override
243243
public void fatal(Object message, Throwable exception) {
244-
logger.logIfEnabled(FQCN, Level.FATAL, null, message, exception);
244+
log(Level.FATAL, message, exception);
245245
}
246246

247247
@Override
248248
public void error(Object message) {
249-
logger.logIfEnabled(FQCN, Level.ERROR, null, message, null);
249+
log(Level.ERROR, message, null);
250250
}
251251

252252
@Override
253253
public void error(Object message, Throwable exception) {
254-
logger.logIfEnabled(FQCN, Level.ERROR, null, message, exception);
254+
log(Level.ERROR, message, exception);
255255
}
256256

257257
@Override
258258
public void warn(Object message) {
259-
logger.logIfEnabled(FQCN, Level.WARN, null, message, null);
259+
log(Level.WARN, message, null);
260260
}
261261

262262
@Override
263263
public void warn(Object message, Throwable exception) {
264-
logger.logIfEnabled(FQCN, Level.WARN, null, message, exception);
264+
log(Level.WARN, message, exception);
265265
}
266266

267267
@Override
268268
public void info(Object message) {
269-
logger.logIfEnabled(FQCN, Level.INFO, null, message, null);
269+
log(Level.INFO, message, null);
270270
}
271271

272272
@Override
273273
public void info(Object message, Throwable exception) {
274-
logger.logIfEnabled(FQCN, Level.INFO, null, message, exception);
274+
log(Level.INFO, message, exception);
275275
}
276276

277277
@Override
278278
public void debug(Object message) {
279-
logger.logIfEnabled(FQCN, Level.DEBUG, null, message, null);
279+
log(Level.DEBUG, message, null);
280280
}
281281

282282
@Override
283283
public void debug(Object message, Throwable exception) {
284-
logger.logIfEnabled(FQCN, Level.DEBUG, null, message, exception);
284+
log(Level.DEBUG, message, exception);
285285
}
286286

287287
@Override
288288
public void trace(Object message) {
289-
logger.logIfEnabled(FQCN, Level.TRACE, null, message, null);
289+
log(Level.TRACE, message, null);
290290
}
291291

292292
@Override
293293
public void trace(Object message, Throwable exception) {
294-
logger.logIfEnabled(FQCN, Level.TRACE, null, message, exception);
294+
log(Level.TRACE, message, exception);
295+
}
296+
297+
private void log(Level level, Object message, Throwable exception) {
298+
if (message instanceof String) {
299+
// Explicitly pass a String argument, avoiding Log4j's argument expansion
300+
// for message objects in case of "{}" sequences (SPR-16226)
301+
if (exception != null) {
302+
this.logger.logIfEnabled(FQCN, level, null, (String) message, exception);
303+
}
304+
else {
305+
this.logger.logIfEnabled(FQCN, level, null, (String) message);
306+
}
307+
}
308+
else {
309+
this.logger.logIfEnabled(FQCN, level, null, message, exception);
310+
}
295311
}
296312
}
297313

0 commit comments

Comments
 (0)