Tuscany
  1. Tuscany
  2. TUSCANY-1366

C++ SDO spec portability: SDORuntimeException off-spec member functions

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: Cpp-M3
    • Fix Version/s: None
    • Component/s: C++ SDO, C++ Specification
    • Labels:
      None
    • Environment:
      portability issue -- all platforms

      Description

      Tuscany C++ SDO specification class SDORuntimeException has off-spec member functions used by SCA (shown in the e-mail thread below). It would seem that for portability these should be taken internal to Tuscany SDO, or submitted to the spec committee.

      ----Original Message----
      From: Michael Yoder
      Sent: Thursday, June 21, 2007 7:37 PM
      To: 'tuscany-dev@ws.apache.org'
      Subject: RE: C++ SDO spec compliance/portability: SDORuntimeException

      Thanks Pete,

      Yes, these issues I am putting together and posting came up when doing a portability study using HydraSDO to build Tuscany SCA. Since the SDO spec is separate from SCA, we were thinking this would be a good goal. That seems to mean making them internal to Tuscany SDO or taking them to the committee.

      Michael

      ----Original Message----
      From: Pete Robbins robbinspg@googlemail.com
      Sent: Thursday, June 21, 2007 9:02 AM
      To: tuscany-dev@ws.apache.org
      Subject: Re: C++ SDO spec compliance/portability: SDORuntimeException

      Michael,

      An interesting set of questions! I'm not convinced that adding methods to the spec api classes is a compliance issue (in fact it may be impossible to implement without modifying the spec apis ... constructors etc.) but it could be a portability issue if it is not clear that the methods are implementation specific.

      The methods below are added so that an SDORuntimeException can contain a "stack" of locations indicating where it was thrown/rethrown etc.. These are only used within the Tuscany implementation so I guess could be moved to protected and make the classes that use them friends?? I'm not sure how useful these are anyway but the exception class pre-dates it being used for SDORuntimeException.

      There are also methods to allow simple streaming:

      catch(SDORuntimeException& e)
      {
      cout << e;
      }

      I like the simplicity of this but I guess we could write an SDOUtils method to do something similar instead.

      I'm not sure if any of these should be mandated by the specification.

      Cheers,

      On 21/06/07, Michael Yoder <yoder@roguewave.com> wrote:
      >
      > Hi,
      >
      > The Tuscany SDO C++ class SDORuntimeException has these public member
      > functions which do not appear in the C++ 2.1 specification:
      >
      >
      > SDO_API severity_level getSeverity() const; SDO_API void
      > setSeverity(severity_level sev); SDO_API void setMessageText(const
      > std::string& msg_text); SDO_API void setExceptionLocation(const
      > std::string& file,
      > unsigned long line,
      > const std::string& function="");
      > SDO_API void setLocation(const std::string& file,
      > unsigned long line,
      > const std::string& function="");
      >
      > SDO_API void trace(const std::string& text="%1:\n %3 %4 %2");
      >
      > SDO_API virtual ostream& PrintSelf(ostream &os) const; SDO_API friend
      > ostream& operator<< (ostream &os, const SDORuntimeException &except);
      >
      >
      > What's the rational behind these additional member functions? Would it
      > be appropriate to file a bug to have them removed from the public API?
      > Or alternatively a bug for them to be submitted to the spec committee?
      >
      > Thanks,
      >
      > Michael Yoder
      > Software Developer
      > Rogue Wave Software
      >
      > ---------------------------------------------------------------------
      > To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
      > For additional commands, e-mail: tuscany-dev-help@ws.apache.org
      >
      >


      Pete

      1. TUSCANY-1366.txt
        150 kB
        Michael Yoder

        Activity

        Michael Yoder created issue -
        Hide
        Pete Robbins added a comment -

        adding specification component

        Show
        Pete Robbins added a comment - adding specification component
        Pete Robbins made changes -
        Field Original Value New Value
        Component/s C++ Specification [ 12311418 ]
        Luciano Resende made changes -
        Affects Version/s Cpp-M3 [ 12312265 ]
        Affects Version/s Cpp-Next [ 12312266 ]
        Luciano Resende made changes -
        Affects Version/s Cpp-M3 [ 12312265 ]
        Affects Version/s Cpp-Next [ 12312266 ]
        Fix Version/s Cpp-Next [ 12312266 ]
        Hide
        Michael Yoder added a comment -

        This patch removes the off-spec API from C++ SDO Exception classes. The shift operator is kept as a global operator. All the SDO existing exceptions were using a SCA exception serverity level of warning, so SDO to SCA exception conversion uses this level of severity. In looking at the code reporting multiple exception contexts (via re-throwing) was never functional (the code to do so was commented out with crash warnings). Likewise, this code will report on the initial context where the exception was thrown.

        Show
        Michael Yoder added a comment - This patch removes the off-spec API from C++ SDO Exception classes. The shift operator is kept as a global operator. All the SDO existing exceptions were using a SCA exception serverity level of warning, so SDO to SCA exception conversion uses this level of severity. In looking at the code reporting multiple exception contexts (via re-throwing) was never functional (the code to do so was commented out with crash warnings). Likewise, this code will report on the initial context where the exception was thrown.
        Michael Yoder made changes -
        Attachment TUSCANY-1366.txt [ 12364046 ]
        Hide
        Michael Yoder added a comment -

        Resolved with applied patch.

        Show
        Michael Yoder added a comment - Resolved with applied patch.
        Michael Yoder made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Closed [ 6 ]
        Jean-Sebastien Delfino made changes -
        Fix Version/s C++-SCA-Next [ 12312266 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Michael Yoder
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development