Our website uses cookies to enhance your browsing experience.
Accept
to the top
close form

Fill out the form in 2 simple steps below:

Your contact information:

Step 1
Congratulations! This is your promo code!

Desired license type:

Step 2
Team license
Enterprise license
** By clicking this button you agree to our Privacy Policy statement
close form
Request our prices
New License
License Renewal
--Select currency--
USD
EUR
* By clicking this button you agree to our Privacy Policy statement

close form
Free PVS‑Studio license for Microsoft MVP specialists
* By clicking this button you agree to our Privacy Policy statement

close form
To get the licence for your open-source project, please fill out this form
* By clicking this button you agree to our Privacy Policy statement

close form
I am interested to try it on the platforms:
* By clicking this button you agree to our Privacy Policy statement

close form
check circle
Message submitted.

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:

  • Promotion
  • Updates
  • Spam

Webinar: Evaluation - 05.12

>
>
>
Examples of errors detected by the V600…

Examples of errors detected by the V6007 diagnostic

V6007. Expression is always true/false.


IntelliJ IDEA Community Edition

V6007 [CWE-571] Expression 'i < endOffset' is always true. EnterAfterJavadocTagHandler.java 183


static Context parse(....) {
  ....
  for (int i = offset; i < endOffset; i++) {
    char c = text.charAt(i);
    if (c == '<' && i < endOffset && text.charAt(i + 1) == '/'
        && startTag != null
        && CharArrayUtil.regionMatches(text, i + 2, endOffset, startTag))
    {
      endTagStartOffset = i;
      break;
    }
  }
  ....
}

IntelliJ IDEA Community Edition

V6007 [CWE-570] Expression 'i == exampleUsages.length' is always false. IntentionDescriptionPanel.java 192


private static void showUsages(....)
{
  ....
  for (int i = 0; i < exampleUsages.length; i++) {
    final TextDescriptor exampleUsage = exampleUsages[i];
    final String name = exampleUsage.getFileName();
    final FileTypeManagerEx fileTypeManager = FileTypeManagerEx.getInstanceEx();
    final String extension = fileTypeManager.getExtension(name);
    final FileType fileType = fileTypeManager.getFileTypeByExtension(extension);

    IntentionUsagePanel usagePanel;
    if (reuse) {
      usagePanel = (IntentionUsagePanel)panel.getComponent(i);
    }
    else {
      usagePanel = new IntentionUsagePanel();
      usagePanels.add(usagePanel);
    }
    usagePanel.reset(exampleUsage.getText(), fileType);

    if (!reuse) {
      if (i == exampleUsages.length) {                        // <=
        gb.gridwidth = GridBagConstraints.REMAINDER;
      }
      panel.add(usagePanel, gb);
      gb.gridx++;
    }
  }
  ....
}

IntelliJ IDEA Community Edition

V6007 [CWE-571] Expression 'buffer.length() > 0' is always true. DeleteUtil.java 62


public static String generateWarningMessage(....)
{
  ....
  if (buffer.length() > 0) {
    if (buffer.length() > 0) {
      buffer.append(" ").append(
        IdeBundle.message("prompt.delete.and")).append(" ");
    }
  }
  ....
}

IntelliJ IDEA Community Edition

V6007 [CWE-571] Expression 'index >= 0' is always true. Updater.java 184


