Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-1665

org.apache.cxf.jaxws.interceptors.SwAOutInterceptor:197 | Unreachable Code

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.1.1
    • Fix Version/s: 2.0.8, 2.1.2
    • Component/s: Core
    • Labels:
      None
    • Environment:

      This is a coding error which will manifest itself on every platform.

    • Estimated Complexity:
      Moderate

      Description

      Examine the code fragment below to see that line 197 is unreachable:
      On line 148, dh=null.
      Then we test the object o for its data type, in a series of if/elseif
      clauses.
      There are two possibilities for the object o:
      1. o instanceof Source / Image / DataHandler
      2. all other situations

      In situation 1, execution will enter the blocks after lines 151, or 155,
      or 182, then continue from line 202.
      In situation 2, execution will not enter any of the blocks after lines
      151, or 155, or 182. As a result, dh is still null when we reach line
      194, and a Fault is thrown.
      Either way, execution cannot reach line 197.

      package org.apache.cxf.jaxws.interceptors;
      public class SwAOutInterceptor extends AbstractSoapInterceptor {
      DataHandler dh = null; // LINE 148
      if (o instanceof Source)

      { // LINE 151 dh = new DataHandler(createDataSource((Source)o, ct)); }

      else if (o instanceof Image)

      { // LINE 155 dh = new DataHandler(new ByteArrayDataSource(bos.toByteArray(), ct)); }

      else if (o instanceof DataHandler)

      { // LINE 182 dh = (DataHandler) o; }

      else if (dh == null)

      { // LINE 194 throw new Fault(...); }

      else if (dh.getDataSource() instanceof URLDataSource)

      { // <========== LINE 197: UNREACHABLE URLDataSource ds = (URLDataSource)dh.getDataSource(); dh = new DataHandler(ds.getURL()); ct = ds.getContentType(); }

      // LINE 201

        Attachments

          Activity

            People

            • Assignee:
              dkulp Daniel Kulp
              Reporter:
              radumanolescu Radu Manolescu
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 48h
                48h
                Remaining:
                Remaining Estimate - 48h
                48h
                Logged:
                Time Spent - Not Specified
                Not Specified