-
Bug
-
Resolution: Duplicate
-
P3
-
11
-
x86_64
-
os_x
ADDITIONAL SYSTEM INFORMATION :
openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment Corretto-11.0.10.9.1 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.10.9.1 (build 11.0.10+9-LTS, mixed mode)
MacOS 10.15.7
A DESCRIPTION OF THE PROBLEM :
I am one of the maintainers of Apache Log4j 2. I am trying to convert it to fully support JPMS modules. However, when I simply add a module-info.java in the source I am getting duplicate class errors. The error message is showing one of the packages with an upper case first letter when, in fact, all the package names and directories are lower case such as:
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/TimeFilter.java:46: error: duplicate class: org.apache.logging.log4j.core.filter.TimeFilter
Notice that the "Filter" package is shown in upper case. The actually directory on my MacBook is in lower case.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
git clone https://github.com/apache/logging-log4j2.git
git checkout module-compile-fails
mvn clean install
This will fail in log4j-core with the above messages as well as an error in Activator.java I am also investigating.
cd to log4j-core
run mvn -X clean install
After it fails copy the command portion and past it into a file. precede the command with javac and then save the file. Run the file as a script from the command line and you will see the errors related to just javac.
Move module-info.java out of src/main/java and run mvn clean install and everything will compile correctly.
Changing to java 12 and newer and most of these errors go away but I am still left with these 3 errors.
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/package-info.java:24: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.filter
package org.apache.logging.log4j.core.filter;
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/package-info.java:20: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.appender
package org.apache.logging.log4j.core.appender;
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/package-info.java:24: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.layout
package org.apache.logging.log4j.core.layout;
Again, it is showing directories with capital letters that don't exist.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The compile should succeed even if a module-info.java file is present
ACTUAL -
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/package-info.java:24: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.filter
package org.apache.logging.log4j.core.filter;
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/package-info.java:20: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.appender
package org.apache.logging.log4j.core.appender;
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/package-info.java:24: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.layout
package org.apache.logging.log4j.core.layout;
^
Note: Processing Log4j annotations
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/StructuredDataFilter.java:46: error: duplicate class: org.apache.logging.log4j.core.filter.StructuredDataFilter
public final class StructuredDataFilter extends MapFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/ThresholdFilter.java:41: error: duplicate class: org.apache.logging.log4j.core.filter.ThresholdFilter
public final class ThresholdFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/MarkerFilter.java:37: error: duplicate class: org.apache.logging.log4j.core.filter.MarkerFilter
public final class MarkerFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/DenyAllFilter.java:36: error: duplicate class: org.apache.logging.log4j.core.filter.DenyAllFilter
public final class DenyAllFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/LevelRangeFilter.java:43: error: duplicate class: org.apache.logging.log4j.core.filter.LevelRangeFilter
public final class LevelRangeFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/AbstractFilterable.java:33: error: duplicate class: org.apache.logging.log4j.core.filter.AbstractFilterable
public abstract class AbstractFilterable extends AbstractLifeCycle implements Filterable {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/AbstractFilter.java:39: error: duplicate class: org.apache.logging.log4j.core.filter.AbstractFilter
public abstract class AbstractFilter extends AbstractLifeCycle implements Filter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/BurstFilter.java:57: error: duplicate class: org.apache.logging.log4j.core.filter.BurstFilter
public final class BurstFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/ThreadContextMapFilter.java:50: error: duplicate class: org.apache.logging.log4j.core.filter.ThreadContextMapFilter
public class ThreadContextMapFilter extends MapFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/NeutralFilter.java:29: error: duplicate class: org.apache.logging.log4j.core.filter.NeutralFilter
public class NeutralFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/CompositeFilter.java:46: error: duplicate class: org.apache.logging.log4j.core.filter.CompositeFilter
public final class CompositeFilter extends AbstractLifeCycle implements Iterable<Filter>, Filter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/TimeFilter.java:46: error: duplicate class: org.apache.logging.log4j.core.filter.TimeFilter
public final class TimeFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/DynamicThresholdFilter.java:48: error: duplicate class: org.apache.logging.log4j.core.filter.DynamicThresholdFilter
public final class DynamicThresholdFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/StringMatchFilter.java:37: error: duplicate class: org.apache.logging.log4j.core.filter.StringMatchFilter
public final class StringMatchFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/LevelMatchFilter.java:37: error: duplicate class: org.apache.logging.log4j.core.filter.LevelMatchFilter
public final class LevelMatchFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/Filterable.java:30: error: duplicate class: org.apache.logging.log4j.core.filter.Filterable
public interface Filterable extends LifeCycle {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/MapFilter.java:50: error: duplicate class: org.apache.logging.log4j.core.filter.MapFilter
public class MapFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/ScriptFilter.java:44: error: duplicate class: org.apache.logging.log4j.core.filter.ScriptFilter
public final class ScriptFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/RegexFilter.java:45: error: duplicate class: org.apache.logging.log4j.core.filter.RegexFilter
public final class RegexFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/NoMarkerFilter.java:35: error: duplicate class: org.apache.logging.log4j.core.filter.NoMarkerFilter
public final class NoMarkerFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/CountingNoOpAppender.java:35: error: duplicate class: org.apache.logging.log4j.core.appender.CountingNoOpAppender
public class CountingNoOpAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/HttpAppender.java:43: error: duplicate class: org.apache.logging.log4j.core.appender.HttpAppender
public final class HttpAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/RandomAccessFileManager.java:39: error: duplicate class: org.apache.logging.log4j.core.appender.RandomAccessFileManager
public class RandomAccessFileManager extends OutputStreamManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/SocketAppender.java:50: error: duplicate class: org.apache.logging.log4j.core.appender.SocketAppender
public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/RollingFileAppender.java:47: error: duplicate class: org.apache.logging.log4j.core.appender.RollingFileAppender
public final class RollingFileAppender extends AbstractOutputStreamAppender<RollingFileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/FailoverAppender.java:48: error: duplicate class: org.apache.logging.log4j.core.appender.FailoverAppender
public final class FailoverAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/FileManager.java:52: error: duplicate class: org.apache.logging.log4j.core.appender.FileManager
public class FileManager extends OutputStreamManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/TlsSyslogFrame.java:28: error: duplicate class: org.apache.logging.log4j.core.appender.TlsSyslogFrame
public class TlsSyslogFrame {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AppenderLoggingException.java:33: error: duplicate class: org.apache.logging.log4j.core.appender.AppenderLoggingException
public class AppenderLoggingException extends LoggingException {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractWriterAppender.java:35: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractWriterAppender
public abstract class AbstractWriterAppender<M extends WriterManager> extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/SyslogAppender.java:46: error: duplicate class: org.apache.logging.log4j.core.appender.SyslogAppender
public class SyslogAppender extends SocketAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/RandomAccessFileAppender.java:38: error: duplicate class: org.apache.logging.log4j.core.appender.RandomAccessFileAppender
public final class RandomAccessFileAppender extends AbstractOutputStreamAppender<RandomAccessFileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AsyncAppender.java:61: error: duplicate class: org.apache.logging.log4j.core.appender.AsyncAppender
public final class AsyncAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/MemoryMappedFileManager.java:60: error: duplicate class: org.apache.logging.log4j.core.appender.MemoryMappedFileManager
public class MemoryMappedFileManager extends OutputStreamManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/FileAppender.java:39: error: duplicate class: org.apache.logging.log4j.core.appender.FileAppender
public final class FileAppender extends AbstractOutputStreamAppender<FileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/DefaultErrorHandler.java:30: error: duplicate class: org.apache.logging.log4j.core.appender.DefaultErrorHandler
public class DefaultErrorHandler implements ErrorHandler {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/MemoryMappedFileAppender.java:42: error: duplicate class: org.apache.logging.log4j.core.appender.MemoryMappedFileAppender
public final class MemoryMappedFileAppender extends AbstractOutputStreamAppender<MemoryMappedFileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractAppender.java:42: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractAppender
public abstract class AbstractAppender extends AbstractFilterable implements Appender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/HttpURLConnectionManager.java:40: error: duplicate class: org.apache.logging.log4j.core.appender.HttpURLConnectionManager
public class HttpURLConnectionManager extends HttpManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/ScriptAppenderSelector.java:40: error: duplicate class: org.apache.logging.log4j.core.appender.ScriptAppenderSelector
public class ScriptAppenderSelector extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AppenderSet.java:38: error: duplicate class: org.apache.logging.log4j.core.appender.AppenderSet
public class AppenderSet {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/ManagerFactory.java:24: error: duplicate class: org.apache.logging.log4j.core.appender.ManagerFactory
public interface ManagerFactory<M, T> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AsyncAppenderEventDispatcher.java:31: error: duplicate class: org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher
class AsyncAppenderEventDispatcher extends Log4jThread {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractOutputStreamAppender.java:34: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender
public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager> extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/RollingRandomAccessFileAppender.java:47: error: duplicate class: org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender
public final class RollingRandomAccessFileAppender extends AbstractOutputStreamAppender<RollingRandomAccessFileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/ConfigurationFactoryData.java:25: error: duplicate class: org.apache.logging.log4j.core.appender.ConfigurationFactoryData
public class ConfigurationFactoryData {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/FailoversPlugin.java:31: error: duplicate class: org.apache.logging.log4j.core.appender.FailoversPlugin
public final class FailoversPlugin {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/OutputStreamManager.java:38: error: duplicate class: org.apache.logging.log4j.core.appender.OutputStreamManager
public class OutputStreamManager extends AbstractManager implements ByteBufferDestination {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractFileAppender.java:34: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractFileAppender
public abstract class AbstractFileAppender<M extends OutputStreamManager> extends AbstractOutputStreamAppender<M> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/ConsoleAppender.java:56: error: duplicate class: org.apache.logging.log4j.core.appender.ConsoleAppender
public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputStreamManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/HttpManager.java:27: error: duplicate class: org.apache.logging.log4j.core.appender.HttpManager
public abstract class HttpManager extends AbstractManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/WriterAppender.java:35: error: duplicate class: org.apache.logging.log4j.core.appender.WriterAppender
public final class WriterAppender extends AbstractWriterAppender<WriterManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/WriterManager.java:29: error: duplicate class: org.apache.logging.log4j.core.appender.WriterManager
public class WriterManager extends AbstractManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/OutputStreamAppender.java:40: error: duplicate class: org.apache.logging.log4j.core.appender.OutputStreamAppender
public final class OutputStreamAppender extends AbstractOutputStreamAppender<OutputStreamManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/NullAppender.java:32: error: duplicate class: org.apache.logging.log4j.core.appender.NullAppender
public class NullAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractManager.java:42: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractManager
public abstract class AbstractManager implements AutoCloseable {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/HtmlLayout.java:51: error: duplicate class: org.apache.logging.log4j.core.layout.HtmlLayout
public final class HtmlLayout extends AbstractStringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/ByteBufferDestination.java:31: error: duplicate class: org.apache.logging.log4j.core.layout.ByteBufferDestination
public interface ByteBufferDestination {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/AbstractStringLayout.java:48: error: duplicate class: org.apache.logging.log4j.core.layout.AbstractStringLayout
public abstract class AbstractStringLayout extends AbstractLayout<String> implements StringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/Encoder.java:26: error: duplicate class: org.apache.logging.log4j.core.layout.Encoder
public interface Encoder<T> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/LoggerFields.java:35: error: duplicate class: org.apache.logging.log4j.core.layout.LoggerFields
public final class LoggerFields {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/StringBuilderEncoder.java:32: error: duplicate class: org.apache.logging.log4j.core.layout.StringBuilderEncoder
public class StringBuilderEncoder implements Encoder<StringBuilder> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/ScriptPatternSelector.java:45: error: duplicate class: org.apache.logging.log4j.core.layout.ScriptPatternSelector
public class ScriptPatternSelector implements PatternSelector {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/Rfc5424Layout.java:71: error: duplicate class: org.apache.logging.log4j.core.layout.Rfc5424Layout
public final class Rfc5424Layout extends AbstractStringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/LockingStringBuilderEncoder.java:31: error: duplicate class: org.apache.logging.log4j.core.layout.LockingStringBuilderEncoder
public class LockingStringBuilderEncoder implements Encoder<StringBuilder> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/MarkerPatternSelector.java:41: error: duplicate class: org.apache.logging.log4j.core.layout.MarkerPatternSelector
public class MarkerPatternSelector implements PatternSelector {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/TextEncoderHelper.java:31: error: duplicate class: org.apache.logging.log4j.core.layout.TextEncoderHelper
public class TextEncoderHelper {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/SyslogLayout.java:44: error: duplicate class: org.apache.logging.log4j.core.layout.SyslogLayout
public final class SyslogLayout extends AbstractStringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/PatternMatch.java:34: error: duplicate class: org.apache.logging.log4j.core.layout.PatternMatch
public final class PatternMatch {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/MessageLayout.java:36: error: duplicate class: org.apache.logging.log4j.core.layout.MessageLayout
public class MessageLayout extends AbstractLayout<Message> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/LevelPatternSelector.java:41: error: duplicate class: org.apache.logging.log4j.core.layout.LevelPatternSelector
public class LevelPatternSelector implements PatternSelector{
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/PatternSelector.java:25: error: duplicate class: org.apache.logging.log4j.core.layout.PatternSelector
public interface PatternSelector {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/PatternLayout.java:57: error: duplicate class: org.apache.logging.log4j.core.layout.PatternLayout
public final class PatternLayout extends AbstractStringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/AbstractLayout.java:37: error: duplicate class: org.apache.logging.log4j.core.layout.AbstractLayout
public abstract class AbstractLayout<T extends Serializable> implements Layout<T> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/ByteBufferDestinationHelper.java:26: error: duplicate class: org.apache.logging.log4j.core.layout.ByteBufferDestinationHelper
public final class ByteBufferDestinationHelper {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/GelfLayout.java:69: error: duplicate class: org.apache.logging.log4j.core.layout.GelfLayout
public final class GelfLayout extends AbstractStringLayout {
^
warning: A file for type 'org.apache.logging.log4j.core.plugins.Log4jPlugins' already exists on the sourcepath or classpath
Note: Annotations processed
warning: No processor claimed any of these annotations: java.base/java.lang.Deprecated,java.base/java.lang.SafeVarargs,org.apache.logging.log4j.core/org.apache.logging.log4j.core.config.Order,java.base/java.lang.annotation.Documented,java.base/java.lang.annotation.Retention,org.apache.logging.log4j.core/org.apache.logging.log4j.core.tools.picocli.CommandLine.Option,org.apache.logging.log4j.core/org.apache.logging.log4j.core.pattern.ConverterKeys,java.base/java.lang.annotation.Target,org.apache.logging.log4j/org.apache.logging.log4j.util.PerformanceSensitive,org.apache.logging.log4j.core/org.apache.logging.log4j.core.config.Scheduled,java.base/java.lang.Override,java.base/java.lang.SuppressWarnings
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter.java:33: error: interface Filter clashes with package of same name
public interface Filter extends LifeCycle {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender.java:37: error: interface Appender clashes with package of same name
public interface Appender extends LifeCycle {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout.java:47: error: interface Layout clashes with package of same name
public interface Layout<T extends Serializable> extends Encoder<LogEvent> {
^
Note: Processing Log4j annotations
Note: No elements to process
79 errors
5 warnings
FREQUENCY : always
openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment Corretto-11.0.10.9.1 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.10.9.1 (build 11.0.10+9-LTS, mixed mode)
MacOS 10.15.7
A DESCRIPTION OF THE PROBLEM :
I am one of the maintainers of Apache Log4j 2. I am trying to convert it to fully support JPMS modules. However, when I simply add a module-info.java in the source I am getting duplicate class errors. The error message is showing one of the packages with an upper case first letter when, in fact, all the package names and directories are lower case such as:
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/TimeFilter.java:46: error: duplicate class: org.apache.logging.log4j.core.filter.TimeFilter
Notice that the "Filter" package is shown in upper case. The actually directory on my MacBook is in lower case.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
git clone https://github.com/apache/logging-log4j2.git
git checkout module-compile-fails
mvn clean install
This will fail in log4j-core with the above messages as well as an error in Activator.java I am also investigating.
cd to log4j-core
run mvn -X clean install
After it fails copy the command portion and past it into a file. precede the command with javac and then save the file. Run the file as a script from the command line and you will see the errors related to just javac.
Move module-info.java out of src/main/java and run mvn clean install and everything will compile correctly.
Changing to java 12 and newer and most of these errors go away but I am still left with these 3 errors.
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/package-info.java:24: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.filter
package org.apache.logging.log4j.core.filter;
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/package-info.java:20: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.appender
package org.apache.logging.log4j.core.appender;
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/package-info.java:24: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.layout
package org.apache.logging.log4j.core.layout;
Again, it is showing directories with capital letters that don't exist.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The compile should succeed even if a module-info.java file is present
ACTUAL -
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/package-info.java:24: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.filter
package org.apache.logging.log4j.core.filter;
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/package-info.java:20: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.appender
package org.apache.logging.log4j.core.appender;
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/package-info.java:24: warning: a package-info.java file has already been seen for package org.apache.logging.log4j.core.layout
package org.apache.logging.log4j.core.layout;
^
Note: Processing Log4j annotations
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/StructuredDataFilter.java:46: error: duplicate class: org.apache.logging.log4j.core.filter.StructuredDataFilter
public final class StructuredDataFilter extends MapFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/ThresholdFilter.java:41: error: duplicate class: org.apache.logging.log4j.core.filter.ThresholdFilter
public final class ThresholdFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/MarkerFilter.java:37: error: duplicate class: org.apache.logging.log4j.core.filter.MarkerFilter
public final class MarkerFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/DenyAllFilter.java:36: error: duplicate class: org.apache.logging.log4j.core.filter.DenyAllFilter
public final class DenyAllFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/LevelRangeFilter.java:43: error: duplicate class: org.apache.logging.log4j.core.filter.LevelRangeFilter
public final class LevelRangeFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/AbstractFilterable.java:33: error: duplicate class: org.apache.logging.log4j.core.filter.AbstractFilterable
public abstract class AbstractFilterable extends AbstractLifeCycle implements Filterable {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/AbstractFilter.java:39: error: duplicate class: org.apache.logging.log4j.core.filter.AbstractFilter
public abstract class AbstractFilter extends AbstractLifeCycle implements Filter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/BurstFilter.java:57: error: duplicate class: org.apache.logging.log4j.core.filter.BurstFilter
public final class BurstFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/ThreadContextMapFilter.java:50: error: duplicate class: org.apache.logging.log4j.core.filter.ThreadContextMapFilter
public class ThreadContextMapFilter extends MapFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/NeutralFilter.java:29: error: duplicate class: org.apache.logging.log4j.core.filter.NeutralFilter
public class NeutralFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/CompositeFilter.java:46: error: duplicate class: org.apache.logging.log4j.core.filter.CompositeFilter
public final class CompositeFilter extends AbstractLifeCycle implements Iterable<Filter>, Filter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/TimeFilter.java:46: error: duplicate class: org.apache.logging.log4j.core.filter.TimeFilter
public final class TimeFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/DynamicThresholdFilter.java:48: error: duplicate class: org.apache.logging.log4j.core.filter.DynamicThresholdFilter
public final class DynamicThresholdFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/StringMatchFilter.java:37: error: duplicate class: org.apache.logging.log4j.core.filter.StringMatchFilter
public final class StringMatchFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/LevelMatchFilter.java:37: error: duplicate class: org.apache.logging.log4j.core.filter.LevelMatchFilter
public final class LevelMatchFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/Filterable.java:30: error: duplicate class: org.apache.logging.log4j.core.filter.Filterable
public interface Filterable extends LifeCycle {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/MapFilter.java:50: error: duplicate class: org.apache.logging.log4j.core.filter.MapFilter
public class MapFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/ScriptFilter.java:44: error: duplicate class: org.apache.logging.log4j.core.filter.ScriptFilter
public final class ScriptFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/RegexFilter.java:45: error: duplicate class: org.apache.logging.log4j.core.filter.RegexFilter
public final class RegexFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter/NoMarkerFilter.java:35: error: duplicate class: org.apache.logging.log4j.core.filter.NoMarkerFilter
public final class NoMarkerFilter extends AbstractFilter {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/CountingNoOpAppender.java:35: error: duplicate class: org.apache.logging.log4j.core.appender.CountingNoOpAppender
public class CountingNoOpAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/HttpAppender.java:43: error: duplicate class: org.apache.logging.log4j.core.appender.HttpAppender
public final class HttpAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/RandomAccessFileManager.java:39: error: duplicate class: org.apache.logging.log4j.core.appender.RandomAccessFileManager
public class RandomAccessFileManager extends OutputStreamManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/SocketAppender.java:50: error: duplicate class: org.apache.logging.log4j.core.appender.SocketAppender
public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/RollingFileAppender.java:47: error: duplicate class: org.apache.logging.log4j.core.appender.RollingFileAppender
public final class RollingFileAppender extends AbstractOutputStreamAppender<RollingFileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/FailoverAppender.java:48: error: duplicate class: org.apache.logging.log4j.core.appender.FailoverAppender
public final class FailoverAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/FileManager.java:52: error: duplicate class: org.apache.logging.log4j.core.appender.FileManager
public class FileManager extends OutputStreamManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/TlsSyslogFrame.java:28: error: duplicate class: org.apache.logging.log4j.core.appender.TlsSyslogFrame
public class TlsSyslogFrame {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AppenderLoggingException.java:33: error: duplicate class: org.apache.logging.log4j.core.appender.AppenderLoggingException
public class AppenderLoggingException extends LoggingException {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractWriterAppender.java:35: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractWriterAppender
public abstract class AbstractWriterAppender<M extends WriterManager> extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/SyslogAppender.java:46: error: duplicate class: org.apache.logging.log4j.core.appender.SyslogAppender
public class SyslogAppender extends SocketAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/RandomAccessFileAppender.java:38: error: duplicate class: org.apache.logging.log4j.core.appender.RandomAccessFileAppender
public final class RandomAccessFileAppender extends AbstractOutputStreamAppender<RandomAccessFileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AsyncAppender.java:61: error: duplicate class: org.apache.logging.log4j.core.appender.AsyncAppender
public final class AsyncAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/MemoryMappedFileManager.java:60: error: duplicate class: org.apache.logging.log4j.core.appender.MemoryMappedFileManager
public class MemoryMappedFileManager extends OutputStreamManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/FileAppender.java:39: error: duplicate class: org.apache.logging.log4j.core.appender.FileAppender
public final class FileAppender extends AbstractOutputStreamAppender<FileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/DefaultErrorHandler.java:30: error: duplicate class: org.apache.logging.log4j.core.appender.DefaultErrorHandler
public class DefaultErrorHandler implements ErrorHandler {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/MemoryMappedFileAppender.java:42: error: duplicate class: org.apache.logging.log4j.core.appender.MemoryMappedFileAppender
public final class MemoryMappedFileAppender extends AbstractOutputStreamAppender<MemoryMappedFileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractAppender.java:42: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractAppender
public abstract class AbstractAppender extends AbstractFilterable implements Appender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/HttpURLConnectionManager.java:40: error: duplicate class: org.apache.logging.log4j.core.appender.HttpURLConnectionManager
public class HttpURLConnectionManager extends HttpManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/ScriptAppenderSelector.java:40: error: duplicate class: org.apache.logging.log4j.core.appender.ScriptAppenderSelector
public class ScriptAppenderSelector extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AppenderSet.java:38: error: duplicate class: org.apache.logging.log4j.core.appender.AppenderSet
public class AppenderSet {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/ManagerFactory.java:24: error: duplicate class: org.apache.logging.log4j.core.appender.ManagerFactory
public interface ManagerFactory<M, T> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AsyncAppenderEventDispatcher.java:31: error: duplicate class: org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher
class AsyncAppenderEventDispatcher extends Log4jThread {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractOutputStreamAppender.java:34: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender
public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager> extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/RollingRandomAccessFileAppender.java:47: error: duplicate class: org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender
public final class RollingRandomAccessFileAppender extends AbstractOutputStreamAppender<RollingRandomAccessFileManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/ConfigurationFactoryData.java:25: error: duplicate class: org.apache.logging.log4j.core.appender.ConfigurationFactoryData
public class ConfigurationFactoryData {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/FailoversPlugin.java:31: error: duplicate class: org.apache.logging.log4j.core.appender.FailoversPlugin
public final class FailoversPlugin {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/OutputStreamManager.java:38: error: duplicate class: org.apache.logging.log4j.core.appender.OutputStreamManager
public class OutputStreamManager extends AbstractManager implements ByteBufferDestination {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractFileAppender.java:34: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractFileAppender
public abstract class AbstractFileAppender<M extends OutputStreamManager> extends AbstractOutputStreamAppender<M> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/ConsoleAppender.java:56: error: duplicate class: org.apache.logging.log4j.core.appender.ConsoleAppender
public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputStreamManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/HttpManager.java:27: error: duplicate class: org.apache.logging.log4j.core.appender.HttpManager
public abstract class HttpManager extends AbstractManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/WriterAppender.java:35: error: duplicate class: org.apache.logging.log4j.core.appender.WriterAppender
public final class WriterAppender extends AbstractWriterAppender<WriterManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/WriterManager.java:29: error: duplicate class: org.apache.logging.log4j.core.appender.WriterManager
public class WriterManager extends AbstractManager {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/OutputStreamAppender.java:40: error: duplicate class: org.apache.logging.log4j.core.appender.OutputStreamAppender
public final class OutputStreamAppender extends AbstractOutputStreamAppender<OutputStreamManager> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/NullAppender.java:32: error: duplicate class: org.apache.logging.log4j.core.appender.NullAppender
public class NullAppender extends AbstractAppender {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender/AbstractManager.java:42: error: duplicate class: org.apache.logging.log4j.core.appender.AbstractManager
public abstract class AbstractManager implements AutoCloseable {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/HtmlLayout.java:51: error: duplicate class: org.apache.logging.log4j.core.layout.HtmlLayout
public final class HtmlLayout extends AbstractStringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/ByteBufferDestination.java:31: error: duplicate class: org.apache.logging.log4j.core.layout.ByteBufferDestination
public interface ByteBufferDestination {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/AbstractStringLayout.java:48: error: duplicate class: org.apache.logging.log4j.core.layout.AbstractStringLayout
public abstract class AbstractStringLayout extends AbstractLayout<String> implements StringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/Encoder.java:26: error: duplicate class: org.apache.logging.log4j.core.layout.Encoder
public interface Encoder<T> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/LoggerFields.java:35: error: duplicate class: org.apache.logging.log4j.core.layout.LoggerFields
public final class LoggerFields {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/StringBuilderEncoder.java:32: error: duplicate class: org.apache.logging.log4j.core.layout.StringBuilderEncoder
public class StringBuilderEncoder implements Encoder<StringBuilder> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/ScriptPatternSelector.java:45: error: duplicate class: org.apache.logging.log4j.core.layout.ScriptPatternSelector
public class ScriptPatternSelector implements PatternSelector {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/Rfc5424Layout.java:71: error: duplicate class: org.apache.logging.log4j.core.layout.Rfc5424Layout
public final class Rfc5424Layout extends AbstractStringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/LockingStringBuilderEncoder.java:31: error: duplicate class: org.apache.logging.log4j.core.layout.LockingStringBuilderEncoder
public class LockingStringBuilderEncoder implements Encoder<StringBuilder> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/MarkerPatternSelector.java:41: error: duplicate class: org.apache.logging.log4j.core.layout.MarkerPatternSelector
public class MarkerPatternSelector implements PatternSelector {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/TextEncoderHelper.java:31: error: duplicate class: org.apache.logging.log4j.core.layout.TextEncoderHelper
public class TextEncoderHelper {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/SyslogLayout.java:44: error: duplicate class: org.apache.logging.log4j.core.layout.SyslogLayout
public final class SyslogLayout extends AbstractStringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/PatternMatch.java:34: error: duplicate class: org.apache.logging.log4j.core.layout.PatternMatch
public final class PatternMatch {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/MessageLayout.java:36: error: duplicate class: org.apache.logging.log4j.core.layout.MessageLayout
public class MessageLayout extends AbstractLayout<Message> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/LevelPatternSelector.java:41: error: duplicate class: org.apache.logging.log4j.core.layout.LevelPatternSelector
public class LevelPatternSelector implements PatternSelector{
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/PatternSelector.java:25: error: duplicate class: org.apache.logging.log4j.core.layout.PatternSelector
public interface PatternSelector {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/PatternLayout.java:57: error: duplicate class: org.apache.logging.log4j.core.layout.PatternLayout
public final class PatternLayout extends AbstractStringLayout {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/AbstractLayout.java:37: error: duplicate class: org.apache.logging.log4j.core.layout.AbstractLayout
public abstract class AbstractLayout<T extends Serializable> implements Layout<T> {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/ByteBufferDestinationHelper.java:26: error: duplicate class: org.apache.logging.log4j.core.layout.ByteBufferDestinationHelper
public final class ByteBufferDestinationHelper {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout/GelfLayout.java:69: error: duplicate class: org.apache.logging.log4j.core.layout.GelfLayout
public final class GelfLayout extends AbstractStringLayout {
^
warning: A file for type 'org.apache.logging.log4j.core.plugins.Log4jPlugins' already exists on the sourcepath or classpath
Note: Annotations processed
warning: No processor claimed any of these annotations: java.base/java.lang.Deprecated,java.base/java.lang.SafeVarargs,org.apache.logging.log4j.core/org.apache.logging.log4j.core.config.Order,java.base/java.lang.annotation.Documented,java.base/java.lang.annotation.Retention,org.apache.logging.log4j.core/org.apache.logging.log4j.core.tools.picocli.CommandLine.Option,org.apache.logging.log4j.core/org.apache.logging.log4j.core.pattern.ConverterKeys,java.base/java.lang.annotation.Target,org.apache.logging.log4j/org.apache.logging.log4j.util.PerformanceSensitive,org.apache.logging.log4j.core/org.apache.logging.log4j.core.config.Scheduled,java.base/java.lang.Override,java.base/java.lang.SuppressWarnings
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Filter.java:33: error: interface Filter clashes with package of same name
public interface Filter extends LifeCycle {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Appender.java:37: error: interface Appender clashes with package of same name
public interface Appender extends LifeCycle {
^
/Users/rgoers/projects/apache/logging/log4j/logging-log4j2/log4j-core/src/main/java/org/apache/logging/log4j/core/Layout.java:47: error: interface Layout clashes with package of same name
public interface Layout<T extends Serializable> extends Encoder<LogEvent> {
^
Note: Processing Log4j annotations
Note: No elements to process
79 errors
5 warnings
FREQUENCY : always
- duplicates
-
JDK-8263432 javac may report an invalid package/class clash on case insensitive filesystems
- Resolved