title: Why is this code segment marked dead code?
body: <p>For the life of me, I can't see why Eclipse is marking the <code>else if</code> clause below as "dead code":</p>
  
  <pre><code>BaType rbName = rSoapXml.getName().getBName();
  BaType cbName = cSoapXml.getName().getBName();
  IaType riName = rSoapXml.getName().getIName();
  IaType ciName = cSoapXml.getName().getIName();
  
  String rbNameF = rbName.getF() == null ? "null" : rbName.getF();
  String cbNameF = (cbName == null || cbName.getF() == null) ? "null" : cbName.getF();
  LOG.info("\n***BEFORE***: " + rbNameF + ", COM: " + cbNameF);
  
  if (cbName != null) {
    if (riName != null) {
      String errMsg = "Expected an I message but received a B instead.";
      throw new RuntimeException(errMsg);               
    }
    if (cbName.getBorE() != null)
      rbName.setBorE(cbName.getBorE());
    if (rbName.getBorE() == null &amp;&amp; cbName.getBorE() == null) {
      String errMsg = "Missing B name!";
      throw new RuntimeException(errMsg);               
    }
  }
  else if (ciName != null) {                                               // dead
    if (rbName != null) {                                                  // dead  
      String errMsg = "Expected a B message but received an I instead.";   // dead
      throw new RuntimeException(errMsg);                                  // dead
    }                                                                      // dead
    if (ciName.getIName() != null)                                         // dead
      riName.setIName(ciName.getIName());                                  // dead
    if (riName.getIName() == null &amp;&amp; ciName.getIName() == null) {          // dead
      String errMsg = "Missing I name";                                    // dead
      throw new RuntimeException(errMsg);                                  // dead 
    }
  
  }
  </code></pre>
  
  <p>Points I have considered:</p>
  
  <ol>
  <li>ciName is initialized at runtime and cannot be guaranteed to be non-null.</li>
  <li>cbName is not guaranteed to be non-null either, hence the <code>else</code> following its check should be valid.</li>
  </ol>
  
  <p>What am I missing here? </p>