Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15116

CommitLogArchiver.construct() throws a RuntimeException when it failed to create a directory

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Triage Needed
    • Priority: Low
    • Resolution: Unresolved
    • Fix Version/s: 4.x
    • Component/s: Local/Commit Log
    • Labels:
      None
    • Severity:
      Low
    • Complexity:
      Low Hanging Fruit
    • Discovered By:
      User Report
    • Platform:
      All
    • Impacts:
      None

      Description

      Dear Cassandra developers, we are developing a tool to detect exception-related bugs in Java. Our prototype has spotted the following throw statement whose exception class and error message indicate different error conditions.

       

      Version: Cassandra-3.11 (commit: 123113f7b887370a248669ee0db6fdf13df0146e) 

      File: CASSANDRA-ROOT/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java

      Line: 110

      throw new RuntimeException("Unable to create directory: " + dir);

       

      RuntimeException is usually used to represent errors in the program logic (think of one of its subclasses, NullPointerException), while the error message indicates that construct() failed to create a directory. This mismatch could be a problem. For example, the callers may miss the possibility that construct() can fail to create a directory because it does not throw any IOException. Or, the callers trying to handle other RuntimeException may accidentally (and incorrectly) handle the directory creation failure.

        Attachments

          Activity

            People

            • Assignee:
              jmeredithco Jon Meredith
              Reporter:
              ebugs-in-cloud-systems Haicheng Chen
              Authors:
              Jon Meredith
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: