CPD ResultsThe following document contains the results of PMD's CPD 5.0.5. DuplicationsFile | 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 | 125 | org/apache/logging/log4j/core/filter/StructuredDataFilter.java | 110 | org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java | 120 | 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/net/jms/JmsQueueManager.java | 109 | org/apache/logging/log4j/core/net/jms/JmsTopicManager.java | 109 | super.send(object, info.session, info.sender);
} catch (final Exception ex) {
cleanup(true);
throw ex;
}
}
@Override
public void releaseSub() {
if (info != null) {
cleanup(false);
}
}
private void cleanup(final boolean quiet) {
try {
info.session.close();
} catch (final Exception e) {
if (!quiet) {
LOGGER.error("Error closing session for " + getName(), e);
}
}
try {
info.conn.close();
} catch (final Exception e) {
if (!quiet) {
LOGGER.error("Error closing connection for " + getName(), e);
}
}
info = null;
}
/**
* Data for the factory.
*/
private static class FactoryData {
private final String factoryName;
private final String providerURL;
private final String urlPkgPrefixes;
private final String securityPrincipalName;
private final String securityCredentials;
private final String factoryBindingName;
private final String queueBindingName; |
File | Line |
---|
org/apache/logging/log4j/core/appender/RandomAccessFileManager.java | 75 | 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 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 | 47 | org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java | 48 | 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 | 57 | org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java | 58 | 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 | 88 | org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java | 56 | org/apache/logging/log4j/core/filter/ThresholdFilter.java | 44 | }
@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 | 153 | org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java | 175 | 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 | 104 | org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java | 123 | }
@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);
}
}
/**
* Returns the name of the File being managed.
*
* @return The name of the File being managed.
*/
public String getFileName() { |
File | Line |
---|
org/apache/logging/log4j/core/appender/RollingFileAppender.java | 134 | org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java | 159 | @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); |
|