groovy
  1. groovy
  2. GROOVY-3335

Exception while evaluating classes with static toString() methods

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.6.1, 1.5.8, 1.7-beta-1
    • Component/s: None
    • Labels:
      None
    • Testcase included:
      yes
    • Number of attachments :
      0

      Description

      Try the following script:

      assert 'class java.text.SimpleDateFormat' == java.text.SimpleDateFormat.toString()
      assert 'class java.lang.Integer' == java.lang.Integer.toString()

      the second statement throws exception:
      Exception thrown: Could not find which method toString() to invoke from this list:
      public static java.lang.String java.lang.Integer#toString(int)
      public static java.lang.String java.lang.Integer#toString(int, int)

      It looks like Class.toString() is not taken into account while trying to evaluate this expression.
      Integer.class.toString() produces the same error.

        Activity

        Hide
        blackdrag blackdrag added a comment -

        Roshan... in your fix you seem to swallow the MethodSelectionException, since that exception contains informations about what methods are available it would be nice if that exception could be thrown at the end instead of a MissingMehodException.

        Show
        blackdrag blackdrag added a comment - Roshan... in your fix you seem to swallow the MethodSelectionException, since that exception contains informations about what methods are available it would be nice if that exception could be thrown at the end instead of a MissingMehodException.
        Hide
        Roshan Dawrani added a comment -

        You mean to say that if 1st call to chooseMethod() throws an exception, I should store it and at the time of return, if the method to return is still null, I should throw that previously thrown exception so that information in it can be utilized for whatever purpose?

        Show
        Roshan Dawrani added a comment - You mean to say that if 1st call to chooseMethod() throws an exception, I should store it and at the time of return, if the method to return is still null, I should throw that previously thrown exception so that information in it can be utilized for whatever purpose?
        Hide
        blackdrag blackdrag added a comment -

        yes

        Show
        blackdrag blackdrag added a comment - yes
        Hide
        Roshan Dawrani added a comment -

        Fixed on 1.5.8, 1.6.1 and 1.7-beta-1 branches.

        Show
        Roshan Dawrani added a comment - Fixed on 1.5.8, 1.6.1 and 1.7-beta-1 branches.

          People

          • Assignee:
            Roshan Dawrani
            Reporter:
            Sergey Bondarenko
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: