glassfish
  1. glassfish
  2. GLASSFISH-18427

Weld: Inspect JDK 7 getMethods()/getDeclaredMethods() usage

    Details

    • Type: Task Task
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0_b25
    • Fix Version/s: 4.0
    • Component/s: cdi
    • Labels:
      None

      Description

      Recent JDK 7 releases have altered the order of methods returned by the
      Class.getMethods() and Class.getDeclaredMethods() calls. The order is
      no longer stable and can change from one JVM run to the next.

      This caused a number of sporadic bugs to appear during 3.1.2 development
      when running with JDK 7. Those have been fixed, but further inspection
      of the source has found a number of cases where we use getMethods() and
      getDeclaredMethods().

      Each of these cases should be visually inspected to see if the code is
      making any assumptions on the order of methods returned by get*Methods().
      In particular it should handle the case of multiple methods having the
      same name.

      For more details on what to look for and how to fix it see this document:

      https://wikis.oracle.com/display/GlassFish/Method+Ordering+from+Class.getMethods

      Please inspect the following files for their use of getMethods() /
      getDeclaredMethods() to ensure the code is not making any assumptions
      with respect to the order of methods returned. Create bugs for
      any issues that need to be fixed and link them to this task. Once you
      have completed inspection update this task with status and close it.

      Weld integration for glassfish
          EjbDescriptorImpl.java
          EjbServicesImpl.java
      Orchestrator
          JSONUtil.java
      
      

        Activity

        Hide
        Sivakumar Thyagarajan added a comment -

        Transferring to JJ Snyder

        Show
        Sivakumar Thyagarajan added a comment - Transferring to JJ Snyder
        Hide
        jwells added a comment -

        EjbDescriptorImpl.java: looks safe (no usages)
        EjbServicesImpl.java: looks safe (iterating through all doing the same to each one)
        JSONUtil.java: Looks ok, but will return a different valid JSON string. Should probably be ok, as long as the string is not used for equality or something like that. I checked the only place using the javaToJSON method and it looks ok

        Show
        jwells added a comment - EjbDescriptorImpl.java: looks safe (no usages) EjbServicesImpl.java: looks safe (iterating through all doing the same to each one) JSONUtil.java: Looks ok, but will return a different valid JSON string. Should probably be ok, as long as the string is not used for equality or something like that. I checked the only place using the javaToJSON method and it looks ok

          People

          • Assignee:
            jwells
            Reporter:
            Joe Di Pol
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: