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

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Triage Needed
    • Low
    • Resolution: Unresolved
    • 5.x
    • Local/Commit Log
    • None
    • Low
    • Low Hanging Fruit
    • User Report
    • All
    • 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

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

            Dates

              Created:
              Updated: