CPD Results
The following document contains the results of PMD's CPD 5.3.2.
Duplications
File |
Line |
org/apache/logging/log4j/core/util/CronExpression.java |
1258 |
org/apache/logging/log4j/core/util/CronExpression.java |
1294 |
java.util.Calendar tcal = java.util.Calendar.getInstance(getTimeZone());
tcal.set(Calendar.SECOND, 0);
tcal.set(Calendar.MINUTE, 0);
tcal.set(Calendar.HOUR_OF_DAY, 0);
tcal.set(Calendar.DAY_OF_MONTH, day);
tcal.set(Calendar.MONTH, mon - 1);
tcal.set(Calendar.YEAR, cl.get(Calendar.YEAR));
int ldom = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
int dow = tcal.get(Calendar.DAY_OF_WEEK);
if (dow == Calendar.SATURDAY && day == 1) {
day += 2;
} else if (dow == Calendar.SATURDAY) {
day -= 1;
} else if (dow == Calendar.SUNDAY && day == ldom) {
day -= 2;
} else if (dow == Calendar.SUNDAY) {
day += 1;
}
tcal.set(Calendar.SECOND, sec);
tcal.set(Calendar.MINUTE, min);
tcal.set(Calendar.HOUR_OF_DAY, hr);
tcal.set(Calendar.DAY_OF_MONTH, day);
tcal.set(Calendar.MONTH, mon - 1);
Date nTime = tcal.getTime();
if (nTime.before(afterTime)) {
day = 1; |
File |
Line |
org/apache/logging/log4j/core/config/AwaitCompletionReliabilityStrategy.java |
47 |
org/apache/logging/log4j/core/config/LockingReliabilityStrategy.java |
39 |
this.loggerConfig = Objects.requireNonNull(loggerConfig, "loggerConfig is null");
}
/*
* (non-Javadoc)
*
* @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier,
* java.lang.String, java.lang.String, org.apache.logging.log4j.Marker, org.apache.logging.log4j.Level,
* org.apache.logging.log4j.message.Message, java.lang.Throwable)
*/
@Override
public void log(final Supplier<LoggerConfig> reconfigured, final String loggerName, final String fqcn,
final Marker marker, final Level level, final Message data, final Throwable t) {
final LoggerConfig config = getActiveLoggerConfig(reconfigured);
try {
config.log(loggerName, fqcn, marker, level, data, t);
} finally {
config.getReliabilityStrategy().afterLogEvent();
}
}
/*
* (non-Javadoc)
*
* @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier,
* org.apache.logging.log4j.core.LogEvent)
*/
@Override
public void log(final Supplier<LoggerConfig> reconfigured, final LogEvent event) {
final LoggerConfig config = getActiveLoggerConfig(reconfigured);
try {
config.log(event);
} finally {
config.getReliabilityStrategy().afterLogEvent();
}
}
/*
* (non-Javadoc)
*
* @see
* org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeLogEvent(org.apache.logging.log4j.core.config.
* LoggerConfig, org.apache.logging.log4j.util.Supplier)
*/
@Override
public LoggerConfig getActiveLoggerConfig(final Supplier<LoggerConfig> next) {
LoggerConfig result = this.loggerConfig;
if (!beforeLogEvent()) {
result = next.get();
return result.getReliabilityStrategy().getActiveLoggerConfig(next);
}
return result;
}
private boolean beforeLogEvent() { |
File |
Line |
org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java |
56 |
org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java |
50 |
final Filter filter, final MemoryMappedFileManager manager, final String filename,
final boolean ignoreExceptions, final boolean immediateFlush, final Advertiser advertiser) {
super(name, layout, filter, ignoreExceptions, immediateFlush, manager);
if (advertiser != null) {
final Map<String, String> configuration = new HashMap<>(layout.getContentFormat());
configuration.putAll(manager.getContentFormat());
configuration.put("contentType", layout.getContentType());
configuration.put("name", name);
advertisement = advertiser.advertise(configuration);
}
this.fileName = filename;
this.advertiser = advertiser;
}
@Override
public void stop() {
super.stop();
if (advertiser != null) {
advertiser.unadvertise(advertisement);
}
}
/**
* Write the log entry rolling over the file when required.
*
* @param event The LogEvent.
*/
@Override
public void append(final LogEvent event) {
// Leverage the nice batching behaviour of async Loggers/Appenders:
// we can signal the file manager that it needs to flush the buffer
// to disk at the end of a batch.
// From a user's point of view, this means that all log events are
// _always_ available in the log file, without incurring the overhead
// of immediateFlush=true.
getManager().setEndOfBatch(event.isEndOfBatch());
super.append(event);
}
/**
* Returns the file name this appender is associated with.
*
* @return The File name.
*/
public String getFileName() {
return this.fileName;
}
/**
* Returns the length of the memory mapped region.
*
* @return the length of the memory mapped region
*/
public int getRegionLength() { |
File |
Line |
org/apache/logging/log4j/core/layout/MarkerPatternSelector.java |
58 |
org/apache/logging/log4j/core/layout/ScriptPatternSelector.java |
66 |
final PatternParser parser = PatternLayout.createPatternParser(config);
for (PatternMatch property : properties) {
try {
List<PatternFormatter> list = parser.parse(property.getPattern(), alwaysWriteExceptions, noConsoleNoAnsi);
formatterMap.put(property.getKey(), list.toArray(new PatternFormatter[list.size()]));
patternMap.put(property.getKey(), property.getPattern());
} catch (RuntimeException ex) {
throw new IllegalArgumentException("Cannot parse pattern '" + property.getPattern() + "'", ex);
}
}
try {
List<PatternFormatter> list = parser.parse(defaultPattern, alwaysWriteExceptions, noConsoleNoAnsi);
defaultFormatters = list.toArray(new PatternFormatter[list.size()]);
this.defaultPattern = defaultPattern;
} catch (RuntimeException ex) {
throw new IllegalArgumentException("Cannot parse pattern '" + defaultPattern + "'", ex);
}
}
@Override
public PatternFormatter[] getFormatters(LogEvent event) { |
File |
Line |
org/apache/logging/log4j/core/filter/MapFilter.java |
129 |
org/apache/logging/log4j/core/filter/StructuredDataFilter.java |
114 |
org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java |
124 |
LOGGER.error("keys and values must be specified for the MapFilter");
return null;
}
final Map<String, List<String>> map = new HashMap<>();
for (final KeyValuePair pair : pairs) {
final String key = pair.getKey();
if (key == null) {
LOGGER.error("A null key is not valid in MapFilter");
continue;
}
final String value = pair.getValue();
if (value == null) {
LOGGER.error("A null value for key " + key + " is not allowed in MapFilter");
continue;
}
List<String> list = map.get(pair.getKey());
if (list != null) {
list.add(value);
} else {
list = new ArrayList<>();
list.add(value);
map.put(pair.getKey(), list);
}
}
if (map.isEmpty()) {
LOGGER.error("MapFilter is not configured with any valid key value pairs"); |
File |
Line |
org/apache/logging/log4j/core/appender/RandomAccessFileManager.java |
76 |
org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java |
85 |
isFlush, bufferSize, advertiseURI, layout), FACTORY);
}
public Boolean isEndOfBatch() {
return isEndOfBatch.get();
}
public void setEndOfBatch(final boolean endOfBatch) {
this.isEndOfBatch.set(Boolean.valueOf(endOfBatch));
}
@Override
protected synchronized void write(final byte[] bytes, int offset, int length) {
super.write(bytes, offset, length); // writes to dummy output stream
int chunk = 0;
do {
if (length > buffer.remaining()) {
flush();
}
chunk = Math.min(length, buffer.remaining());
buffer.put(bytes, offset, chunk);
offset += chunk;
length -= chunk;
} while (length > 0);
if (isImmediateFlush || isEndOfBatch.get() == Boolean.TRUE) {
flush();
}
}
@Override |
File |
Line |
org/apache/logging/log4j/core/config/properties/PropertiesConfigurationFactory.java |
306 |
org/apache/logging/log4j/core/config/properties/PropertiesConfigurationFactory.java |
350 |
loggerBuilder = builder.newLogger(name, level);
}
String appenderRefs = properties.getProperty("appenderRefs");
if (appenderRefs != null) {
properties.remove("appenderRefs");
String[] refNames = appenderRefs.split(",");
for (String appenderRef : refNames) {
appenderRef = appenderRef.trim();
Properties refProps = PropertiesUtil.extractSubset(properties, "appenderRef." + appenderRef);
loggerBuilder.add(createAppenderRef(builder, appenderRef, refProps));
}
}
String filters = properties.getProperty("filters");
if (filters != null) {
properties.remove("filters");
String[] filterNames = filters.split(",");
for (String filterName : filterNames) {
filterName = filterName.trim();
Properties filterProps = PropertiesUtil.extractSubset(properties, "filter." + filterName);
loggerBuilder.add(createFilter(builder, filterName, filterProps));
}
} |
File |
Line |
org/apache/logging/log4j/core/appender/FileAppender.java |
49 |
org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java |
56 |
org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java |
50 |
final FileManager manager, final String filename, final boolean ignoreExceptions,
final boolean immediateFlush, final Advertiser advertiser) {
super(name, layout, filter, ignoreExceptions, immediateFlush, manager);
if (advertiser != null) {
final Map<String, String> configuration = new HashMap<>(layout.getContentFormat());
configuration.putAll(manager.getContentFormat());
configuration.put("contentType", layout.getContentType());
configuration.put("name", name);
advertisement = advertiser.advertise(configuration);
}
this.fileName = filename;
this.advertiser = advertiser;
}
@Override
public void stop() {
super.stop();
if (advertiser != null) {
advertiser.unadvertise(advertisement);
}
} |
File |
Line |
org/apache/logging/log4j/core/layout/MarkerPatternSelector.java |
104 |
org/apache/logging/log4j/core/layout/ScriptPatternSelector.java |
124 |
return new MarkerPatternSelector(properties, defaultPattern, alwaysWriteExceptions,
noConsoleNoAnsi, config);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
boolean first = true;
for (Map.Entry<String, String> entry : patternMap.entrySet()) {
if (!first) {
sb.append(", ");
}
sb.append("key=\"").append(entry.getKey()).append("\", pattern=\"").append(entry.getValue()).append("\"");
first = false;
}
if (!first) {
sb.append(", ");
}
sb.append("default=\"").append(defaultPattern).append("\"");
return sb.toString();
}
} |
File |
Line |
org/apache/logging/log4j/core/appender/RollingFileAppender.java |
59 |
org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java |
60 |
final boolean ignoreExceptions, final boolean immediateFlush, final Advertiser advertiser) {
super(name, layout, filter, ignoreExceptions, immediateFlush, manager);
if (advertiser != null) {
final Map<String, String> configuration = new HashMap<>(layout.getContentFormat());
configuration.put("contentType", layout.getContentType());
configuration.put("name", name);
advertisement = advertiser.advertise(configuration);
}
this.fileName = fileName;
this.filePattern = filePattern;
this.advertiser = advertiser;
}
@Override
public void stop() {
super.stop();
if (advertiser != null) {
advertiser.unadvertise(advertisement);
}
}
/**
* Write the log entry rolling over the file when required.
* @param event The LogEvent.
*/
@Override
public void append(final LogEvent event) { |
File |
Line |
org/apache/logging/log4j/core/filter/BurstFilter.java |
96 |
org/apache/logging/log4j/core/filter/ThresholdFilter.java |
48 |
}
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
final Object... params) {
return filter(level);
}
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final Object msg,
final Throwable t) {
return filter(level);
}
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final Message msg,
final Throwable t) {
return filter(level);
}
@Override
public Result filter(final LogEvent event) {
return filter(event.getLevel());
}
/**
* Decide if we're going to log <code>event</code> based on whether the
* maximum burst of log statements has been exceeded.
*
* @param level The log level.
* @return The onMatch value if the filter passes, onMismatch otherwise.
*/
private Result filter(final Level level) { |
File |
Line |
org/apache/logging/log4j/core/layout/CsvLogEventLayout.java |
54 |
org/apache/logging/log4j/core/layout/CsvParameterLayout.java |
63 |
public static CsvLogEventLayout createLayout(
// @formatter:off
@PluginAttribute(value = "format", defaultString = DEFAULT_FORMAT) final String format,
@PluginAttribute("delimiter") final Character delimiter,
@PluginAttribute("escape") final Character escape,
@PluginAttribute("quote") final Character quote,
@PluginAttribute("quoteMode") final QuoteMode quoteMode,
@PluginAttribute("nullString") final String nullString,
@PluginAttribute("recordSeparator") final String recordSeparator,
@PluginAttribute(value = "charset", defaultString = DEFAULT_CHARSET) final Charset charset,
@PluginAttribute("header") final String header,
@PluginAttribute("footer") final String footer)
// @formatter:on
{
final CSVFormat csvFormat = createFormat(format, delimiter, escape, quote, quoteMode, nullString, recordSeparator);
return new CsvLogEventLayout(charset, csvFormat, header, footer); |
File |
Line |
org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java |
129 |
org/apache/logging/log4j/core/filter/LevelRangeFilter.java |
83 |
}
@Override
public Result filter(final LogEvent event) {
return filter(event.getLevel());
}
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final Message msg,
final Throwable t) {
return filter(level);
}
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final Object msg,
final Throwable t) {
return filter(level);
}
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
final Object... params) {
return filter(level);
}
public String getKey() { |
File |
Line |
org/apache/logging/log4j/core/appender/RollingFileAppender.java |
164 |
org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java |
177 |
if (name == null) {
LOGGER.error("No name provided for FileAppender");
return null;
}
if (fileName == null) {
LOGGER.error("No filename was provided for FileAppender with name " + name);
return null;
}
if (filePattern == null) {
LOGGER.error("No filename pattern provided for FileAppender with name " + name);
return null;
}
if (policy == null) {
LOGGER.error("A TriggeringPolicy must be provided");
return null;
}
if (strategy == null) {
strategy = DefaultRolloverStrategy.createStrategy(null, null, null,
String.valueOf(Deflater.DEFAULT_COMPRESSION), null, true, config);
}
if (layout == null) {
layout = PatternLayout.createDefaultLayout();
}
final RollingFileManager manager = RollingFileManager.getFileManager(fileName, filePattern, isAppend, |
File |
Line |
org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java |
45 |
org/apache/logging/log4j/core/config/DefaultReliabilityStrategy.java |
36 |
DEFAULT_SLEEP_MILLIS);
}
/*
* (non-Javadoc)
*
* @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier,
* java.lang.String, java.lang.String, org.apache.logging.log4j.Marker, org.apache.logging.log4j.Level,
* org.apache.logging.log4j.message.Message, java.lang.Throwable)
*/
@Override
public void log(Supplier<LoggerConfig> reconfigured, String loggerName, String fqcn, Marker marker, Level level,
Message data, Throwable t) {
loggerConfig.log(loggerName, fqcn, marker, level, data, t);
}
/*
* (non-Javadoc)
*
* @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier,
* org.apache.logging.log4j.core.LogEvent)
*/
@Override
public void log(Supplier<LoggerConfig> reconfigured, LogEvent event) {
loggerConfig.log(event);
}
/*
* (non-Javadoc)
*
* @see
* org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeLogEvent(org.apache.logging.log4j.core.config.
* LoggerConfig, org.apache.logging.log4j.util.Supplier)
*/
@Override
public LoggerConfig getActiveLoggerConfig(Supplier<LoggerConfig> next) {
return this.loggerConfig;
}
/*
* (non-Javadoc)
*
* @see org.apache.logging.log4j.core.config.ReliabilityStrategy#afterLogEvent()
*/
@Override
public void afterLogEvent() {
// no action
}
/*
* (non-Javadoc)
*
* @see org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeStopAppenders()
*/
@Override
public void beforeStopAppenders() {
// no action
}
/*
* (non-Javadoc)
*
* @see
* org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeStopConfiguration(org.apache.logging.log4j.core
* .config.Configuration)
*/
@Override
public void beforeStopConfiguration(Configuration configuration) { |
File |
Line |
org/apache/logging/log4j/core/net/server/TcpSocketServer.java |
170 |
org/apache/logging/log4j/core/net/server/UdpSocketServer.java |
96 |
return LOGGER.exit(socketServer);
}
/**
* Main startup for the server.
*
* @param args
* The command line arguments.
* @throws Exception
* if an error occurs.
*/
public static void main(final String[] args) throws Exception {
if (args.length < 1 || args.length > 2) {
System.err.println("Incorrect number of arguments");
printUsage();
return;
}
final int port = Integer.parseInt(args[0]);
if (port <= 0 || port >= MAX_PORT) {
System.err.println("Invalid port number");
printUsage();
return;
}
if (args.length == 2 && args[1].length() > 0) {
ConfigurationFactory.setConfigurationFactory(new ServerConfigurationFactory(args[1]));
}
final TcpSocketServer<ObjectInputStream> socketServer = TcpSocketServer.createSerializedSocketServer(port); |
File |
Line |
org/apache/logging/log4j/core/util/CronExpression.java |
1356 |
org/apache/logging/log4j/core/util/CronExpression.java |
1447 |
int daysToAdd = 0;
if (cDow < dow) {
daysToAdd = dow - cDow;
}
if (cDow > dow) {
daysToAdd = dow + (7 - cDow);
}
int lDay = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
if (day + daysToAdd > lDay) { // did we already miss the
// last one?
cl.set(Calendar.SECOND, 0);
cl.set(Calendar.MINUTE, 0);
cl.set(Calendar.HOUR_OF_DAY, 0);
cl.set(Calendar.DAY_OF_MONTH, 1);
cl.set(Calendar.MONTH, mon);
// no '- 1' here because we are promoting the month
continue;
} |
File |
Line |
org/apache/logging/log4j/core/util/CronExpression.java |
764 |
org/apache/logging/log4j/core/util/CronExpression.java |
790 |
if (i < s.length() && ((c = s.charAt(i)) == '/')) {
i++;
c = s.charAt(i);
int v2 = Integer.parseInt(String.valueOf(c));
i++;
if (i >= s.length()) {
addToSet(val, end, v2, type);
return i;
}
c = s.charAt(i);
if (c >= '0' && c <= '9') {
ValueSet vs = getValue(v2, s, i);
int v3 = vs.value;
addToSet(val, end, v3, type);
i = vs.pos;
return i;
} else { |
File |
Line |
org/apache/logging/log4j/core/appender/RollingFileAppender.java |
145 |
org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java |
161 |
@PluginAttribute("immediateFlush") final String immediateFlush,
@PluginElement("Policy") final TriggeringPolicy policy,
@PluginElement("Strategy") RolloverStrategy strategy,
@PluginElement("Layout") Layout<? extends Serializable> layout,
@PluginElement("Filter") final Filter filter,
@PluginAttribute("ignoreExceptions") final String ignore,
@PluginAttribute("advertise") final String advertise,
@PluginAttribute("advertiseURI") final String advertiseURI,
@PluginConfiguration final Configuration config) {
final boolean isAppend = Booleans.parseBoolean(append, true);
final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
final boolean isBuffered = Booleans.parseBoolean(bufferedIO, true); |
|