[GLASSFISH-18427] Weld: Inspect JDK 7 getMethods()/getDeclaredMethods() usage Created: 28/Feb/12  Updated: 20/Dec/16  Resolved: 25/Mar/13

Status: Closed
Project: glassfish
Component/s: cdi
Affects Version/s: 4.0_dev
Fix Version/s: 4.0

Type: Task Priority: Major
Reporter: Joe Di Pol Assignee: jwells
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


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

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:


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

Comment by Sivakumar Thyagarajan [ 10/Dec/12 ]

Transferring to JJ Snyder

Comment by jwells [ 25/Mar/13 ]

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

Generated at Wed Mar 29 23:48:58 UTC 2017 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.