CPD ResultsThe following document contains the results of PMD's CPD 5.0.2. DuplicationsFile | Line |
---|
org/apache/logging/log4j/core/net/SocketServer.java | 198 | org/apache/logging/log4j/core/net/UDPSocketServer.java | 144 | handlers.remove(Long.valueOf(getId()));
}
}
}
/**
* Factory that creates a Configuration for the server.
*/
private static class ServerConfigurationFactory extends XMLConfigurationFactory {
private final String path;
public ServerConfigurationFactory(final String path) {
this.path = path;
}
@Override
public Configuration getConfiguration(final String name, final URI configLocation) {
if (path != null && path.length() > 0) {
File file = null;
ConfigurationSource source = null;
try {
file = new File(path);
final FileInputStream is = new FileInputStream(file);
source = new ConfigurationSource(is, file);
} catch (final FileNotFoundException ex) {
// Ignore this error
}
if (source == null) {
try {
final URL url = new URL(path);
source = new ConfigurationSource(url.openStream(), path);
} catch (final MalformedURLException mue) {
// Ignore this error
} catch (final IOException ioe) {
// Ignore this error
}
}
try {
if (source != null) {
return new XMLConfiguration(source);
}
} catch (final Exception ex) {
// Ignore this error.
}
System.err.println("Unable to process configuration at " + path + ", using default.");
}
return super.getConfiguration(name, configLocation);
}
}
} |
File | Line |
---|
org/apache/logging/log4j/core/appender/SyslogAppender.java | 93 | org/apache/logging/log4j/core/appender/TLSSyslogAppender.java | 87 | @PluginAttribute("protocol") final String protocol,
@PluginAttribute("reconnectionDelay") final String delay,
@PluginAttribute("immediateFail") final String immediateFail,
@PluginAttribute("name") final String name,
@PluginAttribute("immediateFlush") final String immediateFlush,
@PluginAttribute("ignoreExceptions") final String ignore,
@PluginAttribute("facility") final String facility,
@PluginAttribute("id") final String id,
@PluginAttribute("enterpriseNumber") final String ein,
@PluginAttribute("includeMDC") final String includeMDC,
@PluginAttribute("mdcId") final String mdcId,
@PluginAttribute("mdcPrefix") final String mdcPrefix,
@PluginAttribute("eventPrefix") final String eventPrefix,
@PluginAttribute("newLine") final String includeNL,
@PluginAttribute("newLineEscape") final String escapeNL,
@PluginAttribute("appName") final String appName,
@PluginAttribute("messageId") final String msgId,
@PluginAttribute("mdcExcludes") final String excludes,
@PluginAttribute("mdcIncludes") final String includes,
@PluginAttribute("mdcRequired") final String required,
@PluginAttribute("format") final String format,
@PluginElement("Filters") final Filter filter, |
File | Line |
---|
org/apache/logging/log4j/core/async/AsyncLoggerConfig.java | 144 | org/apache/logging/log4j/core/config/LoggerConfig.java | 433 | }
/**
* Factory method to create a LoggerConfig.
*
* @param additivity True if additive, false otherwise.
* @param levelName The Level to be associated with the Logger.
* @param loggerName The name of the Logger.
* @param includeLocation "true" if location should be passed downstream
* @param refs An array of Appender names.
* @param properties Properties to pass to the Logger.
* @param config The Configuration.
* @param filter A Filter.
* @return A new LoggerConfig.
*/
@PluginFactory
public static LoggerConfig createLogger(
@PluginAttribute("additivity") final String additivity,
@PluginAttribute("level") final String levelName,
@PluginAttribute("name") final String loggerName,
@PluginAttribute("includeLocation") final String includeLocation,
@PluginElement("AppenderRef") final AppenderRef[] refs,
@PluginElement("Properties") final Property[] properties,
@PluginConfiguration final Configuration config,
@PluginElement("Filters") final Filter filter) {
if (loggerName == null) {
LOGGER.error("Loggers cannot be configured without a name");
return null;
}
final List<AppenderRef> appenderRefs = Arrays.asList(refs);
Level level;
try {
level = Level.toLevel(levelName, Level.ERROR);
} catch (final Exception ex) {
LOGGER.error(
"Invalid Log level specified: {}. Defaulting to Error",
levelName);
level = Level.ERROR;
}
final String name = loggerName.equals("root") ? "" : loggerName;
final boolean additive = Booleans.parseBoolean(additivity, true);
return new AsyncLoggerConfig(name, appenderRefs, filter, level, |
File | Line |
---|
org/apache/logging/log4j/core/config/JSONConfiguration.java | 92 | org/apache/logging/log4j/core/config/XMLConfiguration.java | 161 | final String dest = entry.getValue();
if (dest != null) {
if (dest.equalsIgnoreCase("err")) {
stream = System.err;
} else {
try {
final File destFile = FileUtils.fileFromURI(FileUtils.getCorrectedFilePathUri(dest));
final String enc = Charset.defaultCharset().name();
stream = new PrintStream(new FileOutputStream(destFile), true, enc);
} catch (final URISyntaxException use) {
System.err.println("Unable to write to " + dest + ". Writing to stdout");
}
}
}
} else if ("shutdownHook".equalsIgnoreCase(entry.getKey())) {
String hook = getStrSubstitutor().replace(entry.getValue());
isShutdownHookEnabled = !hook.equalsIgnoreCase("disable");
} else if ("verbose".equalsIgnoreCase(entry.getKey())) {
verbose = Boolean.parseBoolean(getStrSubstitutor().replace(entry.getValue()));
} else if ("packages".equalsIgnoreCase(entry.getKey())) { |
File | Line |
---|
org/apache/logging/log4j/core/appender/RollingFileAppender.java | 53 | org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java | 54 | private RollingFileAppender(final String name, final Layout<? extends Serializable> layout, final Filter filter,
final RollingFileManager manager, final String fileName,
final String filePattern, 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/pattern/ExtendedThrowablePatternConverter.java | 72 | org/apache/logging/log4j/core/pattern/RootThrowablePatternConverter.java | 72 | final String trace = proxy.getExtendedStackTrace(options.getPackages());
final int len = toAppendTo.length();
if (len > 0 && !Character.isWhitespace(toAppendTo.charAt(len - 1))) {
toAppendTo.append(" ");
}
if (!options.allLines() || !Constants.LINE_SEP.equals(options.getSeparator())) {
final StringBuilder sb = new StringBuilder();
final String[] array = trace.split(Constants.LINE_SEP);
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.size() == 0) {
LOGGER.error("MapFilter is not configured with any valid key value pairs"); |
File | Line |
---|
org/apache/logging/log4j/core/net/JMSQueueManager.java | 108 | org/apache/logging/log4j/core/net/JMSTopicManager.java | 108 | 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 | 77 | org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java | 63 | 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/async/AsyncLoggerConfig.java | 199 | org/apache/logging/log4j/core/config/LoggerConfig.java | 494 | @Plugin(name = "asyncRoot", category = "Core", printObject = true)
public static class RootLogger extends LoggerConfig {
@PluginFactory
public static LoggerConfig createLogger(
@PluginAttribute("additivity") final String additivity,
@PluginAttribute("level") final String levelName,
@PluginAttribute("includeLocation") final String includeLocation,
@PluginElement("AppenderRef") final AppenderRef[] refs,
@PluginElement("Properties") final Property[] properties,
@PluginConfiguration final Configuration config,
@PluginElement("Filters") final Filter filter) {
final List<AppenderRef> appenderRefs = Arrays.asList(refs);
Level level;
try {
level = Level.toLevel(levelName, Level.ERROR);
} catch (final Exception ex) {
LOGGER.error(
"Invalid Log level specified: {}. Defaulting to Error",
levelName);
level = Level.ERROR;
}
final boolean additive = Booleans.parseBoolean(additivity, true);
return new AsyncLoggerConfig(LogManager.ROOT_LOGGER_NAME, |
File | Line |
---|
org/apache/logging/log4j/core/appender/RollingFileAppender.java | 143 | org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java | 160 | final boolean isBuffered = Booleans.parseBoolean(bufferedIO, true);
final boolean isFlush = Booleans.parseBoolean(immediateFlush, true);
final boolean isAdvertise = Boolean.parseBoolean(advertise);
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.createLayout(null, null, null, null, null, null);
}
final RollingFileManager manager = RollingFileManager.getFileManager(fileName, filePattern, isAppend, |
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/net/SocketServer.java | 68 | org/apache/logging/log4j/core/net/UDPSocketServer.java | 69 | this.server = new ServerSocket(port);
this.logger = LogManager.getLogger(this.getClass().getName() + '.' + port);
}
/**
* 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 SocketServer sserver = new SocketServer(port); |
File | Line |
---|
org/apache/logging/log4j/core/helpers/Throwables.java | 40 | org/apache/logging/log4j/core/layout/HTMLLayout.java | 214 | public static List<String> toStringList(final Throwable throwable) {
final StringWriter sw = new StringWriter();
final PrintWriter pw = new PrintWriter(sw);
try {
throwable.printStackTrace(pw);
} catch (final RuntimeException ex) {
// Ignore any exceptions.
}
pw.flush();
final LineNumberReader reader = new LineNumberReader(new StringReader(sw.toString()));
final ArrayList<String> lines = new ArrayList<String>();
try {
String line = reader.readLine();
while (line != null) {
lines.add(line);
line = reader.readLine();
}
} catch (final IOException ex) {
if (ex instanceof InterruptedIOException) {
Thread.currentThread().interrupt();
}
lines.add(ex.toString());
} |
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/appender/SyslogAppender.java | 114 | org/apache/logging/log4j/core/appender/TLSSyslogAppender.java | 108 | @PluginElement("Filters") final Filter filter,
@PluginConfiguration final Configuration config,
@PluginAttribute("charset") final String charsetName,
@PluginAttribute("exceptionPattern") final String exceptionPattern,
@PluginElement("LoggerFields") final LoggerFields[] loggerFields,
@PluginAttribute("advertise") final String advertise) {
final boolean isFlush = Booleans.parseBoolean(immediateFlush, true);
final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
final int reconnectDelay = AbstractAppender.parseInt(delay, 0);
final boolean fail = Booleans.parseBoolean(immediateFail, true);
final int port = AbstractAppender.parseInt(portNum, 0);
final boolean isAdvertise = Boolean.parseBoolean(advertise); |
File | Line |
---|
org/apache/logging/log4j/core/appender/RandomAccessFileManager.java | 104 | org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java | 98 | flush();
}
}
@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/net/SocketServer.java | 95 | org/apache/logging/log4j/core/net/UDPSocketServer.java | 99 | final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, enc));
while (true) {
final String line = reader.readLine();
if (line == null || line.equalsIgnoreCase("Quit") || line.equalsIgnoreCase("Stop") || line.equalsIgnoreCase("Exit")) {
sserver.shutdown();
server.join();
break;
}
}
}
private static void printUsage() {
System.out.println("Usage: ServerSocket port configFilePath");
}
/**
* Shutdown the server.
*/
public void shutdown() {
this.isActive = false;
Thread.currentThread().interrupt();
}
/**
* Accept incoming events and processes them.
*/
@Override
public void run() {
while (isActive) {
try {
// Accept incoming connections.
final Socket clientSocket = server.accept(); |
File | Line |
---|
org/apache/logging/log4j/core/appender/RollingFileAppender.java | 130 | org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java | 148 | @PluginAttribute("bufferedIO") final String bufferedIO,
@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); |
File | Line |
---|
org/apache/logging/log4j/core/config/JSONConfiguration.java | 132 | org/apache/logging/log4j/core/config/XMLConfiguration.java | 203 | final StatusListener listener = statusIter.next();
if (listener instanceof StatusConsoleListener) {
found = true;
((StatusConsoleListener) listener).setLevel(status);
if (!verbose) {
((StatusConsoleListener) listener).setFilters(VERBOSE_CLASSES);
}
}
}
if (!found && status != Level.OFF) {
final StatusConsoleListener listener = new StatusConsoleListener(status, stream);
if (!verbose) {
listener.setFilters(VERBOSE_CLASSES);
}
((StatusLogger) LOGGER).registerListener(listener);
for (final String msg : messages) {
LOGGER.error(msg);
}
} |
|