in src/main/java/org/apache/maven/plugins/assembly/utils/TypeConversionUtils.java [80:143]
public static boolean verifyModeSanity(final int mode, final Logger logger) {
final StringBuilder messages = new StringBuilder();
messages.append("The mode: ").append(Integer.toString(mode, 8)).append(" contains nonsensical permissions:");
boolean warn = false;
// read-access checks.
if (((mode & U_R) == 0) && ((mode & G_R) == G_R)) {
messages.append("\n- Group has read access, but user does not.");
warn = true;
}
if (((mode & U_R) == 0) && ((mode & W_R) == W_R)) {
messages.append("\n- World has read access, but user does not.");
warn = true;
}
if (((mode & G_R) == 0) && ((mode & W_R) == W_R)) {
messages.append("\n- World has read access, but group does not.");
warn = true;
}
// end read-access checks.
// write-access checks.
if (((mode & U_W) == 0) && ((mode & G_W) == G_W)) {
messages.append("\n- Group has write access, but user does not.");
warn = true;
}
if (((mode & U_W) == 0) && ((mode & W_W) == W_W)) {
messages.append("\n- World has write access, but user does not.");
warn = true;
}
if (((mode & G_W) == 0) && ((mode & W_W) == W_W)) {
messages.append("\n- World has write access, but group does not.");
warn = true;
}
// end write-access checks.
// execute-/list-access checks.
if (((mode & U_X) == 0) && ((mode & G_X) == G_X)) {
messages.append("\n- Group has execute/list access, but user does not.");
warn = true;
}
if (((mode & U_X) == 0) && ((mode & W_X) == W_X)) {
messages.append("\n- World has execute/list access, but user does not.");
warn = true;
}
if (((mode & G_X) == 0) && ((mode & W_X) == W_X)) {
messages.append("\n- World has execute/list access, but group does not.");
warn = true;
}
// end execute-/list-access checks.
if (warn && logger != null) {
logger.warn(messages.toString());
}
return !warn;
}