2

次のコードがあり、ソナーから次のエラー メッセージが表示されます。

Dead store to descriptions1 in new com.dscsag.dsct2c.test.TestStep(Integer, String, Model)

次のコードでは:

for (Integer count = 0; count < testStepCount; count++)
    {
      if (xmlReader.isTestExistingForOrderNumber(count, orderNumber, version))
      {
        if (xmlReader.checkForDuplicateTest(orderNumber, count, version))
        {
          GlobalVariables.LOGGING_logger.error("### " + this.getClass().getSimpleName()
              + ": There are one or more duplicated order numbers for test " + count + " under test step " + orderNumber + ".");
          model.setStatusText("STATUS_DUPLICATED_TEST", orderNumber.toString(), StatusCode.ERROR);
          throw new Exception();
        }
        else
        {
          GlobalVariables.LOGGING_logger.info("### " + this.getClass().getSimpleName() + ": No duplicated found for test " + count
              + " under test step " + orderNumber + ".");
          boolean functionNeeded = xmlReader.isFunctionNeededForOrderNumber(orderNumber, count, version);

          String[][] descriptions1 = new String[2][descriptions[0].length];

          for (int a = 0; a < this.descriptions[0].length; a++)
          {
            descriptions1[0][a] = descriptions[0][a];
            descriptions1[1][a] = xmlReader.getTestDescription(descriptions[0][a], orderNumber, count, version);
          }

          ArrayList<String> filesString = xmlReader.getTestFilesForOrderNumber(orderNumber, count, version);
          ArrayList<File> filesFile = new ArrayList<File>();
          Iterator<String> it = filesString.iterator();
          while (it.hasNext())
          {
            File file = new File(GlobalVariables.PATH_TestFiles
                + xmlReader.getValueDocumentConfiguration(XmlElements.CAD_APPL, XmlElements.TESTING_ENVIRONMENT, null) + "/" + it.next());
            filesFile.add(file);

            GlobalVariables.LOGGING_logger.info("### " + this.getClass().getSimpleName() + ": Added file to test " + count
                + " under test step " + orderNumber + ": \"" + file.getName() + "\"");
          }

          testObjectsList.add(new TestObject(functionNeeded, xmlReader.getFunctionNameForOrderNumber(orderNumber, count, version),
              descriptions1, filesFile));

          GlobalVariables.LOGGING_logger.info("### " + this.getClass().getSimpleName() + ": Finally created test object for test " + count
              + " under test step " + orderNumber + ".");
        }
      }
      else
      {
        model.setStatusText("STATUS_NO_TEST", count.toString(), StatusCode.WARNING);
      }
    }
  }

なぜ私が「デッド」に保存するのか分かりますかdescriptions1? この変数を使用する必要があると思います。

4

1 に答える 1

3

ソナーの誤検知です。Sonar は、ソースではなく、コンパイルされたコードで動作します。へのアクセスが最適化されているか、コンパイラによって置き換えられていると思いますdescriptions1。したがって、ソナーはそれを見ることができません。

于 2013-07-22T07:34:29.063 に答える