public int findPreviousIndex(int current) {
  int count = myPainter.getErrorStripeCount();
  int foundIndex = -1;
  int foundLayer = 0;
  if (0 <= current && current < count) {
    current--;
    for (int index = count - 1; index >= 0; index++) {        // <=
      int layer = getLayer(index);
      if (layer > foundLayer) {
        foundIndex = index;
        foundLayer = layer;
      }
    }
  ....
}

IntelliJ IDEA Community Edition

V6007 [CWE-570] Expression '"0".equals(text)' is always false. ConvertIntegerToDecimalPredicate.java 46


public boolean satisfiedBy(@NotNull PsiElement element) {
  ....
  @NonNls final String text = expression.getText().replaceAll("_", "");
  if (text == null || text.length() < 2) {
    return false;
  }
  if ("0".equals(text) || "0L".equals(text) || "0l".equals(text)) {
    return false;
  }
  return text.charAt(0) == '0';
}

SpotBugs

V6007 [CWE-571] Expression 'count < 4' is always true. Util.java 394


public static String getXMLType(@WillNotClose InputStream in) throws IOException
{
  ....
  String s;
  int count = 0;
  while (count < 4) {
    s = r.readLine();
    if (s == null) {
      break;
    }
    Matcher m = tag.matcher(s);
    if (m.find()) {
      return m.group(1);
    }
  }
  throw new IOException("Didn't find xml tag");
  ....
}

SpotBugs

V6007 [CWE-570] Expression '"remove".equals(invokedMethodName)' is always false. FindUnrelatedTypesInGenericContainer.java 618


private void analyzeMethod(....) throws .... {
  ....
  if (invokedMethodName.startsWith("contains") ||
      "remove".equals(invokedMethodName)) {
  ....
  } else if ("get".equals(invokedMethodName) ||
             "remove".equals(invokedMethodName)) {
  ....
}

Bouncy Castle

V6007 [CWE-570] Expression 'c == '\r'' is always false. PEMUtil.java 38


private String readLine(InputStream in)
  throws IOException
{
  ....
  do
  {
    while (((c = in.read()) != '\r') && c != '\n' && (c >= 0))
    {
      if (c == '\r')
      {
        continue;
      }

      l.append((char)c);
    }
  }
  while (c >= 0 && l.length() == 0);
  ....
}

Bouncy Castle

V6007 [CWE-570] Expression '(b1 | b2) < 0' is always false. ArmoredInputStream.java 76


private static final byte[] decodingTable;

private int decode(
  int      in0,
  int      in1,
  int      in2,
  int      in3,
  int[]    out)
  throws IOException
{
  int    b1, b2, b3, b4;
  ....
  b1 = decodingTable[in0] & 0xff;
  b2 = decodingTable[in1] & 0xff;

  if ((b1 | b2) < 0)
  {
    throw new IOException("invalid armor");
  }
}

Bouncy Castle

V6007 [CWE-570] Expression 'j < numPassesKPG' is always false. McElieceKobaraImaiCipherTest.java 36


public void performTest()
  throws Exception
{
  int numPassesKPG = 0;   // TODO: this algorithm is broken
  int numPassesEncDec = 10;
  Random rand = new Random();
  byte[] mBytes;
  for (int j = 0; j < numPassesKPG; j++)
  ....
}

Elasticsearch

V6007 Expression 's.charAt(i) != '\t'' is always true. Cron.java(1223)


private static int findNextWhiteSpace(int i, String s) {
  for (; i < s.length() && (s.charAt(i) != ' ' || s.charAt(i) != '\t'); i++)
  {
      // intentionally empty
  }
  return i;
}

Elasticsearch

V6007 Expression 'remaining == 0' is always false. PemUtils.java(439)


private static byte[]
generateOpenSslKey(char[] password, byte[] salt, int keyLength)
{
  ....
  int copied = 0;
  int remaining;
  while (copied < keyLength) {
    remaining = keyLength - copied;
    ....
    copied += bytesToCopy;
    if (remaining == 0) {      // <=
        break;
    }
    ....
  }
  ....
}

Elasticsearch

V6007 Expression 'healthCheckDn.indexOf('=') > 0' is always false. ActiveDirectorySessionFactory.java(73)


ActiveDirectorySessionFactory(RealmConfig config,
                              SSLService sslService,
                              ThreadPool threadPool)
                              throws LDAPException
{
  super(....,
        () -> {
          if (....) {
              final String healthCheckDn = ....;
              if (healthCheckDn.isEmpty() &&
                  healthCheckDn.indexOf('=') > 0)
              {
                  return healthCheckDn;
              }
          }
          return ....;
        },
        ....);
  ....
}

Elasticsearch

V6007 Expression '(int)x < 0' is always false. BCrypt.java(429)


private static byte char64(char x) {
  if ((int)x < 0 || (int)x > index_64.length)
    return -1;
  return index_64[(int)x];
}

CUBA Platform

V6007 Expression 'StringUtils.isNotEmpty("handleTabKey")' is always true. SourceCodeEditorLoader.java(60)


@Override
public void loadComponent() {
  ....
  String handleTabKey = element.attributeValue("handleTabKey");
  if (StringUtils.isNotEmpty("handleTabKey")) {
    resultComponent.setHandleTabKey(Boolean.parseBoolean(handleTabKey));
  }
  ....
}

Similar errors can be found in some other places:

  • V6007 Expression 'StringUtils.isNotEmpty("editable")' is always true. AbstractTableLoader.java(596)

CUBA Platform

V6007 Expression 'previousMenuItemFlatIndex >= 0' is always true. CubaSideMenuWidget.java(328)


protected MenuItemWidget findNextMenuItem(MenuItemWidget currentItem) {
  List<MenuTreeNode> menuTree = buildVisibleTree(this);
  List<MenuItemWidget> menuItemWidgets = menuTreeToList(menuTree);

  int menuItemFlatIndex = menuItemWidgets.indexOf(currentItem);
  int previousMenuItemFlatIndex = menuItemFlatIndex + 1;
  if (previousMenuItemFlatIndex >= 0) {
      return menuItemWidgets.get(previousMenuItemFlatIndex);
  }
  return null;
}

CUBA Platform

V6007 Expression 'mask.charAt(i + offset) != placeHolder' is always true. DatePickerDocument.java(238)


private String calculateFormattedString(int offset, String text) .... {
  ....
  if ((mask.charAt(i + offset) == placeHolder)) {         // <=
    ....
  } else if ((mask.charAt(i + offset) != placeHolder) &&  // <=
             (Character.isDigit(text.charAt(i)))) {
    ....
  }
  ....
}

CUBA Platform

V6007 Expression 'connector == null' is always false. HTML5Support.java(169)


private boolean validate(NativeEvent event) {
  ....
  while (connector == null) {
    widget = widget.getParent();
    connector = Util.findConnectorFor(widget);
  }

  if (this.connector == connector) {
      return true;
  } else if (connector == null) {             // <=
      return false;
  } else if (connector.getWidget() instanceof VDDHasDropHandler) {
      return false;
  }
  return true;
}

Similar errors can be found in some other places:

  • V6007 Expression 'StringUtils.isBlank(strValue)' is always true. Param.java(818)

CUBA Platform

V6007 Expression 'needReload' is always false. WebAbstractTable.java(2702)


protected boolean handleSpecificVariables(Map<String, Object> variables) {
  boolean needReload = false;

  if (isUsePresentations() && presentations != null) {
    Presentations p = getPresentations();

    if (p.getCurrent() != null && p.isAutoSave(p.getCurrent())
        && needUpdatePresentation(variables)) {
      Element e = p.getSettings(p.getCurrent());
      saveSettings(e);
      p.setSettings(p.getCurrent(), e);
    }
  }
  return needReload;
}

Apache Hive

V6007 Expression 'key.startsWith("hplsql.")' is always true. Exec.java(675)


void initOptions()
{
  ....
  if (key == null || value == null || !key.startsWith("hplsql.")) { // <=
    continue;
  }
  else if (key.compareToIgnoreCase(Conf.CONN_DEFAULT) == 0) {
    ....
  }
  else if (key.startsWith("hplsql.conn.init.")) {
    ....
  }
  else if (key.startsWith(Conf.CONN_CONVERT)) {
    ....
  }
  else if (key.startsWith("hplsql.conn.")) {
   ....
  }
  else if (key.startsWith("hplsql.")) {                            // <=
   ....
  }
}

Apache Hive

V6007 Expression 'columnNameProperty.length() == 0' is always false. OrcRecordUpdater.java(238)


private static
TypeDescription getTypeDescriptionFromTableProperties(....)
{
  ....
  if (tableProperties != null) {
    final String columnNameProperty = ....;
    final String columnTypeProperty = ....;

    if (   !Strings.isNullOrEmpty(columnNameProperty)
        && !Strings.isNullOrEmpty(columnTypeProperty))
    {
      List<String> columnNames = columnNameProperty.length() == 0
                                 ? new ArrayList<String>()
                                 : ....;

      List<TypeInfo> columnTypes = columnTypeProperty.length() == 0
                                   ? new ArrayList<TypeInfo>()
                                   : ....;
      ....
      }
    }
  }
  ....
}

Apache Hive

V6007 Expression 'colOrScalar1.equals("Column")' is always false. GenVectorCode.java(3469)


private void
generateDateTimeArithmeticIntervalYearMonth(String[] tdesc) throws Exception
{
  ....
  String colOrScalar1 = tdesc[4];
  ....
  String colOrScalar2 = tdesc[6];
  ....
  if (colOrScalar1.equals("Col") && colOrScalar1.equals("Column"))    // <=
  {
    ....
  } else if (colOrScalar1.equals("Col") && colOrScalar1.equals("Scalar"))
  {
    ....
  } else if (colOrScalar1.equals("Scalar") && colOrScalar1.equals("Column"))
  {
    ....
  }
}

Similar errors can be found in some other places:

  • V6007 Expression 'colOrScalar1.equals("Scalar")' is always false. GenVectorCode.java(3475)
  • V6007 Expression 'colOrScalar1.equals("Column")' is always false. GenVectorCode.java(3486)
  • V6007 Expression 'characters == null' is always false. RandomTypeUtil.java(43)
  • And 4 additional diagnostic messages.

Apache Dubbo

V6007 Expression 'endKey[i] < 0xff' is always true. OptionUtil.java(32)


public static final ByteSequence prefixEndOf(ByteSequence prefix) {
  byte[] endKey = prefix.getBytes().clone();
  for (int i = endKey.length - 1; i >= 0; i--) {          // <=
    if (endKey[i] < 0xff) {
      endKey[i] = (byte) (endKey[i] + 1);
      return ByteSequence.from(Arrays.copyOf(endKey, i + 1));
    }
  }
  return ByteSequence.from(NO_PREFIX_END);
}

Apache Dubbo

V6007 Expression 'isPreferIPV6Address()' is always false. NetUtils.java(236)


private static Optional<InetAddress> toValidAddress(InetAddress address) {
  if (address instanceof Inet6Address) {
    Inet6Address v6Address = (Inet6Address) address;
    if (isPreferIPV6Address()) {
      return Optional.ofNullable(normalizeV6Address(v6Address));
    }
  }
  if (isValidV4Address(address)) {
    return Optional.of(address);
  }
  return Optional.empty();
}

static boolean isPreferIPV6Address() {
  boolean preferIpv6 = Boolean.getBoolean("java.net.preferIPv6Addresses");
  if (!preferIpv6) {
    return false;     // <=
  }
  return false;       // <=
}

Apache Dubbo

V6007 Expression '!mask[i].equals(ipAddress[i])' is always true. NetUtils.java(476)


public static boolean matchIpRange(....) throws UnknownHostException {
  ....
  for (int i = 0; i < mask.length; i++) {
    if ("*".equals(mask[i]) || mask[i].equals(ipAddress[i])) {   // <=
      continue;
    } else if (mask[i].contains("-")) {
       ....
    } else if (....) {
      continue;
    } else if (!mask[i].equals(ipAddress[i])) {      // <=
      return false;
    }
  }
  return true;
}

Apache Dubbo

V6007 Expression 'message.length > 0' is always true. DeprecatedTelnetCodec.java(302)


protected Object decode(.... , byte[] message) throws IOException {
  ....
  if (message == null || message.length == 0) {         // <=
    return NEED_MORE_INPUT;
  }
  ....
  // Here the variable message doesn't change!
  ....
  if (....) {
    String value = history.get(index);
    if (value != null) {
      byte[] b1 = value.getBytes();
      if (message != null && message.length > 0) {              // <=
        byte[] b2 = new byte[b1.length + message.length];
        System.arraycopy(b1, 0, b2, 0, b1.length);
        System.arraycopy(message, 0, b2, b1.length, message.length);
        message = b2;
      } else {
        message = b1;
      }
    }
  }
  ....
}

Similar errors can be found in some other places:

  • V6007 Expression 'message != null' is always true. DeprecatedTelnetCodec.java(302)

Apache Dubbo

V6007 Expression '!shouldExport()' is always false. ServiceConfig.java(371)


public synchronized void export() {
  checkAndUpdateSubConfigs();

  if (!shouldExport()) {                                     // <=
    return;
  }

  if (shouldDelay()) {
    ....
  } else {
    doExport();
}

private boolean shouldExport() {
  Boolean export = getExport();
  // default value is true
  return export == null ? true : export;
}
....
@Override
public Boolean getExport() {
  return (export == null && provider != null) ? provider.getExport() : export;
}

protected Boolean export;
....
public Boolean getExport() {
  return export;
}
....
public void setExport(Boolean export) {
  this.export = export;
}

@Override
public void build(T instance) {
....
  if (export != null) {
    instance.setExport(export);
  }
....
}

because of the uninitialized 'export' field, the setExport method is never executed, as a result getExport always returns null, which is why !shouldExport() is always false


Huawei Cloud

V6007 Expression 'firewallPolicyId == null' is always false. FirewallPolicyServiceImpl.java(125)


public FirewallPolicy
removeFirewallRuleFromPolicy(String firewallPolicyId,
                             String firewallRuleId)
{
  checkNotNull(firewallPolicyId);
  checkNotNull(firewallRuleId);
  checkState(!(firewallPolicyId == null && firewallRuleId == null),
  "Either a Firewall Policy or Firewall Rule identifier must be set");
  ....
}

Similar errors can be found in some other places:

  • V6007 Expression 'firewallRuleId == null' is always false. FirewallPolicyServiceImpl.java(125)

Huawei Cloud

V6007 Expression 'filteringParams != null' is always true. NetworkPolicyServiceImpl.java(60)


private Invocation<NetworkServicePolicies> buildInvocation(Map<String,
String> filteringParams)
{
  ....
  if (filteringParams == null) {
    return servicePoliciesInvocation;
  }
  if (filteringParams != null) {       // <=
    ....
  }
  return servicePoliciesInvocation;
}

Similar errors can be found in some other places:

  • V6007 Expression 'filteringParams != null' is always true. PolicyRuleServiceImpl.java(58)
  • V6007 Expression 'filteringParams != null' is always true. GroupServiceImpl.java(58)
  • V6007 Expression 'filteringParams != null' is always true. ExternalSegmentServiceImpl.java(57)
  • And 2 additional diagnostic messages.

Apache Hadoop

V6007 Expression 'byteAm < 0' is always false. DataWriter.java(322)


test
GenerateOutput writeSegment(long byteAm, OutputStream out)
    throws IOException {
  long headerLen = getHeaderLength();
  if (byteAm < headerLen) {
    // not enough bytes to write even the header
    return new GenerateOutput(0, 0);
  }
  // adjust for header length
  byteAm -= headerLen;
  if (byteAm < 0) {
    byteAm = 0;
  }
  WriteInfo header = writeHeader(out, byteAm);
  DataHasher hasher = new DataHasher(header.getHashValue());
  GenerateOutput pRes = writePieces(byteAm, 0, hasher, out);
  long bytesWritten = pRes.getBytesWritten() + header.getBytesWritten();
  long timeTaken = header.getTimeTaken() + pRes.getTimeTaken();
  return new GenerateOutput(bytesWritten, timeTaken);
}

Apache Hadoop

V6007 Expression 'children.size() > 0' is always true. Queue.java(347)


boolean isHierarchySameAs(Queue newState) {
  ....
  if (children == null || children.size() == 0) {
    ....
  }
  else if(children.size() > 0)
  {
    ....
  }
  ....
}

Ghidra

V6007 Expression 'data[i] != 0xFFFFFFFFL' is always true. GuidUtil.java(200)


public class GuidUtil {
  ....
  public static GuidInfo parseLine(...) {
    ....
    long[] data = new long[4];
    ....
    if (isOK(data)) {
      if (!hasVersion) {
        return new GuidInfo(guidString, name, guidType);
      }
      return new VersionedGuidInfo(guidString, version, name, guidType);
    }
    return null;
  }
  ....
  private static boolean isOK(long[] data) {
    for (int i = 0; i < data.length; i++) {
      if ((data[i] != 0) || (data[i] != 0xFFFFFFFFL)) { // <=
        return true;
      }
    }
    return false;
  }
  ....
}

Ghidra

V6007 Expression 'zeroLengthArray' is always false. PdbDataTypeParser.java(278)


private String parseArrayDimensions(String datatype,
                                    List<Integer> arrayDimensions) {
  String dataTypeName = datatype;
  boolean zeroLengthArray = false;
  while (dataTypeName.endsWith("]")) {
    if (zeroLengthArray) {                   // <=
      return null; // only last dimension may be 0
    }
    int rBracketPos = dataTypeName.lastIndexOf(']');
    int lBracketPos = dataTypeName.lastIndexOf('[');
    if (lBracketPos < 0) {
      return null;
    }
    int dimension;
    try {
      dimension = Integer.parseInt(dataTypeName.substring(lBracketPos + 1,
                                                          rBracketPos));
      if (dimension < 0) {
        return null; // invalid dimension
      }
    }
    catch (NumberFormatException e) {
      return null;
    }
    dataTypeName = dataTypeName.substring(0, lBracketPos).trim();
    arrayDimensions.add(dimension);
  }
  return dataTypeName;
}

Ghidra

V6007 Expression '((i + 1) % defaultGroupSizeSpace) == 0' is always true. ByteViewerLayoutModel.java(66)


void setFactorys(FieldFactory[] fieldFactorys,
                 DataFormatModel dataModel, int margin) {
  factorys = new FieldFactory[fieldFactorys.length];

  int x = margin;
  int defaultGroupSizeSpace = 1;
  for (int i = 0; i < factorys.length; i++) {
    factorys[i] = fieldFactorys[i];
    factorys[i].setStartX(x);
    x += factorys[i].getWidth();
    // add in space between groups
    if (((i + 1) % defaultGroupSizeSpace) == 0) { // <=
      x += margin * dataModel.getUnitDelimiterSize();
    }
  }
  width = x - margin * dataModel.getUnitDelimiterSize() + margin;
  layoutChanged();
}

Ghidra

V6007 Expression 'index >= 0' is always true. ExternalNamesTableModel.java(105)


public void setValueAt(Object aValue, int row, int column) {
  ....
  int index = indexOf(newName);
  if (index >= 0) {                  // <=
    Window window = tool.getActiveWindow();
    Msg.showInfo(getClass(), window, "Duplicate Name",
                 "Name already exists: " + newName);
    return;
  }

  ExternalPath path = paths.get(row);
  ....
}
private int indexOf(String name) {
  for (int i = 0; i < paths.size(); i++) {
    ExternalPath path = paths.get(i);
    if (path.getName().equals(name)) {
      return i;
    }
  }
  return 0;
}

XMage

V6007 Expression 'filter.getMessage().toLowerCase(Locale.ENGLISH).startsWith("Each ")' is always false. SetPowerToughnessAllEffect.java(107)


@Override
public String getText(Mode mode) {
  StringBuilder sb = new StringBuilder();
  ....
  if (filter.getMessage().toLowerCase(Locale.ENGLISH).startsWith("Each ")) {
    sb.append(" has base power and toughness ");
  } else {
    sb.append(" have base power and toughness ");
  }
  ....
  return sb.toString();
}

Similar errors can be found in some other places:

  • V6007 Expression 't.startsWith("-")' is always false. BoostSourceEffect.java(103)
  • V6007 Expression 'setNames.isEmpty()' is always false. DownloadPicturesService.java(300)
  • V6007 Expression 'existingBucketName == null' is always false. S3Uploader.java(23)
  • And 3 additional diagnostic messages.

WildFly

V6007 Expression 'poolStatsSize > 0' is always true. PooledConnectionFactoryStatisticsService.java(85)


@Override
public void start(StartContext context) throws StartException {
  ....
  if (poolStatsSize > 0) {
    if (registration != null) {
      if (poolStatsSize > 0) {
        ....
      }
    }
  }
}

Similar errors can be found in some other places:

  • V6007 Expression 'referralMode == null' is always false. DirContext.java(93)
  • V6007 Expression 'mBeanServer == null' is always true. WildFlyServerPlatform.java(82)
  • V6007 Expression 'result != null' is always true. New returns not-null reference. JarCheck.java(84)
  • And 1 additional diagnostic messages.

Bouncy Castle

V6007 Expression '!(nGroups < 8)' is always false. CBZip2OutputStream.java(753)


private void sendMTFValues() throws IOException {
    ....
    int nGroups;
    ....
    if (nMTF < 200) {
        nGroups = 2;
    } else if (nMTF < 600) {
        nGroups = 3;
    } else if (nMTF < 1200) {
        nGroups = 4;
    } else if (nMTF < 2400) {
        nGroups = 5;
    } else {
        nGroups = 6;
    }
    ....
    if (!(nGroups < 8)) {
        panic();
    }
}

Apache Flink

V6007 Expression 'input2.length > 0' is always true. Operator.java(283)


public static <T> Operator<T> createUnionCascade(Operator<T> input1,
                                                 Operator<T>... input2)
{
  if (input2 == null || input2.length == 0)
  {
    return input1;                                // <=
  }
  else if (input2.length == 1 && input1 == null)
  {
    return input2[0];
  }
  ....
  if (input1 != null)
  {
    ....
  }
  else if (input2.length > 0 && input2[0] != null) // <=
  {
    ....
  }
  else
  {
    ....
  }
}

Apache Flink

V6007 Expression 'slotSharingGroup == null' is always false. StreamGraphGenerator.java(510)


private <T> Collection<Integer> transformFeedback(...)
{
  ....
  String slotSharingGroup = determineSlotSharingGroup(null, allFeedbackIds);
  if (slotSharingGroup == null)
  {
    slotSharingGroup = "SlotSharingGroup-" + iterate.getId();
  }
  ....
}

public class StreamGraphGenerator
{
  ....
  public static final String DEFAULT_SLOT_SHARING_GROUP = "default";
  ....
  private String determineSlotSharingGroup(String specifiedGroup,
                                           Collection<Integer> inputIds)
  {
    if (specifiedGroup != null)
    {
      return specifiedGroup; // <= 1
    }
    else
    {
      String inputGroup = null;
      for (int id: inputIds)
      {
        String inputGroupCandidate = streamGraph.getSlotSharingGroup(id);
        if (inputGroup == null)
        {
          inputGroup = inputGroupCandidate;
        }
        else if (!inputGroup.equals(inputGroupCandidate))
        {
          return DEFAULT_SLOT_SHARING_GROUP; // <= 2
        }
      }
      return inputGroup == null
             ? DEFAULT_SLOT_SHARING_GROUP
             : inputGroup; // <= 3
    }
  }
  ....
}

Apache Flink

V6007 Expression 'currentCount <= lastEnd' is always true. CountSlidingWindowAssigner.java(75)


@Override
public Collection<CountWindow> assignWindows(....) throws IOException
{
  Long countValue = count.value();
  long currentCount = countValue == null ? 0L : countValue;
  count.update(currentCount + 1);
  long lastId = currentCount / windowSlide;
  long lastStart = lastId * windowSlide;
  long lastEnd = lastStart + windowSize - 1;
  List<CountWindow> windows = new ArrayList<>();
  while (lastId >= 0 &&
         lastStart <= currentCount &&
         currentCount <= lastEnd)
  {
    if (lastStart <= currentCount && currentCount <= lastEnd) // <=
    {
      windows.add(new CountWindow(lastId));
    }
    lastId--;
    lastStart -= windowSlide;
    lastEnd -= windowSlide;
  }
  return windows;
}

Similar errors can be found in some other places:

  • V6007 Expression 'lastStart <= currentCount' is always true. CountSlidingWindowAssigner.java(75)

Rhino

V6007 Expression 'power < 2' is always false. UintMap.java(39)


public class UintMap implements Serializable {
  ....
  // If true, enables consitency checks
  private static final boolean check = false;
  ....
  public UintMap(int initialCapacity) {
    if (initialCapacity < 0) Kit.codeBug();
    // Table grow when number of stored keys >= 3/4 of max capacity
    int minimalCapacity = initialCapacity * 4 / 3;
    int i;
    for (i = 2; (1 << i) < minimalCapacity; ++i) {}
    power = i;
    if (check && power < 2) Kit.codeBug();      // <=
  }
  ....
}

Rhino

V6007 Expression 'power < 2' is always false. ObjToIntMap.java(102)


public class ObjToIntMap implements Serializable {
  ....
  // If true, enables consitency checks
  private static final boolean check = false;
  ....
  public ObjToIntMap(int initialCapacity) {
    if (initialCapacity < 0) Kit.codeBug();
    // Table grow when number of stored keys >= 3/4 of max capacity
    int minimalCapacity = initialCapacity * 4 / 3;
    int i;
    for (i = 2; (1 << i) < minimalCapacity; ++i) {}
    power = i;
    if (check && power < 2) Kit.codeBug();      // <=
  }
  ....
}

Rhino

V6007 Expression '!BUG_369394_IS_VALID' is always true. XmlProcessor.java(288)


class XmlProcessor implements Serializable {
  ....
  private void addTextNodesToRemoveAndTrim(List<Node> toRemove, Node node) {
    if (node instanceof Text) {
      Text text = (Text) node;
      boolean BUG_369394_IS_VALID = false;
      if (!BUG_369394_IS_VALID) {                 // <=
        text.setData(text.getData().trim());
      } else {
        if (text.getData().trim().length() == 0) {
          text.setData("");
        }
      }
      if (text.getData().length() == 0) {
        toRemove.add(node);
      }
    }
    ....
  }
  ....
}

Rhino

V6007 Expression 'i < indentLevel' is always false. XmlProcessor.java(454)


class XmlProcessor implements Serializable {
  ....
  private boolean prettyPrint;
  ....
  private int prettyIndent;
  ....
  final String ecmaToXmlString(Node node) {
    // See ECMA 357 Section 10.2.1
    StringBuilder s = new StringBuilder();
    int indentLevel = 0;
    if (prettyPrint) {
      for (int i = 0; i < indentLevel; i++) { // <=
        s.append(' ');
      }
    }
    ....
  }
  ....
}

IntelliJ IDEA Community Edition

V6007 Expression '!nextStepButtonSelected' is always true. PopupListElementRenderer.java(330)


@Override
protected void customizeComponent(JList list, E value, boolean isSelected) {
    ....
    boolean nextStepButtonSelected = false; // <=
    ....
    myMnemonicLabel.setForeground(isSelected &&
                                  isSelectable &&
                                  !nextStepButtonSelected
                                  ? getSelectionForeground()
                                  : foreground);
    ....
    myShortcutLabel.setForeground(
      isSelected &&
      isSelectable &&
      !nextStepButtonSelected
      ? UIManager.getColor("MenuItem.acceleratorSelectionForeground")
      : UIManager.getColor("MenuItem.acceleratorForeground"));
    ....
    boolean selected = isSelected && isSelectable && !nextStepButtonSelected;

    setForegroundSelected(myValueLabel, selected);
    ....
}

Similar errors can be found in some other places:

  • V6007 Expression '!nextStepButtonSelected' is always true. PopupListElementRenderer.java(384)
  • V6007 Expression '!nextStepButtonSelected' is always true. PopupListElementRenderer.java(373)

NetBeans 21

V6007 Expression 'FoldUtilitiesImpl.PREF_CONTENT_PREVIEW.equals(FoldUtilitiesImpl.PREF_CONTENT_PREVIEW)' is always true. FoldOptionsPanel.java(177)


public void preferenceChange(PreferenceChangeEvent evt) {
  String k = evt == null ? null : evt.getKey();
  ....
  try {
    ....
    if (k == null || FoldUtilitiesImpl.PREF_CONTENT_PREVIEW.equals
                              (FoldUtilitiesImpl.PREF_CONTENT_PREVIEW)) {
      ....
    }
    ....
  }
  ....
}

NetBeans 21

V6007 Expression 'FoldUtilitiesImpl.PREF_CONTENT_SUMMARY.equals(FoldUtilitiesImpl.PREF_CONTENT_SUMMARY)' is always true. FoldOptionsPanel.java(180)


public void preferenceChange(PreferenceChangeEvent evt) {
  String k = evt == null ? null : evt.getKey();
  ....
  try {
    ....
    if (k == null || FoldUtilitiesImpl.PREF_CONTENT_SUMMARY.equals
                              (FoldUtilitiesImpl.PREF_CONTENT_SUMMARY)) {
      ....
    }
    ....
  }
  ....
}

GeoServer

V6007 Expression 'cm == null' is always false. CatalogBuilder.java 1242


private GridSampleDimension[] getCoverageSampleDimensions(
    GridCoverage2DReader reader, Map<String, Serializable> customParameters)
    throws TransformException, IOException, Exception {
  ....
  ColorModel cm = imageLayout.getColorModel(null);
  if (cm == null) {                                                  // <=
    throw new Exception(
        "Unable to acquire test coverage and color model for format:"
            + format.getName());
  }
  SampleModel sm = imageLayout.getSampleModel(null);
  if (cm == null) {                                                  // <=
    throw new Exception(
        "Unable to acquire test coverage and sample model for format:"
            + format.getName());
  }
  ....
}

GeoServer

V6007 Expression 'sortOrder != null' is always true. DefaultCatalogFacade.java 1138


@Override
public <T extends CatalogInfo> CloseableIterator<T> list(
    final Class<T> of,
    final Filter filter,
    @Nullable Integer offset,
    @Nullable Integer count,
    @Nullable SortBy... sortOrder) {

  if (sortOrder != null) {                                // <=
    for (SortBy so : sortOrder) {
      if (sortOrder != null &&                            // <=
          !canSort(of, so.getPropertyName().getPropertyName())) {
        throw new IllegalArgumentException(
            "Can't sort objects of type "
                + of.getName()
                + " by "
                + so.getPropertyName());
      }
    }
  }
  ....
}

GeoServer

V6007 Expression '"Not a GetCapabilitiesType: " + o != null' is always true. WCS20GetCapabilitiesTransformer.java 183


@Override
public void encode(Object o) throws IllegalArgumentException {
  if (!(o instanceof GetCapabilitiesType)) {
    throw new IllegalArgumentException(
        "Not a GetCapabilitiesType: " + o != null ? o.toString() : "null");
  }
  ....
}

The result of "Not a GetCapabilitiesType: " + o will be compared to null, since != will evaluate expressions to the left and to the right before the comparison.