The analyzer has detected a group of constants that looks like a set of bit flags: consecutive static final fields, variables, or enum fields initialized with integer values which are powers of two. One of the values in this group is repeated. It's likely a typo caused by adding a new flag or copying from the line next to it.
The example:
public class FilePermission {
public static final int READ = 0x01;
public static final int WRITE = 0x02;
public static final int EXECUTE = 0x04;
public static final int DELETE = 0x04; // <=
}
The EXECUTE and DELETE constants share the same value. The (mask & DELETE) != 0 check evaluates to true when the mask contains only the execute permission, and clearing one flag also clears the other.
The fixed code:
public class FilePermission {
public static final int READ = 0x01;
public static final int WRITE = 0x02;
public static final int EXECUTE = 0x04;
public static final int DELETE = 0x08;
}
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders: