CPD Results
The following document contains the results of PMD's CPD 5.2.3.
Duplications
File |
Line |
org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java |
55 |
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<String, String>(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/pattern/ExtendedThrowablePatternConverter.java |
72 |
org/apache/logging/log4j/core/pattern/RootThrowablePatternConverter.java |
72 |
final String trace = proxy.getExtendedStackTraceAsString(options.getPackages());
final int len = toAppendTo.length();
if (len > 0 && !Character.isWhitespace(toAppendTo.charAt(len - 1))) {
toAppendTo.append(' ');
}
if (!options.allLines() || !Constants.LINE_SEPARATOR.equals(options.getSeparator())) {
final StringBuilder sb = new StringBuilder();
final String[] array = trace.split(Constants.LINE_SEPARATOR);
final int limit = options.minLines(array.length) - 1;
for (int i = 0; i <= limit; ++i) {
sb.append(array[i]);
if (i < limit) {
sb.append(options.getSeparator());
}
}
toAppendTo.append(sb.toString());
} else {
toAppendTo.append(trace);
}
}
}
} |
File |
Line |
org/apache/logging/log4j/core/filter/MapFilter.java |
130 |
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<String, List<String>>();
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<String>();
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 |
86 |
isFlush, bufferSize, advertiseURI, layout), FACTORY);
}
public Boolean isEndOfBatch() {
return isEndOfBatch.get();
}
public void setEndOfBatch(final boolean isEndOfBatch) {
this.isEndOfBatch.set(Boolean.valueOf(isEndOfBatch));
}
@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/appender/FileAppender.java |
48 |
org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java |
55 |
org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java |
50 |
private FileAppender(final String name, final Layout<? extends Serializable> layout, final Filter filter, 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<String, String>(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/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<String, String>(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/net/server/TcpSocketServer.java |
125 |
org/apache/logging/log4j/core/net/server/UdpSocketServer.java |
76 |
return new TcpSocketServer<InputStream>(port, new XmlInputStreamLogEventBridge());
}
/**
* 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/appender/RollingFileAppender.java |
155 |
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), config);
}
if (layout == null) {
layout = PatternLayout.createDefaultLayout();
}
final RollingFileManager manager = RollingFileManager.getFileManager(fileName, filePattern, isAppend, |
File |
Line |
org/apache/logging/log4j/core/appender/RandomAccessFileManager.java |
105 |
org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java |
124 |
}
@Override
public synchronized void flush() {
buffer.flip();
try {
randomAccessFile.write(buffer.array(), 0, buffer.limit());
} catch (final IOException ex) {
final String msg = "Error writing to RandomAccessFile " + getName();
throw new AppenderLoggingException(msg, ex);
}
buffer.clear();
}
@Override
public synchronized void close() {
flush();
try {
randomAccessFile.close();
} catch (final IOException ex) {
LOGGER.error("Unable to close RandomAccessFile " + getName() + ". "
+ ex);
}
} |
File |
Line |
org/apache/logging/log4j/core/appender/RollingFileAppender.java |
136 |
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); |
|