Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
2.0-rc1
-
None
-
None
Description
The logic of isInstanceOf is not consistent for Marker implements in log4j-api's Log4jMarker and log4j-slf4j-iml's MarkerWrapper.
In Log4jMarker
---------------------------------------------
@Override
public boolean isInstanceOf(final String name) {
if (name == null)
Marker toTest = this;
do {
if (name.equals(toTest.getName()))
toTest = toTest.getParent();
} while (toTest != null);
return false;
}
---------------------------------------------
in MarkerWrapper
---------------------------------------------
@Override
public boolean isInstanceOf(final Marker marker) {
if (marker == null)
if (marker instanceof MarkerWrapper)
{ return contains((MarkerWrapper) marker); }else
{ return contains(marker.getName()); }}
@Override
public boolean isInstanceOf(final String name) {
if (name == null)
return contains(name);
}
-----------------------------------------
in Log4jMarker, the isInstanceOf means the marker is instance of itself or its parent
in MarkerWrapper, the isInstance of means the marker is instance of itself or its children