Two Day Test Pass for Java 7 Support
Testing days: Tuesday 2011-07-19 and Wednesday 2011-07-20
Test Build: Use a fresh 3.7 or 4.1 drop and install the support from here
Testers: JDT Team + PDE Team
Setup
Platforms
JREs
Use the latest Oracle and IBM JREs from JIM (don't download from anywhere else).
- primary tester (listed as first one) uses the IBM JRE
- secondary tester (listed as second one) uses the Oracle JRE
Workbench
Use your preferred workbench setup but make sure to start with a new workspace, so that bugs can be reproduced more easily.
First test all items where you are listed as first (or only) tester. Only when you have completed all those items, you can start with those where you are listed as second tester.
Drop me a note (ST or e-mail) each time you have completed an item, so that I can update the current state in the test plan.
New Java 7 Support and Features
The goal is to test the new Java 7 features.
- Switch on strings (Deepak, Srikanth)
- Binary literals (Olivier, Curtis)
- Underscores in literals (Curtis, Satyam)
- Multi-catch (Dani, Olivier)
- More precise rethrow (Srikanth, Raksha)
- Try-with-resources (Ayush, Mike)
- Simplified varargs method invocation (Mike, Deepak)
- Diamond (Jay, Ankur)
- Polymorphic methods (aka invoke dynamic) (Ankur, Srikanth)
- Unicode 6.0 (Jay, Raksha)
For each item test the following things (if applicable):
- the compiler tolerates the new syntax when in 1.7 mode
- the compiler does not tolerate the new syntax when below 1.7
- new options added for the feature (compiler, formatter)
- new quick assists and quick fixes: verify that they are appropriate, work as expected, have the correct relevance in the quick fix pop-up
- test that the refactorings work
- test code navigation (F3, hyperlinking)
- test hovers in the editor
- test mark occurrences
- test search
- test the formatter
- test the code indenter
- test the debugger (hot code replace for new constructs, code evaluation for new AST nodes
Additional Items
API Tools support: verify that we can find invalid references to 1.7 system libraries ( Dani, Ayush) [1]
- test that class files generated by 1.7 compiler at 1.5/1.6 compliance is consumable by equivalent JRE (Olivier, Satyam)
Bug Verification
Freestyle Testing (all)
Once you have completed all assigned test items (including those where you are listed as secondary tester), you can implement a little feature or tool, or fix one of your favorite bugs, preferably using Java 7 constructs.
Appendix
[1] Cannot be tested because the 1.7 EE description is not yet available.
Multi-catch
- 'Surround with try/multi-catch' quick fix - for multiple uncaught exceptions
- 'Add exceptions to existing catch clause' quick fix - allows you to add uncaught exceptions to an existing catch clause
- 'Use separate catch blocks' quick assist - replace a multi-catch clause with individual catch blocks
- 'Move exceptions to separate catch block' quick assist - pick out one or more selected exceptions from a multi-catch clause
- 'Combine catch blocks' quick assist - combine separate catch blocks into a single multi-catch block
- 'Remove exception' and 'Replace exception with throws' quick fixes - on the error shown when an exception in a multi-catch clause is already caught by an alternative exception
@SafeVarargs
- 'Add @SafeVarargs' quick fix - for potential heap pollution warnings on method declarations
- 'Add @SafeVarargs to 'asList(...)'' quick fix - same quick fix as above but from call site
- 'Remove @SafeVarargs' quick fix - for incorrect usage of @SafeVarargs annotation
Diamond
- 'Remove type arguments' quick fix - for 'Redundant type arguments' warning
- 'Insert inferred type arguments' quick assist and as quick fix - for class instance creations
Others
- 'Convert 'switch' to 'if-else'' quick assist - an old quick assist but updated for strings in switch
- 'Change compiler compliance' quick fix - when a 1.7 feature is used with compiler compliance less than 1.7