jdt core - build notes 3.3 stream
java development tooling core
Here are the build notes for the Eclipse JDT/Core plug-in project org.eclipse.jdt.core, describing bug resolution and substantial changes in the R3_3_maintenance branch. This present document covers all changes since Release 3.3 (also see a summary of API changes). Maintenance of previous releases of JDT/Core is performed in parallel branches: R3.2.x, R3.1.x, R3.0.x, R2.1.x, R2.0.x, R1.0.x.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - September 15, 2007 - 3.3.1 RELEASE
Project org.eclipse.jdt.core v_780_R33x (cvs).

## What's new in this drop

### Problem Reports Fixed

203454 NPE in compiler when processing annotations

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - August 31, 2007
Project org.eclipse.jdt.core v_779_R33x (cvs).

## What's new in this drop

### Problem Reports Fixed

199668 IAE in ASTNode.setSourceRange while editing a class

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - August 29, 2007
Project org.eclipse.jdt.core v_778_R33x (cvs).

## What's new in this drop

### Problem Reports Fixed

190622 type binding marked as recovered but all is compiling
201104 JavaElement of a recovered type binding should not return a compilation unit with no parent
198051 [1.5][compiler] Improper Polymorphic Exception Handling
191739 "Duplicate nested type" bogus error on static class of abstract class or interface
183117 User Library Lost
198085 Invalid annotation cracks the annotation parsing

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - August 22, 2007
Project org.eclipse.jdt.core v_777_R33x (cvs).

## What's new in this drop

### Problem Reports Fixed

200547 [1.5][compiler] Invalid ambiguous error when calling an overriden generic method with MULTIPLE bounds
198120 [1.5][compiler] Cannot directly invoke the abstract method huch(I1) for the type I1
196254 Overrides wrong for wildcard parameterized methods
193265 [1.5][compiler] Incorrect ambiguous method error involving abstract classes and enums

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - August 15, 2007
Project org.eclipse.jdt.core v_776_R33x (cvs).

## What's new in this drop

### Problem Reports Fixed

198362 Formatter stops working when source code contains following line
109636 Comment formatter doesn't support "&#42;/"
198153 [formatter] adds extra space before expanded numerical entity
197169 Formatter expands &#64; in annotation in javadoc, creating invalid tag
186114 IMethodBinding.overrides(..) should consider static
192285 [formatter] Java source formatter not working if class has annotation on single line multiple fields declaration.
196354 ClassCastException in package binding
166093 [search] NPE searching for references to private static method in class file

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - August 2, 2007
Project org.eclipse.jdt.core v_775_R33x (cvs).

## What's new in this drop

### Problem Reports Fixed

198483 BuilderTests: need expectingUniqueCompiledClasses method

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - July 31, 2007
Project org.eclipse.jdt.core v_774_R33x (cvs).

## What's new in this drop

### Problem Reports Fixed

198047 TestingEnvironment.addProject should support 1.6 compliance

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - July 17, 2007
Project org.eclipse.jdt.core v_773_R33x (cvs).

## What's new in this drop

### Problem Reports Fixed

195802 Name clash compile error generated if superclass is abstract
195468 [1.5][compiler] Eclipse compiler differs from javac with generics (name clash)
194034 [1.5][Compiler] Inconsistency with javac: subclass does not properly inherit generic method

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3.1 - July 10, 2007
Project org.eclipse.jdt.core v_772_R33x (cvs).

## What's new in this drop

- Incremented org.eclipse.jdt.core plug-in ID to "3.3.1"

### Problem Reports Fixed

191125 [1.5] [assist] NPE in CompletionEngine.proposeType()
195317 [compiler] java.lang.ClassFormatError: Invalid pc in LineNumberTable
195509 Need to improve classpath resolution for Apache Harmony in org/eclipse/jdt/core/tests/util/Util.java
195526 org.eclipse.jdt.core.tests.compiler.regression.GenericTypeTest.test0744 depends on non-specified package-private class HashMap.Entry implementation
191082 AnnotationMirror.getPosition() returns wrong value
189799 [jsr269] Make getDocComment() behave more like javac
192774 Annotation AST nodes should have unique IAnnotationBindings
171703 Eclipse cannot find source for *.class files
191908 [1.5][compiler] Missing strike through for deprecated declaration fragment
192497 Cannot always find method definition, depending on cursor position
194185 [search] for package declarations finds also subpackages
194435 JDT Core manifest contains invalid prereqed version

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3 - June 21, 2007 - 3.3 RELEASE
Project org.eclipse.jdt.core v_771 (cvs).

## What's new in this drop

### Problem Reports Fixed

193570 add eclipse.inf to top level directory of jdt.core

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC4 - June 5, 2007 - 3.3 RELEASE CANDIDATE 4
Project org.eclipse.jdt.core v_770 (cvs).

## What's new in this drop

### Problem Reports Fixed

190748 [1.5][compiler] AbstractMethodError on derived implementation of derived Interface declaration
189933 [compiler][1.5] extraneous ambiguous constructor error on generics

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC4 - June 4, 2007
Project org.eclipse.jdt.core v_769 (cvs).

## What's new in this drop

### Problem Reports Fixed

190493 [1.6][compiler] Compiling for 1.6 should not require compiler to run on 1.6 itself

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC3 - May 30, 2007 - 3.3 RELEASE CANDIDATE 3
Project org.eclipse.jdt.core v_768 (cvs).

## What's new in this drop

### Problem Reports Fixed

189547 Possible resource leak in org.eclipse.jdt.internal.compiler.parser.Parser
189852 [perfs] Too many JDT/Core performance tests in fingerprints

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC3 - May 29, 2007
Project org.eclipse.jdt.core v_767 (cvs).

## What's new in this drop

### Problem Reports Fixed

189456 Formatter is slow on big files
188105 org.eclipse.jdt.apt.pluggable.core imported as source does not compile

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC2 - May 25, 2007 - 3.3 RELEASE CANDIDATE 2
Project org.eclipse.jdt.core v_766 (cvs).

## What's new in this drop

- The new API `ToolFactory#createCodeFormatter(Map options, int mode)` allows to specify whether the code formatter is going to format new code or existing code.

### Problem Reports Fixed

188960 [1.5][compiler]Do not detect duplicate constructors in a ParameterizedType
185928 New Formatter Option "Never indent comments on first column" breaks formatting of auto generated bodies

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC2 - May 24, 2007
Project org.eclipse.jdt.core v_765 (cvs).

## What's new in this drop

### Problem Reports Fixed

172820 Hard-coded class libraries names in org/eclipse/jdt/core/tests/util/Util.java
188741 [1.5][compiler] Incorrect ambiguous method error with inherited raw type
188247 [content assist] Code Completion for static importing fields not working

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC2 - May 23, 2007
Project org.eclipse.jdt.core v_764 (cvs).

## What's new in this drop

### Problem Reports Fixed

188648 ECJ compiler fails to find boot classes on Harmony
188656 [perfs] 2% regression on some Batch Compiler tests since v_756
188136 [javadoc][assist] Errors in org.eclipse.jdt.ui.JavaTypeCompletionProposalComputer
188127 [test] Some tests fail on Harmony
162054 [build] Got a failure on MultiProjectTests.testCycle5 on my speedy test box...
188103 [1.5][compiler] Inappropriate usage of HashSet

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC1 - May 16, 2007 - 3.3 RELEASE CANDIDATE 1
Project org.eclipse.jdt.core v_763 (cvs).

## What's new in this drop

### Problem Reports Fixed

187329 compilation error constants created with static methods
187223 CompletionTestsRequestor2.getReversedResults has incorrect comparator

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC1 - May 16, 2007
Project org.eclipse.jdt.core v_762 (cvs).

## What's new in this drop

### Problem Reports Fixed

133141 Must JavaCore.create(IFile) always do full checks?

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC1 - May 15, 2007
Project org.eclipse.jdt.core v_761 (cvs).

## What's new in this drop

### Problem Reports Fixed

183338 [perfs] Too many JDT/Core performance tests are yellow
186833 [1.5][compiler] Should detect member supertype cycle when resolved thru static import
186382 [1.5][compiler] Ambiguous method call error reported on a demonstrably unambiguous call
186749 CCE in Scope.findMemberType

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC1 - May 15, 2007
Project org.eclipse.jdt.core v_760 (cvs).

## What's new in this drop

### Problem Reports Fixed

177922 FlexibleProjectContainer refresh logic sporadically leaves project with "missing library" error on rename/delete

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC1 - May 14, 2007
Project org.eclipse.jdt.core v_759 (cvs).

## What's new in this drop

### Problem Reports Fixed

185576 [javadoc][assist] Type parameters should not be proposed while completing in @link or @see reference
143026 [ast rewrite] Clean up parantheses are not recognizing comment //

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC1 - May 11, 2007
Project org.eclipse.jdt.core v_758 (cvs).

## What's new in this drop

### Problem Reports Fixed

168208 Renaming classes from lowercase to uppercase results in an error
186181 1.5 compiler does not understand class files built by -target jsr14
186415 [search] Search for package declarations should not return duplicate elements
185129 NPE in LocalVariableBinding.computeUniqueKey
185119 [search] TypeNameMatch must specify that it could not be overridden by clients
184546 [compiler][null] Spurious redundant null check warning in finally when the class has a static field

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC1 - May 10, 2007
Project org.eclipse.jdt.core v_757 (cvs).

## What's new in this drop

### Problem Reports Fixed

185306 Help with fields and methods on binary super types with unresolved references
185950 [performance] opening class file without source attachement is too slow
186189 NPE trying to open the following class using the ASTView
173944 cannot cancel build
185182 Fup of 126712, the two regressions tests in RuntimeTests should be rewritten
185733 Refreshing external jar doesn't update problem marker
143025 [build path] Derived attribute on default output folder of Java project doesn't work

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3RC1 - May 7, 2007
Project org.eclipse.jdt.core v_756 (cvs).

## What's new in this drop

### Problem Reports Fixed

185787 [1.5][compiler] Missing unnecessary cast diagnosis
154693 project clean & build sometimes copies subversion .svn folders to bin tree
84886 [compiler] compiled code wrong with ambiguous inner classes
185768 [1.6][compiler] Enabling apt by default in batch mode
185567 [compiler] dead bytecodes are generated inside optimized boolean condition
162965 [compiler] dead bytecodes are generated inside conditional expressions
185310 Removing internal jar referenced from another project doesn't update Package Explorer

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - May 2, 2007 - 3.3 MILESTONE 7
Project org.eclipse.jdt.core v_755 (cvs).

## What's new in this drop

### Problem Reports Fixed

156731 [compiler] Improve compiler fault-tolerance
184957 [1.5][compiler] Compiler crash

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - April 30, 2007
Project org.eclipse.jdt.core v_754 (cvs).

## What's new in this drop

### Problem Reports Fixed

184293 Unnecessary inherited method errors reported against subtypes

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - April 28, 2007
Project org.eclipse.jdt.core v_753 (cvs).

## What's new in this drop

### Problem Reports Fixed

165783 [ast rewrite] Import declaration static property can not be set correctly

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - April 27, 2007
Project org.eclipse.jdt.core v_752 (cvs).

## What's new in this drop

### Problem Reports Fixed

175409 method reference contains generic method binding

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - April 26, 2007
Project org.eclipse.jdt.core v_751 (cvs).

## What's new in this drop

### Problem Reports Fixed

180713 Anonymous type rendered as number in hover
182154 Java search gives no results on workspace with multiple projects
144776 JavaProject.resetCaches() needs to reset dependent projects
179011 IType#getMethod(..) should not throw AFE when name contains dot
162104 NPE in PackageExplorerContentProvider.getPackageFragmentRoots()
158985 Code completion engine hints annotations on wrong places
183833 NPE in latest build
183413 PDE can't find the source for plug-ins in the target
184102 [1.6][compiler] Inconsistent stackmap frame generated for static initializer of enums containing overridden methods
146556 Should refactor boolean fields into bits
49314 comments formatted even if "Enable comment formatting" is disabled
20793 [formatter] The code formatter indent left aligned comments
180905 Tweaks to recovered bindings
183216 [1.5][compiler] Cannot refer to a generic member type using a non static subclass of the enclosing type

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - April 24, 2007
Project org.eclipse.jdt.core v_750 (cvs).

## What's new in this drop

### Problem Reports Fixed

182930 JavaModelCache's size grows when displaying type hierarchy
183062 [search] OutOfMemoryError during rename refactoring
79068 [formatter] Need option to control line wrapping before/after operators
180789 [1.5][compiler] invalid incompatible return type error
183538 Not getting @Inherited annotation on annotation types from binary
183468 NPE trying to call isDefault() on the MemberValuePairBinding corresponding to array=1
183395 Fup of bug 144858, internal error is thrown for wrong exception type in catch clause
181349 ArrayIndexOutOfBoundsException while editing Java code
182485 Missing translation files in JDT plug-ins
161175 JarPackageFragmentRoot slow to initialize
182204 Deleting a JRE referenced by container does not result in unbound container problem
162370 MethodVerifier#areReturnTypesEqual is a misnomer

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - April 17, 2007
Project org.eclipse.jdt.core v_749 (cvs).

## What's new in this drop

### Problem Reports Fixed

118217 Compiler error/warning option 'Parameter is never read' produces a lot of false-positives
181393 DefaultASTVisitor doesn't override all methods
145329 [scaling] Unable to locate source in monster workspace
177174 [assist] Wrong names are proposed as unresolved local variable
181727 [perfs] JDT/Core performances tests last too long on slowest releng test boxes
180109 [compiler] JDT Throws ClassCastException on incremental build
177819 Jar files added to a plugin are ignored

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - April 10, 2007
Project org.eclipse.jdt.core v_748 (cvs).

## What's new in this drop

### Problem Reports Fixed

181269 Deleting secondary type is not detected
179684 "Reconcile editor change" perf test is getting slower
180683 codeSelect does not work in unicode names like \u0042
181270 [1.5][compiler] Class literal of array of type parameter should be rejected
178551 [index] Deadlock when doing Type Hierarchy while updating a large workspace
180524 NPE in ITypeBinding#createArrayType(..) on anonymous type

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - April 3, 2007
Project org.eclipse.jdt.core v_747 (cvs).

## What's new in this drop

### Problem Reports Fixed

178213 Compilation Unit not shown in Package Explorer after a rename
180471 [compiler] Unoptimal code generation for for-loops when no continuation point
176320 Non linear progress in open type dialog
176472 [compiler][null] extraneous error in case of a labeled while(true) statement
166963 [compiler] resolve binding for local variable in ConstructorInvocation
179630 Compiler parsing tests fail with IBM J2SE 1.4.2, 5.0, and 6.0 (early access)
151787 [compiler] compiler allows assignment to final field in constructor other than through 'this'
178499 [perfs] JDT/Core model performances tests must be improved
180169 Add protection against missbehaving container (returning null entries)
180046 patch to antadapter eclipse.inf
166449 Don't abort build when CompilationParticipants fix classpath
179529 Stop Eclipse takes a lot of time in case of big workspace
179000 [code assist] run() should not be a valid proposal inside the scrapbook page
169728 [1.5][compiler] WildcardBinding.boundCheck coding error
179056 [compiler] Compiler gives misleading Range for invisible field
179699 type.newTypeHierarchy doesn't cancel
179672 [assist] Only one assertion method should be called by completion parser test
174445 [1.5][compiler] missing unchecked conversion warning upon parametrized method
179258 simple reconcile starts problem finder - main thread waiting
179477 [compiler] problem in first element of array initializer suppresses further problems

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M7 - March 27, 2007
Project org.eclipse.jdt.core v_746 (cvs).

## What's new in this drop

### Problem Reports Fixed

179199 [search] Open type throws NPE during Items filtering
178895 [compiler][null] A for-each loop changes its value on each iterator but the null pointer analysis is not taking that into consideration
177863 [compiler][null] Spurious null pointer warning in finally block (involving def. unknown)
179065 [DOM] Test coverage for IMemberValuePairBinding methods must be improved
179042 [DOM] Implementation of IBinding.getModifiers() should return Modifier.NONE when no modifiers are available
178861 Executing run() in a scrapbook page leads to a NPE
178039 Separate advanced verbose for container and variable initialization from regular verbose
178847 [search] Potential matches found when searching references to IJavaElement#getResource()
174920 [model] closing a single project causes all variables and containers to be saved

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - March 21, 2007 - 3.3 MILESTONE 6
Project org.eclipse.jdt.core v_745 (cvs).

## What's new in this drop

- `org.eclipse.jdt.core.JavaCore#setCompilanceOptions(String, Map)` has been renamed to `org.eclipse.jdt.core.JavaCore.setComplianceOptions(String, Map)`.
- `org.eclipse.jdt.core.dom.RecoveredTypeBinding`, `org.eclipse.jdt.core.dom.RecoveredVariableBinding` are not part of the API. They have been changed to package default visibility.
- `org.eclipse.jdt.core.search.MethodReferenceMatch#isPolymorphic()` has been removed.

### Problem Reports Fixed

178616 [API] Fix typo for JavaCore#setComplianceOptions(String, Map)
178607 [API][dom] RecoveredTypeBinding and RecoveredVariableBinding should not be public
178594 [search] Deprecated MethodReferenceMatch.isPolymorphic() should be removed
176118 Missing library classes kill Intellisense without Error

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - March 20, 2007
Project org.eclipse.jdt.core v_744 (cvs).

## What's new in this drop

- This drop only fixes tests failures reported in I20070319-1800.

### Problem Reports Fixed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - March 19, 2007
Project org.eclipse.jdt.core v_743 (cvs).

## What's new in this drop

- New constant API have been added in `org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants` in order to fix bug 20793. The implementation will be provided after 3.3M6.

      	/**
      	 * FORMATTER / Option to indent block comments that start on the first column
      	 *     - option id:         "org.eclipse.jdt.core.formatter.formatter.never_indent_block_comments_on_first_column"
      	 *     - possible values:   { TRUE, FALSE }
      	 *     - default:           TRUE
      	 * @see #TRUE
      	 * @see #FALSE
      	 * @since 3.3
      	 */
      	public static final String FORMATTER_NEVER_INDENT_BLOCK_COMMENTS_ON_FIRST_COLUMN = JavaCore.PLUGIN_ID + ".formatter.never_indent_block_comments_on_first_column"; //$NON-NLS-1$
      	/**
      	 * FORMATTER / Option to indent line comments that start on the first column
      	 *     - option id:         "org.eclipse.jdt.core.formatter.formatter.never_indent_line_comments_on_first_column"
      	 *     - possible values:   { TRUE, FALSE }
      	 *     - default:           TRUE
      	 * @see #TRUE
      	 * @see #FALSE
      	 * @since 3.3
      	 */
      	public static final String FORMATTER_NEVER_INDENT_LINE_COMMENTS_ON_FIRST_COLUMN = JavaCore.PLUGIN_ID + ".formatter.never_indent_line_comments_on_first_column"; //$NON-NLS-1$

- New constant API have been added in `org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants` in order to fix bug 79068. The implementation will be provided after 3.3M6.

      	/**
      	 * FORMATTER / Option to wrap before the binary operator
      	 *     - option id:         "org.eclipse.jdt.core.formatter.wrap_before_binary_operator"
      	 *     - possible values:   { TRUE, FALSE }
      	 *     - default:           FALSE
      	 * This option is used only if the option {@link #FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION} is set.
      	 * @see #TRUE
      	 * @see #FALSE
      	 * @since 3.3
      	 */
      	public static final String FORMATTER_WRAP_BEFORE_BINARY_OPERATOR = JavaCore.PLUGIN_ID + ".formatter.wrap_before_binary_operator"; //$NON-NLS-1$

### Problem Reports Fixed

154984 Jars in library not recognized sometimes.
102473 code assist: parameter names not harvested from debug info in class files

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - March 18, 2007
Project org.eclipse.jdt.core v_742 (cvs).

## What's new in this drop

- As some clients need to know if some classpath container children attributes are supported or can be modifiable, the following API methods have been added in `org.eclipse.jdt.core.ClasspathContainerInitializer` class:
  - `#getAccessRulesStatus(IPath, IJavaProject)`
  - `#getAttributeStatus(IPath, IJavaProject, String)`
  - `#getSourceAttachmentStatus(IPath, IJavaProject)`
  For each of these methods, the returned status can have one of the following severities:
  - `IStatus#OK`: means that the attribute is supported and is modifiable
  - `IStatus#ERROR`: means that either the attribute is not supported or is not modifiable.
    In this case, the `IStatus#getCode()` will have respectively the `#ATTRIBUTE_NOT_SUPPORTED` value or the `#ATTRIBUTE_READ_ONLY` value.
  Note that if the subclass does not override this method, then the default behavior is to return `IStatus#OK` if and only if the classpath container can be updated (see `#canUpdateClasspathContainer(IPath, IJavaProject)`).
- API addition to fix bug 130001. It is being able for a user to query what options were enabled when the DOM/AST tree has been created. The following API methods have been added:
  - `org.eclipse.jdt.core.dom.AST#hasResolvedBindings()`
  - `org.eclipse.jdt.core.dom.AST#hasStatementsRecovery()`
  - `org.eclipse.jdt.core.dom.AST#hasBindingsRecovery()`
- API addition to fix bug 149567. It is about the incomplete binding handling. The following API methods or fields have been added:
  - `org.eclipse.jdt.core.dom.ASTParser#setBindingsRecovery(boolean)`
  - `org.eclipse.jdt.core.dom.IBinding#isRecovered()`
  - `org.eclipse.jdt.core.ICompilationUnit#reconcile(int, int, WorkingCopyOwner, IProgressMonitor)`
  - `org.eclipse.jdt.core.ICompilationUnit#FORCE_PROBLEM_DETECTION`
  - `org.eclipse.jdt.core.ICompilationUnit#ENABLE_STATEMENTS_RECOVERY`
  - `org.eclipse.jdt.core.ICompilationUnit#ENABLE_BINDINGS_RECOVERY`
- The working copy owner (`WorkingCopyOwner`) now specifies the problem requestor (`IProblemrequestor`) used to report problems on working copies it owns (see bug 175243).
  To implement this new responsibility, a new API method has been added on `WorkingCopyOwner` class:

      /**
       * Returns the problem requestor used by a working copy of this working copy owner.
       *
       * By default, no problem requestor is configured. Clients can override this
       * method to provide a requestor.
       *
       * @param workingCopy The problem requestor used for the given working copy.
       * If null, then return the problem requestor used for all working
       * copies of the working copy owner.
       * @return the problem requestor to be used by working copies of this working
       * copy owner or null if no problem requestor is configured.
       *
       * @since 3.3
       */
      public IProblemRequestor getProblemRequestor(ICompilationUnit workingCopy) {
      	return null;
      }

  As a consequence of this addition, `IProblemRequestor` parameter of `*WorkingCopy` methods becomes unnecessary and corresponding methods have been deprecated:
  1. `ICompilationUnit#becomeWorkingCopy(IProblemRequestor, IProgressMonitor)`
  2. `ICompilationUnit#getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)`
  3. `IClassFile#becomeWorkingCopy(IProblemRequestor, WorkingCopyOwner, IProgressMonitor)`
  4. `WorkingCopyOwner#newWorkingCopy(String, IClasspathEntry[], IProblemRequestor, IProgressMonitor)`
  And are obviously replaced by following methods:
  1. `ICompilationUnit#becomeWorkingCopy(IProgressMonitor)`
  2. `ICompilationUnit#getWorkingCopy(WorkingCopyOwner, IProgressMonitor)`
  3. `IClassFile#becomeWorkingCopy(WorkingCopyOwner, IProgressMonitor)`
  4. `WorkingCopyOwner#newWorkingCopy(String, IClasspathEntry[], IProgressMonitor)`
- Added API org.eclipse.jdt.core.JavaCore#getGeneratedResources(IRegion, boolean) to be able to get the generated resources for all elements of a IRegion. See bug 6584 for details.

### Problem Reports Fixed

177623 [1.6][compiler] Stackmap frames generation should be protected against invalid code
177621 XML log might be corrupted if an exception occurs while extracting problem context
176725 [recovery] member value array initializer aren;t correctly recovered
168077 [classpath] Let classpath containers define what is configurable
177478 [formatter] Indent new lines option adds extra empty lines
130001 [api][AST] org.eclipse.jdt.core.dom.AST: should have API hasResolvedBindings, hasStatementRecovery
149567 AST DCR: Allow incomplete variable bindings
177009 [javadoc] Missing Javadoc tag not reported
177319 Annotation Processing (APT) affects eclipse speed
177194 [1.5][compiler] preserveAllLocals option has undesirable side-effect when invoking generic method
177372 [1.5][compiler] Missing unboxing conversion when no value required from message send
176825 FullSourceWorkspaceCompletionTests doesn't run correctly
177386 Wording in Javadoc of TypeNameMatch and -Requestor
177115 NullPointerException in BindingKeyResolver.consumeTypeVariable(...)
175243 [model] Let working copy owner control the problem requestor used
163733 IncrementalImageBuilder.deleteGeneratedFiles() is broken
177079 Add jdt.apt.pluggable.core as x-friend to jdt.core
6584 Need a way to get class files for a java file (or CU)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - March 13, 2007
Project org.eclipse.jdt.core v_741 (cvs).

## What's new in this drop

- The non-Java resources in jar files returned by `IPackageFragmentRoot#getNonJavaResources()` and `IPackageFragment#getNonJavaResources()` are now of type `IJarEntryResource` (a subinterface of `IStorage`). This interface allows to navigate the tree of non-Java resources using the `getChildren()` and `getParent()` methods.

### Problem Reports Fixed

176269 [index] NullPointerException filtering for exception breakpoint
176027 [javadoc] {@link} to member type handled incorrectly
153044 JarEntryFile does not return fully qualified path
170595 [batch][compiler] BatchCompilerTest#test024 is no more significant
176971 [assist] types are computed if TYPE_REF are filterred and JAVADOC_TYPE_REF aren't filtered
175987 [1.5][compiler] Missing error when implementing a method with a mix of parameterized and raw generics
148944 need to render resource folders in JARs
176190 [assist] Inferred variable names are not good when the declared type is a base type
176057 IAE in ASTConverter for invalid source range
174436 API request: MethodInvocation/SuperMethodInvocation#isResolvedTypeInferredFromExpectedType()
176364 [assist] missing return and continue proposals within switch statements
161704 [model] Improve progress for Java initialization task job

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - March 6, 2007
Project org.eclipse.jdt.core v_740 (cvs).

## What's new in this drop

- Refined the problem IDs and messages associated to null-related issues detection, for which typical examples would now be:
  - `NullLocalVariableReference` - Null pointer access: The variable o can only be null at this location
  - `PotentialNullLocalVariableReference` - Potential null pointer access: The variable o may be null at this location
  - `RedundantNullCheckOnNullLocalVariable` - Redundant null check: The variable o can only be null at this location
  - `NullLocalVariableComparisonYieldsFalse` - Null comparison always yields false: The variable x can only be null at this location
  - `RedundantLocalVariableNullAssignment` - Redundant assignment: The variable x can only be null at this location
  - `NullLocalVariableInstanceofYieldsFalse` - instanceof always yields false: The variable o can only be null at this location
  - `RedundantNullCheckOnNonNullLocalVariable` - Redundant null check: The variable o2 cannot be null at this location
  - `NonNullLocalVariableComparisonYieldsFalse` - Null comparison always yields false: The variable i cannot be null at this location
  Note that problem IDs `LocalVariableCannotBeNull`, `LocalVariableCanOnlyBeNull`, and `LocalVariableMayBeNull` have been deprecated.
  See bugs 175570 and 175571 for details.
- The API method `IClassFile#getType()` does not longer throw `JavaModelException` (see bug 154667).
- Code Assist: unresolved simple names are proposed when completing a simple name reference

      package test;
      public class E1 {
              void m() {
                      variable = 10;
                      System.out.println(v); // do completion after 'v'
              }
      }

  When v is completed, variable is proposed as a possible local variable which are not yet declared.
  Unresolved simple names are searched before and after the completion location.

### Problem Reports Fixed

174588 [compiler] Code in abstract class calls wrong overloaded method. Correct method is defined in the implemented interface.
176321 Test failures in MethodParameterGuessingCompletionTest
176361 [search] TypeNameMatchRequestorWrapper creates invalid handle for member type
176358 [search] Failure in JavaSearchBugsTest while running random tests order
147461 [compiler][batch][options] tighten the use of : and ; within access restriction specifications
162865 Content assist for undeclared locals when using local
154667 IClassFile#getType() should not throw JavaModelException
175571 [compiler][null] Better compiler message for 'Redundant null check'
175570 [compiler][null] Improve compiler message for 'Null reference'
175849 Project is touched on restart
175832 [recovery] $missing$ should not be shown inside a message
175834 [assist] already defined name is proposed as variable name
175531 Livelock in OverflowingLRUCache.privateRemoveEntry

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - 27th February 2007
Project org.eclipse.jdt.core v_739 (cvs).

## What's new in this drop

- Refined the options that control null-related issues detection. The existing `nullReference` option has been repurposed and split into three options:

      COMPILER / Reporting Null Dereference
         When enabled, the compiler will issue an error or a warning whenever a
         variable that is statically known to hold a null value is used to
         access a field or method.
          - option id:         "org.eclipse.jdt.core.compiler.problem.nullReference"
          - possible values:   { "error", "warning", "ignore" }
          - default:           "ignore"
      COMPILER / Reporting Potential Null Dereference
         When enabled, the compiler will issue an error or a warning whenever a
         variable that has formerly been tested against null but is not (no more)
         statically known to hold a non-null value is used to access a field or
         method.
          - option id:         "org.eclipse.jdt.core.compiler.problem.potentialNullReference"
          - possible values:   { "error", "warning", "ignore" }
          - default:           "ignore"
      COMPILER / Reporting Redundant Null Check
         When enabled, the compiler will issue an error or a warning whenever a
         variable that is statically known to hold a null or a non-null value
         is tested against null.
          - option id:         "org.eclipse.jdt.core.compiler.problem.redundantNullCheck"
          - possible values:   { "error", "warning", "ignore" }
          - default:           "ignore"

  See bug 170704 for details.

### Problem Reports Fixed

170704 [compiler][null][enh] separate "null dereference" and "null reference" compiler options
172666 Importing pde.ui and dependencies as binary gives compile error
174971 [index] Many exceptions from background indexer
172913 [compiler][1.5] an extra checkcast bytecode instruction generated
174879 [1.5][compiler] Optimisation for empty if blocks results in not evaluating the test expression

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - 21st February 2007
Project org.eclipse.jdt.core v_738 (cvs).

## What's new in this drop

### Problem Reports Fixed

171802 [javadoc][select] F3 does not work on method which have deprecated type as argument

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - 20th February 2007
Project org.eclipse.jdt.core v_737 (cvs).

## What's new in this drop

- API added on `org.eclipse.jdt.core.IClassFile`:

      /**
       * Returns the bytes contained in this class file.
       *
       * @return the bytes contained in this class file
       *
       * @exception JavaModelException if this element does not exist or if an
       *      exception occurs while accessing its corresponding resource
       * @since 3.3
       */
      byte[] getBytes() throws JavaModelException;

  See bug 150244 for details.

### Problem Reports Fixed

171653 [index] Java Tooling initialization performance issue after startup
174348 [classpath] Classpath validation messages are non-standard
172345 [model][delta] path error markers are not regenerated on project rebuild
97199 [formatting] Code formatting activation in comments (using <PRE>) is case sensitive
150244 [API] Add getBytes() on IClassFile
174434 [1.5][compiler] Parameterized constructor leads to Internal Errror
152850 [formatter] Formatter marks unchanged file dirty
104371 [JDOM] JDOM should not crash on 1.5 code
168910 Should default compliance be 6.0 in JSR199 batch compilation?
167317 ecjsrc.zip should contain a build system
173992 Duplicate local variable for exception in different catch blocks
174298 Wrong NAME_PROPERTY child type for AnnotationTypeDeclaration and EnumDeclaration
174002 [assist] Exceptions which are already covered by the another exception are proposed
174001 [assist] Unexpected types are proposed inside catch block
149154 BinaryMethod#getParameterNames() should not try to extract from attached javadoc for synthetics
174131 [assist] Result of test CompletionTests#testCompletionInsideExtends10 is wrong
34373 Class file view doesn't show actual modifiers for member types

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M6 - 13th February 2007
Project org.eclipse.jdt.core v_736 (cvs).

## What's new in this drop

### Problem Reports Fixed

158039 [ast rewrite] ArrayIndexOutOfBoundsException when rewriting
173907 [code assist] severe NPE on exception completions
173800 [compiler] suboptimal line number attributes for cascading field accesses
173849 ITypeBinding#getJavaElement() fails for array of inner type
173853 [recovery] Recovery add an unnecessary default contructor
173013 [assist] NPE while completing in catch formal parameter
142234 problem range includes parenthesis for warning on expression
107001 ITypeBinding#getBinaryName() returns java.lang.Object for type variable
156307 JavaElement.getURLContents() hack breaks "Open External Javadoc"
111529 npe trying to get ITypeBinding for parameterized type
144742 Setting the bootclasspath for some VMs fails the evaluation tests
172743 [jsr269] APT needs to convert IFile into internal ICompilationUnit
138897 Error ranges for unreachable code
172848 [formatter] code formatter produces syntax error (unary operator+ followed by prefix increment operator++)
173376 [jsr269] Multiple annotations on class, only first is resolved
173416 [compiler][batch][options] ecj doesn't support classpath entry starting with [

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M5 - 8th February 2007 - 3.3 MILESTONE 5
Project org.eclipse.jdt.core v_735 (cvs).

## What's new in this drop

### Problem Reports Fixed

172633 NPEs while starting my workspace

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M5 - 3rd February 2007
Project org.eclipse.jdt.core v_734 (cvs).

## What's new in this drop

- New extension point has been added to register an annotation processor manager inside the Java Builder. See bug 172369 for details.
- In order to fix bug 49412, the following constants have been deprecated:
  - org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES
  - org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT
  They have been replaced by these constants respectively:
  - org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT
    org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT
  - org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_LINE_COMMENT
    org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_BLOCK_COMMENT
    org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_JAVADOC_COMMENT

### Problem Reports Fixed

172648 [model] Some inconsistencies while adding listeners to DeltaProcessingState
49412 [formatting] Offer comment formatting options per comment type
161996 [compiler][batch][options] ecj can't cope with [] brackets in classpath names
172444 build workspace operation launched after each startup
172028 [clean up] Sort members clean up leaks working copies
172369 Adding an extension point to register an annotation processor inside the java builder
172189 [1.5][compiler] NPE in CompilationUnitProblemFinder.process with explicit wildcard invocation
172207 [model] Marker for deprecated classpath variable should always have WARNING severity
172328 Javadoc for SearchEngine.searchAllTypeNames(..) has wrong @param ordering
171684 Replace references to IMarker.GENERATED_BY with IMarker.SOURCE_ID

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M5 - 30th January 2007
Project org.eclipse.jdt.core v_733 (cvs).

## What's new in this drop

- New API added in `org.eclipse.jdt.core.compiler.CharOperation`:

      /**
       * Compares the two char arrays lexicographically.
       *
       * Returns a negative integer if array1 lexicographically precedes the array2,
       * a positive integer if this array1 lexicographically follows the array2, or
       * zero if both arrays are equal.
       *
       * @param array1 the first array
       * @param array2 the second array
       * @return the returned value of the comparison between array1 and array2
       * @throws NullPointerException if one of the arrays is null
       * @since 3.3
       */
      public static final int compareTo(char[] array1, char[] array2)

- New API added in `org.eclipse.jdt.core.util.CompilationUnitSorter`:

      	/**
      	 * Reorders the declarations in the given compilation unit according to the
      	 * specified comparator. The caller is responsible for arranging in advance
      	 * that the given compilation unit is a working copy, and for applying the
      	 * returned TextEdit afterwards.
      	 *
      	 * Note: Reordering the members within a type declaration might be
      	 * more than a cosmetic change and could have potentially serious
      	 * repercussions. Firstly, the order in which the fields of a type are
      	 * initialized is significant in the Java language; reordering fields and
      	 * initializers may result in compilation errors or change the execution
      	 * behavior of the code. Secondly, reordering a class's members may affect
      	 * how its instances are serialized. This operation should therefore be used
      	 * with caution and due concern for potential negative side effects.
      	 *
      	 *
      	 * The compare method of the given comparator is passed pairs
      	 * of body declarations (subclasses of BodyDeclaration)
      	 * representing body declarations at the same level. The nodes are from an
      	 * AST of the specified level ({@link org.eclipse.jdt.core.dom.ASTParser#newParser(int)}.
      	 * Clients will generally use AST.JLS3 since that will cover all
      	 * constructs found in Java 1.0, 1.1, 1.2, 1.3, 1.4, and 1.5 source code.
      	 * The comparator is called on body declarations of nested classes,
      	 * including anonymous and local classes, but always at the same level.
      	 * Clients need to provide a comparator implementation (there is no standard
      	 * comparator). The RELATIVE_ORDER property attached to these
      	 * AST nodes affords the comparator a way to preserve the original relative
      	 * order.
      	 *
      	 *
      	 * The body declarations passed as parameters to the comparator always carry
      	 * at least the following minimal signature information:
      	 *
      	 *
      	 * TypeDeclaration
      	 * modifiers, isInterface, name, superclass,
      	 *        superInterfaces, typeParameters
      	 *        RELATIVE_ORDER property
      	 *
      	 * FieldDeclaration
      	 * modifiers, type, fragments
      	 *        (VariableDeclarationFragments
      	 *        with name only)
      	 *        RELATIVE_ORDER property
      	 *
      	 * MethodDeclaration
      	 * modifiers, isConstructor, returnType, name,
      	 *        typeParameters, parameters
      	 *        (SingleVariableDeclarations with name, type, and modifiers only),
      	 *        thrownExceptions
      	 *        RELATIVE_ORDER property
      	 *
      	 * Initializer
      	 * modifiers
      	 *        RELATIVE_ORDER property
      	 *
      	 * AnnotationTypeDeclaration
      	 * modifiers, name
      	 *        RELATIVE_ORDER property
      	 *
      	 * AnnotationTypeMemberDeclaration
      	 * modifiers, name, type, default
      	 *        RELATIVE_ORDER property
      	 *
      	 * EnumDeclaration
      	 * modifiers, name, superInterfaces
      	 *        RELATIVE_ORDER property
      	 *
      	 * EnumConstantDeclaration
      	 * modifiers, name, arguments
      	 *        RELATIVE_ORDER property
      	 *
      	 * Clients should not rely on the AST nodes being properly parented
      	 * or on having source range information. (Future releases may provide
      	 * options for requesting additional information like source positions, full
      	 * ASTs, non-recursive sorting, etc.)
      	 *
      	 * @param unit
      	 *            the CompilationUnit to sort
      	 * @param comparator
      	 *            the comparator capable of ordering
      	 *            BodyDeclarations; this comparator is passed
      	 *            AST nodes from an AST of the specified AST level
      	 * @param options
      	 *            bitwise-or of option flags; 0 for default
      	 *            behavior (reserved for future growth)
      	 * @param group
      	 *            the text edit group to use when generating text edits, or null
      	 * @param monitor
      	 *            the progress monitor to notify, or null if none
      	 * @return a TextEdit describing the required edits to do the sort, or null
      	 *            if sorting is not required
      	 * @exception JavaModelException
      	 *                if the compilation unit could not be sorted. Reasons
      	 *                include:
      	 *                - The given compilation unit does not exist
      	 *                (ELEMENT_DOES_NOT_EXIST)
      	 *                - The given compilation unit is not a working copy
      	 *                (INVALID_ELEMENT_TYPES)
      	 *                - A CoreException occurred while
      	 *                accessing the underlying resource
      	 *                - The given compilation unit doesn't come from an ICompilationUnit and this ICompilationUnit is
      	 *                not a working copy (NO_ELEMENTS_TO_PROCESS)
      	 * @exception IllegalArgumentException
      	 *                if the given compilation unit is null or if the given
      	 *                comparator is null, or if options is not one
      	 *                of the supported levels.
      	 * @see org.eclipse.jdt.core.dom.BodyDeclaration
      	 * @see #RELATIVE_ORDER
      	 * @since 3.3
      	 */
      	 public static TextEdit sort(CompilationUnit unit,
      			Comparator comparator,
      			int options,
      			TextEditGroup group,
      			IProgressMonitor monitor) throws JavaModelException;

### Problem Reports Fixed

166354 [1.5][compiler] extraneous error caused by a non visible method of an inherited class taking precedence over a visible method of an enclosing class
167190 [search] TypeNameMatchRequestorWrapper causing ClassCastException
141830 [1.3][compiler] Severe runtime errors with anonymous classes
171634 [formatter] doesn't add line feed at end of file
171472 [1.6][compiler] Illegal stack map frames
163590 [1.5][compiler] Incompatible type bounds message points to the generic type instead of its type parameter
171771 [assist] JAVADOC_TYPE_REF aren't correctly filtered
171184 [compiler] Java compiler does not generate InnerClass attribute as per JVMS
173279 [indexing] Category table is not cached for rt.jar since 1.5 version
138309 [index] Optimize index files path storage in DiskIndex and IndexManager
166570 [assist] Proposal computer from the 'org.eclipse.mylar.java' plug-in did not complete normally
162073 [compiler] extraneous interface compatibility error
171066 Provide TextEdit when sorting compilation unit
170318 [1.5][compiler] improve message on nameclash when overriding method with "wildcard" parameter

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M5 - 23rd January 2007
Project org.eclipse.jdt.core v_732 (cvs).

## What's new in this drop

- Code Assist: Exception thrown in a try block are more relevant if the completion occurs in a catch clause. Already caught exceptions are filtered.

      public class X {
        void foo() throws XAException, XBException {}
        void bar() {
          try {
          	foo();
          } catch(XAException e) {
          } catch(X| //do ctrl + space at |
        }

  In this example XBException will more relevant than XCException and XAException won't be proposed.
- Classpath variable may now be flagged as deprecated or read-only (see bug 138599 and bug 156226).
  Two new attributes have been added on `ClasspathVariableInitializer` schema:

         <element name="classpathVariableInitializer">
            <complexType>
               ...
               <attribute name="deprecated" type="string">
                  <annotation>
                     <documentation>
                        String explaining the reason why the associated variable is deprecated
                     </documentation>
                     <appInfo>
                        <meta.attribute translatable="true"/>
                     </appInfo>
                  </annotation>
               </attribute>
               <attribute name="readOnly" type="boolean">
                  <annotation>
                     <documentation>
                        Indicates that the associated variable cannot be modified
                     </documentation>
                  </annotation>
               </attribute>
            </complexType>
         </element>

  When deprecated attribute is set on ClasspathVariableInitializer extension point, classpath entry validation returns a warning status if no other error was previously detected.
  For example, following `classpathVariableInitializer` extension point set the `TEST` classpath variable as deprecated and read-only:

         <extension
               point="org.eclipse.jdt.core.classpathVariableInitializer">
            <classpathVariableInitializer
                  class="org.eclipse.jdt.tests.model.TestInitializer"
                  deprecated="The reason why this variable is deprecated"
                  readOnly="true"
                  variable="TEST">
            </classpathVariableInitializer>
         </extension>

  Calling `JavaConventions.validateClasspathEntry(IJavaProject, IClasspathEntry, boolean)` method on this variable entry will return a `IStatus.WARNING` status with following message: .
  Classpath variable deprecation message and read-only information are accessible using two new added `JavaCore` API methods:

      /**
       * Returns deprecation message of a given classpath variable.
       *
       * @param variableName
       * @return A string if the classpath variable is deprecated, null otherwise.
       * @since 3.3
       */
      public static String getClasspathVariableDeprecationMessage(String variableName)

      /**
       * Returns whether a given classpath variable is read-only or not.
       *
       * @param variableName
       * @return true if the classpath variable is read-only,
       * 	false otherwise.
       * @since 3.3
       */
      public static boolean isClasspathVariableReadOnly(String variableName)

### Problem Reports Fixed

169017 [1.6][compiler] VerifyError: Inconsistent stackmap frames
156226 [model][classpath] Allow classpath variable to be marked as non modifiable
138599 [model][classpath] Need a way to mark a classpath variable as deprecated
157584 [content assist] There is no content assist for catching exceptions
171016 [javadoc][assist] No completion for tag when uppercase is used

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M5 - 16th January 2007
Project org.eclipse.jdt.core v_731 (cvs).

## What's new in this drop

- The compiler can now detect unused local types (as opposed to only private types up until now).
- The compiler is now better able to detect unused private constructors, it now tolerates more than the private constructor with no parameter as the known pattern for blocking instantiation. Basically, unless a non private constructor is defined as well, it will ignore unused private constructors from now on (also see bug 163443).
- Code Assist can propose import statements:

      public class CompletionProposal {
      	...
      	/**
      	 * Completion is an import of reference to a static field.
      	 * <p>
      	 * The following additional context information is available
      	 * for this kind of completion proposal at little extra cost:
      	 * <ul>
      	 * <li>{@link #getDeclarationSignature()} -
      	 * the type signature of the type that declares the field that is imported
      	 * </li>
      	 * <li>{@link #getFlags()} -
      	 * the modifiers flags (including ACC_ENUM) of the field that is imported
      	 * </li>
      	 * <li>{@link #getName()} -
      	 * the simple name of the field that is imported
      	 * </li>
      	 * <li>{@link #getSignature()} -
      	 * the type signature of the field's type (as opposed to the
      	 * signature of the type in which the referenced field
      	 * is declared)
      	 * </li>
      	 * <li>{@link #getAdditionalFlags()} -
      	 * the completion flags (including ComletionFlags.StaticImport)
      	 * of the proposed import
      	 * </li>
      	 * </ul>
      	 * </p>
      	 *
      	 * @see #getKind()
      	 *
      	 * @since 3.3
      	 */
      	public static final int FIELD_IMPORT;

      	/**
      	 * Completion is an import of reference to a static method.
      	 * <p>
      	 * The following additional context information is available
      	 * for this kind of completion proposal at little extra cost:
      	 * <ul>
      	 * <li>{@link #getDeclarationSignature()} -
      	 * the type signature of the type that declares the method that is imported
      	 * </li>
      	 * <li>{@link #getFlags()} -
      	 * the modifiers flags of the method that is imported
      	 * </li>
      	 * <li>{@link #getName()} -
      	 * the simple name of the method that is imported
      	 * </li>
      	 * <li>{@link #getSignature()} -
      	 * the method signature of the method that is imported
      	 * </li>
      	 * <li>{@link #getAdditionalFlags()} -
      	 * the completion flags (including ComletionFlags.StaticImport)
      	 * of the proposed import
      	 * </li>
      	 * </ul>
      	 * </p>
      	 *
      	 * @see #getKind()
      	 *
      	 * @since 3.3
      	 */
      	public static final int METHOD_IMPORT;

      	/**
      	 * Completion is an import of reference to a type.
      	 * Only reference to reference types are allowed.
      	 * <p>
      	 * The following additional context information is available
      	 * for this kind of completion proposal at little extra cost:
      	 * <ul>
      	 * <li>{@link #getDeclarationSignature()} -
      	 * the dot-based package name of the package that contains
      	 * the type that is imported
      	 * </li>
      	 * <li>{@link #getSignature()} -
      	 * the type signature of the type that is imported
      	 * </li>
      	 * <li>{@link #getFlags()} -
      	 * the modifiers flags (including Flags.AccInterface, AccEnum,
      	 * and AccAnnotation) of the type that is imported
      	 * </li>
      	 * <li>{@link #getAdditionalFlags()} -
      	 * the completion flags (including ComletionFlags.StaticImport)
      	 * of the proposed import
      	 * </li>
      	 * </ul>
      	 * </p>
      	 *
      	 * @see #getKind()
      	 *
      	 * @since 3.3
      	 */
      	public static final int TYPE_IMPORT;
      	...
      }

- Code Assist propose completions computed from a list a favorite references.

      public class CompletionRequestor {
      	...
      	/**
      	 * Returns the favorite references which are used to compute some completion proposals.
      	 * <p>
      	 * A favorite reference is a qualified reference as it can be seen in an import statement.<br>
      	 * e.g. <code>{"java.util.Arrays"}</code><br>
      	 * It can be an on demand reference.<br>
      	 * e.g. <code>{"java.util.Arrays.*"}</code>
      	 * It can be a reference to a static method or field (as in a static import)<br>
      	 * e.g. <code>{"java.util.Arrays.equals"}</code>
      	 * </p>
      	 * <p>
      	 * Currently only on demand type references (<code>"java.util.Arrays.*"</code>),
      	 * references to a static method or a static field are used to compute completion proposals.
      	 * Other kind of reference could be used in the future.
      	 * </p>
      	 * @return favorite imports
      	 *
      	 * @since 3.3
      	 */
      	public String[] getFavoriteReferences() {...}

      	/**
      	 * Set the favorite references which will be used to compute some completion proposals.
      	 * A favorite reference is a qualified reference as it can be seen in an import statement.<br>
      	 *
      	 * @param favoriteImports
      	 *
      	 * @see #getFavoriteReferences()
      	 *
      	 * @since 3.3
      	 */
      	public void setFavoriteReferences(String[] favoriteImports) {...}
      	...
      }

  With the following example if the favorite reference is "java.util.Arrays.*" then a proposal will be the method "sort()" with a required proposal of a static import "import static java.util.Arrays.sort;". If the completion level is lesser than 1.5 the proposal will be "Arrays.sort()" with a required proposal of an import "import java.util.Arrays;".

  The option `JavaCore.CODEASSIST_SUGGEST_STATIC_IMPORTS` can be disabled to avoid to propose static import even if compliance is 1.5 or greater.

### Problem Reports Fixed

168331 [1.5][compiler] AbstractMethodError on interface method
170181 [compiler] Could diagnose unused local types
144044 [search] NPE when trying to find references to field variable
152123 [1.5][assist] Code assist for references that require static imports
170247 [model] Document reasons to use or not use CompilationParticipant
140340 [5.0][templates] foreach template does not work when an Iterable over a static inner class exists
163443 [clean up] private constructor with parameter flagged as unnecessary
152961 [compiler] Private inner interface is "never used locally"
157035 "Open Type Hierarchy" fails if subtype is anonymous or local class and location for this subtype contains ".class"
167488 [compiler] Fup of bug 165291, the two warnings (assignment has no effect) should not be reported

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M5 - 9th January 2007
Project org.eclipse.jdt.core v_730 (cvs).

## What's new in this drop

- The grammar file java_1_5.g is renamed java.g.

### Problem Reports Fixed

162478 NPE in MethodBinding#signature
169744 [AST] character position range wrong for super method call with type arguments
162991 [1.5][compiler] Name clash reported for (correct) eclipse-generated code
157336 build output contains unnecessary empty directories
157019 [build] incremental build involving a resource filter fails to produce expected subdirectory of the output folder
99738 [formatting] each format shifts code inside <pre> one space to the right
169596 anewarray not propertly supported in 1.6
169545 java_1_4.g should be removed
168665 [1.6][compiler] AIOOBE during stack map frame generation
160550 Infinite build when projects have cycle and build path errors
114349 [compiler] Problems building cyclical projects
161541 [compiler][1.5] eclipse fails to compile when two methods are joined to one
166977 [vista] Unexpected errors while running JDT/Core tests
168671 [model] Model tests should not run read-only tests when file system does not support it

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M5 - 19th December 2006
Project org.eclipse.jdt.core v_729 (cvs).

## What's new in this drop

### Problem Reports Fixed

168610 Chkpii error in build I20061218-0800

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M5 - 19th December 2006
Project org.eclipse.jdt.core v_728 (cvs).

## What's new in this drop

### Problem Reports Fixed

167743 [search] Open Type Dialog cannot find types from projects migrated from 3.2.1 workspace
168088 SourceTypeConverter NPE in log
160773 [jsr269] Need interfaces between jdt compiler and jsr269 impl

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M4 - 9th December 2006 - 3.3 MILESTONE 4
Project org.eclipse.jdt.core v_727 (cvs).

## What's new in this drop

- IMarker-s generated by JDT and compiler participants may now have their IMarker#GENERATED_BY attribute set according to the following rules:
  - IMarker-s generated by JDT get JavaBuilder#GENERATED_BY, currently valued to JDT, as their GENERATED_BY attribute; that value is non API and may change in future releases;
  - IMarker-s originating from compiler participants' categorized problems which do not have the IMarker#GENERATED_BY extra attribute set do not have their GENERATED_BY attribute set;
  - IMarker-s originating from compiler participants' categorized problems which have the IMarker#GENERATED_BY set to a given value get their GENERATED_BY attribute set to the said value.
  See also bug 158611.

### Problem Reports Fixed

167217 [1.5][compiler] ClassCastException during annotation code generation
165900 [select] Incoherent behavior when there is ambiguous methods
166570 [assist] Proposal computer from the 'org.eclipse.mylar.java' plug-in did not complete normally
158611 Set 'generatedBy' attribute of IMarker anywhere markers are generated in JDT/Core code
166348 [search] Stack trace console resolves wrong source
164792 CodeAssist should treat #clone() special in 1.5 mode
154111 Compiler API (JSR 199)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M4 - 5th December 2006
Project org.eclipse.jdt.core v_726 (cvs).

## What's new in this drop

### Problem Reports Fixed

166641 [compiler] uninitialized variable not reported in if (false) block
140191 NPE in ClassFileReader.getSourceName logs full CU source
166436 [javadoc] Potentially wrong javadoc warning for unexpected duplicate tag @value
166365 [javadoc] severity level of malformed javadoc comments did not work properly
166077 [compiler] extraneous tests in Scope#findExactMethod
165976 ECJ Ant adapter doesn't allow setting empty bootclasspath
142205 [batch][options] -deprecation option is not on by default, whereas the help message says so

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M4 - 28th November 2006
Project org.eclipse.jdt.core v_725 (cvs).

## What's new in this drop

- Added `org.eclipse.jdt.core.JavaCore#VERSION_1_7`. It can be used to set the compliance, the source or the target platform values. This has no impact right now beside setting the major version inside .class file to `org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants#MAJOR_VERSION_1_7`.
- Added new API `org.eclipse.jdt.core.JavaCore#setComplianceOptions(String, Map)` to set the compiler's options relative to a given compiler's compliance.
- Tuned compiler semantics for unchecked cast detection. As a consequence, more warnings should be issued (also see bugs 106451 and 165143).
- Raw type warnings are now also diagnosed for cast types.
- Improved compiler diagnosis for type hiding to now report: member type hiding type parameters, nested types hiding other accessible types in scope (direct enclosing are already reported as errors).
- Compiler is now more resilient with duplicate local type declarations; thus allowing further operation to still be carried out accurately (codeselect, completion, search, DOM AST ops) (cf. bug 165662).
- New Java Model element interface has been added as common supertype for `ICompilationUnit` and `IClassFile` (see bug 125504).

      /**
       * Represents an entire Java type root (either an ICompilationUnit
       * or an IClassFile).
       *
       * This interface is not intended to be implemented by clients.
       *
       * @see ICompilationUnit
       * @see IClassFile
       * @since 3.3
       */
      public interface ITypeRoot extends IJavaElement, IParent, IOpenable, ISourceReference, ICodeAssist {
      ...
      }

### Problem Reports Fixed

165917 Error range for IProblem.IncompatibleReturnType should be predictable
165620 Regression in 3.3M3 with generics - ambiguous method.
163370 [1.5][compiler] Incorrect ambiguous method error
165794 [javadoc] Should not report ambiguous on method with parameterized types as parameters
165701 [model] NPE while computing method unique key
142219 [batch][options] inconsistent help message: -X<option> vs -Xemacs
160520 [compiler] Should better locate overriding return type conflict onto return type reference
125504 [API] common supertype for ICompilationUnit and IClassFile
165525 [comments] ASTParser excludes trailing line comments from extended range of fields in enums
165654 [ast rewrite] add final to parameter does not work with annotations
161980 Make some member class static
161975 Should factorized all empty strings constants
163680 [1.5] [compiler] JDT Internal Exception under import circularity
165645 [1.5][compiler] Member type should take precedence over enclosing type parameters
165662 [compiler] Be more resilient with duplicate local types
161617 [ast rewrite] replacing InstanceofExpression.LEFT_OPERAND_PROPERTY should ensure whitespace
165291 [1.5] Missing diagnosis for illegal forward field ref in generics
165453 [1.5][compiler] Improve unchecked cast message in compiler's warning
165145 [1.5][compiler] Missing raw type warning
106451 [1.5][compiler] Error and unchecked warnings missing for cast to parameterized type
165143 [1.5][compiler] Missing unchecked cast warning
165346 [compiler][null] org.eclipse.jdt.internal.compiler.ast.OperatorExpression.nullStatus(FlowInfo) too conservative
149118 [batch] shorten the error message in case a .java directory is used as a parameter
156339 Abort compilation surfaces through the UI
164657 [compiler] Wrong line is showed during debug

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M4 - 21st November 2006
Project org.eclipse.jdt.core v_724 (cvs).

## What's new in this drop

- Added `org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS`. See bug 165210 for details.
- Added `org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_THROW`. See bug 164946 for details.
- javadoc checker now correctly allow usage of {@value} tags only on field declaration when source level is less than 1.5 (see bug 153399).

### Problem Reports Fixed

164707 ArrayIndexOutOfBoundsException in JavaModelManager if source level == 6.0
165210 Fup of bug 74997, add new formatter option for number of blank lines between import groups
165069 [1.5][compiler] incorrect field hiding
165081 [1.5][compiler] Fup of bug 165069, unused imports are not reported
154993 org.eclipse.jdt.ui.JavaNoTypeCompletionProposalComputer throws a runtime exception when using content assist on 'this.' in annontations
139621 [javadoc][assist] No Javadoc completions if there's no member below
164946 Spaces in control statements
163807 JDT fails to compile legal Java source files
153399 [javadoc] JDT Core should warn if the @value tag is not used correctly
84049 [javadoc][dom] Extended ranges wrong for method name without return type
164791 [search] Type reference reports anonymous type in invalid class file
164450 [comments] DefaultCommentMapper should release scanner after use
163984 [search] no results from SearchEngine.searchAllTypeNames with types in scope
74997 import rewrite: no empty line between groups
164311 Code completion unavailable for static methods
156352 NPE when accessing annotations from ITypeBinding
99928 ContentAssist should propose methods of intersection types
157570 Bug in ASTParser
164656 IScanner.setSource should spec that 'null' is allowed
160637 getKey(...) for BinaryMethod returns a key with '.' in the return type instead of '/'
110771 align all ICompilationUnit#getContents implementations on a 'never null' behavior

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M4 - 14th November 2006
Project org.eclipse.jdt.core v_723 (cvs).

## What's new in this drop

- javadoc checker did incorrectly allow compatible matches for method references; where only exact matches are mandated (see bug 163659).

### Problem Reports Fixed

140980 [recovery] ClassCastException from JDT compiler
162918 [compiler] Illegal usage of a local inside a switch statement is not rejected
164121 [search] Misses declarations of method parameters
164081 XML log could contain package information
160301 [search] too many matches found for method references
163659 [javadoc] Compiler should warn when method parameters are not identical
164092 [model] Possible NullPointerException in org.eclipse.jdt.internal.core.Buffer.
164091 [model] Possible NullPointerException in JavaProjectElementInfo.
159939 [1.5][compiler] Eclipse allows List<void[]>, javac doesn't
162621 [model][delta] Validation errors do not clear after replacing jar file
163782 Possible resource leaks
162026 [1.5][compiler] Erroneous Report of an Ambiguous Method
163600 [compiler] Internal references to static inner classes fail in presence of assert keyword
149004 static fields from package classes wrong quick-fix'ed
101476 "Serializable class without serialVersionUID" setting and writeReplace
163647 [model] Thrown exceptions are not found in method binding key which have a capture as declaring class

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M4 - 7th November 2006
Project org.eclipse.jdt.core v_722 (cvs).

## What's new in this drop

- `JavaConventions` can now validate names using specific source and compliance levels. New `validate*Name` API methods with the source and the compliance level as given parameters have been added to this class. Clients should now use these new methods instead of deprecated ones which only verify names using the 1.3 default level.
- Added new API method on `org.eclipse.jdt.core.BindingKey` class to get the exceptions thrown by a method (see bug 155003):

      	/**
      	 * Returns the thrown exception signatures of the element represented by this binding key.
      	 * If this binding key does not  represent a method or does not throw any exception,
      	 * returns an empty array.
      	 *
      	 * @return the thrown exceptions signatures
      	 * @since 3.3
      	 */
      	public String[] getThrownExceptions()

### Problem Reports Fixed

162903 SuppressWarnings and NON-NLS'd strings as errors
161400 Scanning of identifiers should be optimized
163349 [assist] code assist doesn't correctly use scanner eofPosition
162968 Content Assist for undeclared local variable should prioritize unbound names
163549 Exclude JDT ant tasks from signing
163072 [search] method reference reports wrong potential matches
155003 [model] Missing exception types / wrong signature?
161621 enum is a Keyword for Java5 and cannot be used as a Enum name
162743 Duplicate variable declaration code assist proposals

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M3 - 30th October 2006 - 3.3 MILESTONE 3
Project org.eclipse.jdt.core v_721 (cvs).

## What's new in this drop

- Removed fix for bug 141289

### Problem Reports Fixed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M3 - 30th October 2006
Project org.eclipse.jdt.core v_720 (cvs).

## What's new in this drop

### Problem Reports Fixed

148041 [compiler][1.5] should issue unchecked warning on cast to Set<X> of Iterator#next () returning X
159631 [dom] NPE while trying to cleanup specific pair of file

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M3 - 29th October 2006
Project org.eclipse.jdt.core v_719 (cvs).

## What's new in this drop

### Problem Reports Fixed

161846 Expanding a java project with invalid classpath container entries in Project Explorer causes CPU to stay at 100%
159738 [1.5][compiler] Missing class casts in generated byte code for generic method
162296 [compiler] Anonymous and local classes are tagged as final and/or private in the inner class infos
162390 JavaCodeFormatter Annotation Bug
162400 [1.5][compiler] Return type inference does not perform well in array initializer
159893 [compiler] Compilation Error with nested classes
162056 [recovery] Confusing errors in editor
154811 [compiler] Internal compiler error while parsing/formatting
160823 [formatter] Java Conventions [built-in] inserts blank line between field declarations
161412 org.eclipse.jdt.internal.core.NamedMember#getFullyQualifiedParameterizedName probably boggus

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M3 - 24th October 2006
Project org.eclipse.jdt.core v_718 (cvs).

## What's new in this drop

- New compiler warning to detect overriding of a method without a super invocation has been added. See bug 156736 for further details.
- Code Assist propose unresolved names as possible local variable name

      int f<code assist>
      System.out.print(foo);

  In this example foo is proposed as a possible completion.
- The compiler now tolerates that methods implementing a method declared in an implemented interface or an extended abstract class bear an @Override annotation (1.6 mode only - see also bug 141931).

### Problem Reports Fixed

161967 Map.keySet() can be replaced with Map.entrySet() when value is used
161214 [compiler] Fup on bug 159709: improve deprecation marks propagation
161581 Adding a missing folder doesn't remove classpath marker
157996 [compiler] ProblemReferenceBinding missing a closestMatch
160337 Empty block not detected inside anonymous class
161555 org.eclipse.jdt.core.tests.model.ReconcilerTests#testDeleteTwoMethods is failing on IBM 1.5 VM
161557 [assist] JavaTypeCompletionProposalComputer throws a runtime exception when using content assist on generics type argument with instance member arrays
150228 Code assist for unresolved local variables
161204 code assist with unresolved types does not work when using 5.0 rt.jar
161554 org.eclipse.jdt.core.tests.compiler.regression.GenericTypeTest#test1050 fails on IBM JDK 1.5 VM
141931 [1.5][compiler] @Override: upcoming changes of the reference implementation
161476 org.eclipse.jdt.core.tests.compiler.regression.BatchCompilerTest.test024 passes unexpectedly with IBM Java2 5.0
161459 9 tests in org.eclipse.jdt.core.tests.compiler.regression fail on IBM Java2 5.0
156736 [compiler] Add compiler option to warn overriding methods that do not call super
159711 [1.5][compiler] wrongly reports ambiguous method error

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M3 - 17th October 2006
Project org.eclipse.jdt.core v_717 (cvs).

## What's new in this drop

- `TypeNameMatch` API has been polished while implementing new `searchAllTypeNames(char[][] char[][],...)` API method (see next point).
  This class has been abstracted and clients now need to use added `SearchEngine` following method to create an instance of it:

      /**
       * Create a type name match on a given type with specific modifiers.
       *
       * @param type The java model handle of the type
       * @param modifiers Modifiers of the type
       * @return A non-null match on the given type.
       */
      public static TypeNameMatch createTypeNameMatch(IType type, int modifiers)

  Early performance tests using added `searchAllTypeNames` method with `TypeNameMatchRequestor` requestor (ie. a la Open Type dialog) show interesting memory footprint reduction (around 30%). More precise measures of this performance improvement will be done later...
- Added new `SearchEngine` API method for search all type names with multiple qualifications and type names (see bug 160324).
  Only requestor differs from already existing corresponding `searchAllTypeNames` method:

      /**
       * Searches for all top-level types and member types in the given scope matching any of the given qualifications
       * and type names in a case sensitive way.
       *
       * Provided {@link TypeNameMatchRequestor} requestor will collect {@link TypeNameMatch}
       * matches found during the search.
      ...
       * @param nameMatchRequestor the {@link TypeNameMatchRequestor requestor} that collects
       * 				{@link TypeNameMatch matches} of the search.
      ...
       * @since 3.3
       */
      public void searchAllTypeNames(
      	final char[][] qualifications,
      	final char[][] typeNames,
      	IJavaSearchScope scope,
      	final TypeNameMatchRequestor nameMatchRequestor,
      	int waitingPolicy,
      	IProgressMonitor progressMonitor)  throws JavaModelException

  Similarily to previous added `searchAllTypeNames` new API method, clients have to provide a new requestor: `TypeNameMatchRequestor` in order to get matches collected during the search.
- Code Assist can return completion proprosals that required some other completion proposals:
  To apply a completion proposal the required completion proposals must be applied otherwise the resulting code won't be correct.
  To manage completion proposalswith required proposals the following API have been added:

      public class CompletionProposal {

      	...

      	/**
      	 * Returns the required completion proposals.
      	 * The proposal can be apply only if these required completion proposals are also applied.
      	 * If the required proposal aren't applied the completion could create complations problems.
      	 *
      	 * <p>
      	 * This field is available for the following kinds of
      	 * completion proposals:
      	 * <ul>
      	 * 	<li><code>FIELD_REF</code> - The allowed required proposals for this kind are:
      	 *   <ul>
      	 *    <li><code>TYPE_REF</code></li>
      	 *   </ul>
      	 * </li>
      	 * 	<li><code>METHOD_REF</code> - The allowed required proposals for this kind are:
      	 *   <ul>
      	 *    <li><code>TYPE_REF</code></li>
      	 *   </ul>
      	 *  </li>
      	 * </ul>
      	 * </p>
      	 * <p>
      	 * Other kinds of required proposals will be returned in the future, therefore clients of this
      	 * API must allow with {@link CompletionRequestor#setAllowsRequiredProposals(int, int, boolean)}
      	 * only kinds which are in this list to avoid unexpected results in the future.
      	 * </p>
      	 * <p>
      	 * A required completion proposal cannot have required completion proposals.
      	 * </p>
      	 *
      	 * @return the required completion proposals, or <code>null</code> if none.
      	 *
      	 * @see CompletionRequestor#setAllowsRequiredProposals(int, int,boolean)
      	 *
      	 * @since 3.3
      	 */
      	public CompletionProposal[] getRequiredProposals() {...}

      	...

      }

      public class CompletionRequestor {

      	...

      	/**
      	 * Returns whether a proposal of a given kind with a required proposal
      	 * of the given kind is allowed.
      	 *
      	 * @param proposalKind one of the kind constants declared
      	 * @param requiredProposalKind)one of the kind constants declared
      	 * on <code>CompletionProposal</code>
      	 * @return <code>true</code> if a proposal of a given kind with a required proposal
      	 * of the given kind is allowed by this requestor, and <code>false</code>
      	 * if it isn't of interest.
      	 * <p>
      	 * By default, all kinds of required proposals aren't allowed.
      	 * </p>
      	 * @see #setAllowsRequiredProposals(int, int, boolean)
      	 * @see CompletionProposal#getKind()
      	 * @see CompletionProposal#getRequiredProposals()
      	 *
      	 * @since 3.3
      	 */
      	public boolean isAllowingRequiredProposals(int proposalKind, int requiredProposalKind) {...}

      	/**
      	 * Sets whether a proposal of a given kind with a required proposal
      	 * of the given kind is allowed.
      	 *
      	 * Currenlty only a subset of kinds support required proposals. To see what combinations
      	 * are supported you must look at {@link CompletionProposal#getRequiredProposals()}
      	 * documentation.
      	 *
      	 * @param proposalKind one of the kind constants declared
      	 * @param requiredProposalKind)one of the kind constants declared
      	 * on <code>CompletionProposal</code>
      	 * @param allow <code>true</code> if a proposal of a given kind with a required proposal
      	 * of the given kind is allowed by this requestor, and <code>false</code>
      	 * if it isn't of interest
      	 * @see #isAllowingRequiredProposals(int, int)
      	 * @see CompletionProposal#getKind()
      	 * @see CompletionProposal#getRequiredProposals()
      	 *
      	 * @since 3.3
      	 */
      	public void setAllowsRequiredProposals(int proposalKind, int requiredProposalKind)boolean allow) {...}

      	...

      }

- Code Assist propose completion even if the type of a variable or the return type of the method is missing.
  e.g.

      package p;
      public class X {
        void foo() {
          Vector v = null;
          v.addEl| // complete at | location
        }
      }

  A completion proposal with required proposals will be returned. The main proposal will be the method `addElement()` at `addEl` location with a required proposal of the type `java.util.Vector` at `Vector` location. The same kind of completion can be computed with the following examples.

      package p;
      public class X {
        Vector v = null;
        void foo() {
          v.addEl| // complete at | location
        }
      }

      package p;
      public class X {
        Vector bar() {return null;}
        void foo() {
          bar().addEl| // complete at | location
        }
      }

### Problem Reports Fixed

161190 [search] All type search doesn't find all types
151756 [compiler] unverifiable bytecode created with cvs head compiler
161028 [search] NPE on organize imports in TypeNameMatch.equals
160854 [search] No type is found using seachAllTypeNames(char[][],char[][],...) methods when no type names is specified
80339 Wrong error message "; expected" when writing an interface
159709 [compiler] missing warnings for deprecated member types
157170 [AST visitor] Unvisited elements
159973 [1.5] [compiler] VerifyError due to compiler generating incorrect synthetic methods
160655 [assist] Bug with code assist and generics
44984 [typing] Automatically optimize class imports
160494 [search] searchAllTypeNames(char[][], char[][],...) fails to find types in default package
160328 [search] Remove constructor TypeNameMatch(IType)
160327 [search] Add specification for TypeNameMatch.getType
160324 [search] SearchEngine.searchAllTypeNames(char[][], char[][], TypeNameMatchRequestor
160323 [search] TypeNameMatch: support hashCode/equals
160352 COMPACT mode doesn't work for exception table in the disassembler
90600 [model] CreateElementInCUOperation.apply: should use project options for rewriter
160352 COMPACT mode doesn't work for exception table in the disassembler

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M3 - 10th October 2006
Project org.eclipse.jdt.core v_716 (cvs).

## What's new in this drop

- Raw type reference are now reported by default. See bug 159456.
- API of `TypeNameMatch` has been changed to improve memory consumption performance. It now creates IType handle while accepting the type information from indexes and stores their modifiers to avoid java element opening while getting this piece of information.
  Note that there's no Java Model initialization nor populating while creating handles...
  Note also that previously added API method on IJavaProject has been removed:

      IType findType(String packageName,
      	String typeQualifiedName,
      	IPackageFragmentRoot root,
      	ICompilationUnit[] units,
      	IProgressMonitor progressMonitor) throws JavaModelException;

- While fixing bug 157814, new `MethodReferenceMatch.isPolymorphic()` API method has been renamed to:

      /**
       * Returns whether the reference is on a message sent from a type
       * which is a super type of the searched method declaring type.
       * If true, the method called at run-time may or may not be
       * the search target, depending on the run-time type of the receiver object.
       *
       * @return true if the reference is on a message sent from
       * a super-type of the search method declaring class, false  otherwise
       */
      public boolean isSuperInvocation()

- Added new API `ClasspathContainerInitializer#getFailureContainer(...)` that returns the classpath container that should be used if a container initializer fails to initialize a container.

### Problem Reports Fixed

95008 [assist] Missing completion for field initialization in boolean case
160015 [1.5][javadoc] Missing warning on autoboxing compatible methods
160132 [1.5][compiler] Compiler fails with indirect reference error message
160005 Add protection about misbehaving container initializer
86482 ISourceRange implementation does not implements value equals
157814 [search] polymorphic matches in supertype hierarchy should be marked as potential
148380 [search] get IType from TypeNameRequestor result
160025 CharOperation fails with AIOOBE when replaced array contains the same chars
159641 patch to refactor Main and add new "GCCMain" driver
134848 [compiler][null] false positive after nested loop with break to explicit label
159654 [compiler] unverifiable bytecode created by current cvs head compiler
158518 Remove dependency of GenericTypeTest#test370 on SUN internal APIs
159607 [1.5][compiler] M2: Unnecessary cast is necessary
158267 Brace positions line after annotation
158258 Double check sorting algorithms
159456 [1.5][compiler] Enable compiler warning for raw type reference by default

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M3 - 3rd October 2006
Project org.eclipse.jdt.core v_715 (cvs).

## What's new in this drop

- Added new `SearchEngine` API method for search all type names (see bug 148380).
  Only requestor differs from already existing `searchAllTypeNames` method:

      /**
       * Searches for all top-level types and member types in the given scope.
       * The search can be selecting specific types (given a package name using specific match mode
       * and/or a type name using another specific match mode).
       *
       * Provided {@link TypeNameMatchRequestor} requestor will collect {@link TypeNameMatch}
       * matches found during the search.
      ...
       * @param nameMatchRequestor the {@link TypeNameMatchRequestor requestor} that collects
       * 				{@link TypeNameMatch matches} of the search.
      ...
       * @since 3.3
       */
      public void searchAllTypeNames(
      	final char[] packageName,
      	final int packageMatchRule,
      	final char[] typeName,
      	final int typeMatchRule,
      	int searchFor,
      	IJavaSearchScope scope,
      	final TypeNameMatchRequestor nameMatchRequestor,
      	int waitingPolicy,
      	IProgressMonitor progressMonitor)  throws JavaModelException

  Clients have to provide a new requestor: `TypeNameMatchRequestor` in order to get matches collected during the search.
  Note that this match (`TypeNameMatch`) can resolve type and then provide corresponding java model `IType`:

      /**
       * Returns the java model type corresponding to fully qualified type name
       * (based on package, enclosing types and simple name).
       *
       * @return the java model type
       * @throws JavaModelException happens when type stored information are not valid
       */
      public IType resolvedType() throws JavaModelException

- Deprecated existing `SearchEngine` API helper method:

      	public void searchAllTypeNames(
      		final char[] packageExactName,
      		final char[] typeName,
      		final int matchRule,
      		int searchFor,
      		IJavaSearchScope scope,
      		final TypeNameRequestor nameRequestor,
      		int waitingPolicy,
      		IProgressMonitor progressMonitor)  throws JavaModelException

  This should avoid to have too many similar `searchAllTypeNames` available methods...
- Added new `JavaCore` API method to create a java element from an `IFile` using a specific project:

      /**
       * Returns the Java element corresponding to the given file, its project being the given
       * project.
       * Returns null if unable to associate the given file
       * with a Java element.
       *
       * The file must be one of:
       *  . a file with one of the {@link JavaCore#getJavaLikeExtensions()
       *      Java-like extensions} - the element returned is the corresponding ICompilationUnit
       *  . a .class file - the element returned is the corresponding IClassFile
       *  . a .jar file - the element returned is the corresponding IPackageFragmentRoot
       *
       * Creating a Java element has the side effect of creating and opening all of the
       * element's parents if they are not yet open.
       *
       * @param file the given file
       * @return the Java element corresponding to the given file, or
       * null if unable to associate the given file
       * with a Java element
       * @since 3.3
       */
      public static IJavaElement create(IFile file, IJavaProject project)

  Existing API method `JavaCore.create(IFile)` assumed that project to use was the file one but it was not always the case, especially for class files belonging to an external class folder...
  Note that no other methods was added for `IResource` and `IFolder` as default project was always well computed for this kind of resources.

### Problem Reports Fixed

158506 [search] SearchEngine.searchAllTypeNames should spec that null is valid for package
159325 Any idea why ClasspathEntry checks for string object reference instead of equals
155824 [javadoc] Content assist doesn't suggest Varargs
150289 [hierarchy] NPE in hierarchy builder when region is empty
159250 [1.5][compiler] Should better locate raw type usage for array qualified type references
159245 [1.5][compiler] Missing raw type usage warning for array type ref
159243 [compiler] Should better locate deprecation issue for qualified type ref
158951 [model] IWorkingCopy should not be referenced in any javadoc comment of JavaModel methods
153133 [model] toggle breakpoint in constructor creates a class load breakpoint
159021 [compiler] Unused locals initialisation is optimized out when it is a single name reference
158548 [1.5][compiler] Compiler should be more resilient with unresolved parameterized type references
154995 [compiler][null] false positive in embedded while/while/break code

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M3 - 26th September 2006
Project org.eclipse.jdt.core v_714 (cvs).

## What's new in this drop

### Problem Reports Fixed

147667 [1.5][compiler] Illegal compile error: "the method XXX is ambiguous for the type YYY"
158000 [compiler][null] Second diagnostic absorbed within finally blocks
150082 [compiler][null] Null reference warning ignores try blocks
149665 [compiler][null] Unexpected variable might be null warning in finally block
147118 [compiler][null] Incorrect null analysis involving do_while loop
142303 Right-click, "Open Declaration" fails under 3.2RC4
141518 IEvaluationContext.newVariable is not considered when doing codecomplete.
143001 Statement recovery doesn't recover broken try statement
123225 Code assist suggests overridden method

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M2 - 15th September 2006 - 3.3 MILESTONE 2
Project org.eclipse.jdt.core v_713 (cvs).

## What's new in this drop

- Added `isPolymorphic()` getter to `MethodReferenceMatch` (see bug 73401 and bug 156491).
  When a search requestor (`SearchRequestor`) accepts this kind of match, it knows if a method reference match is a polymorphic method (ie. implemented in a super or sub type) or not.

  For example, in example below:

      class A { public void foo() {} }
      class B extends A {}
      class C extends B { public void foo() {} }
      class D extends C {}
      public class X {
      	void foo() {
      		new B().foo();
      		new C().foo();
      		new D().foo();
      	}
      }

  Searching for all references to `C.foo()` method get 3 matches (instance of `MethodReferenceMatch`). Two of them, `new B().foo()` and `new D().foo()` are flagged as polymorphic due to the fact that these are methods respectively of a superclass and of a subclass...

  Search view has been modified to filter this kind of matches when user wants to focus only on exact references of the searched method.

### Problem Reports Fixed

157389 [1.4][compiler] assertionStatus is not set properly for nested types
157333 calling delete on enum constant deletes entire Enum
157403 NPE when trying to get the ast for a class with boggus annotations
156491 [search] Reference search unusable in some situations
73401 [search] Unable to search just for references to overridden method
157247 [1.6] [compiler] VerifyError with StackMap frames when no local variable attributes are generated
157086 should adopt ICU Collator and use new APIs on StructuredViewer
149751 Enum-valued annotation element handles non-enum constant badly

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M2 - 12th September 2006
Project org.eclipse.jdt.core v_712 (cvs).

## What's new in this drop

- Code Assist: Annotation types are proposed even there is no prefix.

         public @interface MyAnnot {
            int foo();
         }
         @|
         public class AClass {}

  'MyAnnot' is proposed if you do code assist at '|' location.
- Added new flag on nature of searched element to specify both interfaces and annotations (see bug 156177). This flag is defined on IJavaSearchConstants interface:

      	/**
      	 * The searched element is an interface or annotation type.
      	 * More selective than using {@link #TYPE}.
      	 * @since 3.3
      	 */
      	int INTERFACE_AND_ANNOTATION= 11;

### Problem Reports Fixed

148859 [model][delta] Package Explorer only shows default package after import
156591 [1.5][compiler] constant-specific methods in enum cannot be abstract
156540 [1.5][compiler] Compiler produces invalid bytecode for certain enum declarations
156177 [search] interfaces and annotations could be found with only one requets of searchAllTypeName
156340 [search] searchAllTypeNames return nothing for empty prefix
151189 [search] Declaration search does not find all matches
153874 [1.5][compiler] Compiler fails to consider bridge method with -source 1.4
129983 [1.5][assist] Need partial word for annotation autocompletion
156194 [codeassist] PROPOSE_MEMBER_TYPES can be removed
155115 UnresolvedReferenceBindings surfacing through DOM AST
153128 [compiler] Duplicate methods generated (from invalid source, but still :-)
156119 No warning for unnecessary semicolon in interface
155255 [1.5][compiler] ternary conditional operator returns wrong type

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M2 - 5th September 2006
Project org.eclipse.jdt.core v_711 (cvs).

## What's new in this drop

- Added to the batch compiler the ability to redefine the destination path on a source folder basis. Directories cited as sources, directly or as arguments to the `-classpath` and other classpath related options, can bear a `[-d dir]` specification that directs the generated class files to `dir` for source files fetched from the said directories. For example, given the source files `src/X.java` and `Y.java`, X depending from Y, the command `ecj src[-d bin1] -d bin2` will produce the files `bin1/X.class` and `bin2/Y.class`, while the command `ecj src[-d bin] -d none` will only produce the file `bin/X.class`.
- Code Assist: Annotation arguments names are proposed even there is no prefix.

         public @interface MyAnnot {
            int foo();
         }
         @MyAnnot(|
         public class AClass {}

  'foo' is proposed if you do code assist at '|' location.

### Problem Reports Fixed

148521 [5.0][content assist] Content assist show all members of a full annotation
156108 [1.5][compiler] Autoboxing doesnt workt in switch-statement
140123 Missing callback in CodeSnippetToCuMapper#getCompletionRequestor()
153130 [assist] IOB during content assist in scrapbook
154170 Printing warnings breaks in-editor quick fixes
146554 [batch][compiler][options] Allow the batch compiler to output compiled files into multiple output folders
155887 Breakpoint in 'finally' not hit - test suite failing
155795 Patch to fix jface.text.Assert deprecation
154880 DeltaProcessor does not set project references if first build is a project build

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M2 - 29th August 2006
Project org.eclipse.jdt.core v_710 (cvs).

## What's new in this drop

### Problem Reports Fixed

155423 [compiler] Unoptimal code generation when an initializer contains a statement that returns
151153 [1.6][compiler] Invalid Stackmap attribute generated for ternary operator
145397 [1.6][compiler] Invalid StackMap attribute
148224 AST API request: have binding for int, need int[], int[][] ....

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M2 - 15th August 2006
Project org.eclipse.jdt.core v_709 (cvs).

## What's new in this drop

### Problem Reports Fixed

151756 [compiler] unverifiable bytecode created with cvs head compiler
153303 IBinding.getAnnotations() returns array with null element
148661 [formatter] leverage CombinedBinaryExpression in BinaryExpressionFragmentBuilder#visit(BinaryExpression, BlockScope)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 6th August 2006 - 3.3 MILESTONE 1
Project org.eclipse.jdt.core v_708 (cvs).

## What's new in this drop

- New fix for bug 95152 required the index version to be incremented. Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).

### Problem Reports Fixed

95152 [search] F3 can't find synthetic constructor
152725 [1.6][formatter] Code formatter does not format 1.5 code when source level is 1.6

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 3rd August 2006
Project org.eclipse.jdt.core v_707 (cvs).

## What's new in this drop

- SearchPattern API method `createPattern(IJavaElement, int, int)` behavior has been modified for generic searches.
  It now returns erasure matches instead of exact ones (see bug 124489 for detailed discussion on this topic).

### Problem Reports Fixed

116459 [1.5][search] Generic type reference should return exact match on parameterized type with its own variables
124489 [1.5][search] "Find unused dependencies" misses references to generic types

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 1st August 2006
Project org.eclipse.jdt.core v_706 (cvs).

## What's new in this drop

### Problem Reports Fixed

133024 [ast rewrite] ASTRewrite does not honor forced line splits

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 25th July 2006
Project org.eclipse.jdt.core v_705 (cvs).

## What's new in this drop

### Problem Reports Fixed

151118 verifier errors occur when running osgi tests

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 18th July 2006
Project org.eclipse.jdt.core v_704 (cvs).

## What's new in this drop

- Wildcard captures are now indicating some ID to better address ambiguities in error messages
  e.g. now telling: `capture#2-of ? extends Number` is not compatible with `capture#1-of ? extends Number`
  as opposed to: `capture-of ? extends Number` is not compatible with `capture-of ? extends Number` (also see bug 149573).

### Problem Reports Fixed

129317 Outline view inconsistent with code
102875 code assist should propose types even if there's no initial character(s)
129584 Java model gives different results
150758 [1.5][compiler] NullPointerException in internal compiler
150074 [compiler] init part of for each loop with empty body is not executed
149028 Limiting number of characters to read with the file size is invalid.
149893 [1.5] Compilation error: The method is ambiguous for the type
149376 Internal compiler error on "import static"
149573 [1.5][compiler] Improve readable name of wildcard captures
128073 Content Assist should give static fields and methods declared in target type higher relevance
149043 Unresolvable classpath container leads to lots of scheduled jobs

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 4th July 2006
Project org.eclipse.jdt.core v_703 (cvs).

## What's new in this drop

### Problem Reports Fixed

149013 [javadoc] In latest 3.3 build, there is a javadoc error in org.eclipse.core.resources
119857 [javadoc] Some inner class references should be flagged as unresolved
103304 [Javadoc] Wrong reference proposal for inner classes.
148797 Syntax error in java class results in AST=null-error on "organize imports"
148742 [5.0][content assist] Annotation content assist not working in all cases for parameters
117302 Clean build of large project gives unresolved type errors
147875 [1.5][compiler] NPE when initializing annotations of a binary field
146012 No F_CONTENT flag on delta when reverting to old annotations
148970 Exceptions opening external Java file
148949 JarEntryFile now returning 'null'
120865 ICompilationUnit.findPrimaryType(..) should not throw internal AFE
148370 [formatter] new Class<?>[] {} kills formatter
148010 Code select doesn't find binary parameterized method

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 27th June 2006
Project org.eclipse.jdt.core v_702 (cvs).

## What's new in this drop

- Add new Search API method to support patterns for package/enclosing type name while searching all types names (see bug 92264).

      /**
       * Searches for all top-level types and member types in the given scope.
       * The search can be selecting specific types (given a package name using specific match mode
       * and/or a type name using another specific match mode).
       *
       * @param packageName the full name of the package of the searched types, or a prefix for this
       *                    package, or a wild-carded string for this package.
       * @param typeName the dot-separated qualified name of the searched type (the qualification include
       *                 the enclosing types if the searched type is a member type), or a prefix
       *                 for this type, or a wild-carded string for this type.
       * @param packageMatchRule one of
       *        . {@link SearchPattern#R_EXACT_MATCH} if the package name and type name are the full names
       *            of the searched types.
       *        . {@link SearchPattern#R_PREFIX_MATCH} if the package name and type name are prefixes of the names
       *            of the searched types.
       *        . {@link SearchPattern#R_PATTERN_MATCH} if the package name and type name contain wild-cards.
       *        . {@link SearchPattern#R_CAMELCASE_MATCH} if type name are camel case of the names of the searched types.
       *    combined with {@link SearchPattern#R_CASE_SENSITIVE},
       *       e.g. {@link SearchPattern#R_EXACT_MATCH} | {@link SearchPattern#R_CASE_SENSITIVE} if an exact and case sensitive match is requested,
       *       or {@link SearchPattern#R_PREFIX_MATCH} if a prefix non case sensitive match is requested.
       * @param typeMatchRule one of
       *        . {@link SearchPattern#R_EXACT_MATCH} if the package name and type name are the full names
       *            of the searched types.
       *        . {@link SearchPattern#R_PREFIX_MATCH} if the package name and type name are prefixes of the names
       *            of the searched types.
       *        . {@link SearchPattern#R_PATTERN_MATCH} if the package name and type name contain wild-cards.
       *        . {@link SearchPattern#R_CAMELCASE_MATCH} if type name are camel case of the names of the searched types.
       *     combined with {@link SearchPattern#R_CASE_SENSITIVE},
       *       e.g. {@link SearchPattern#R_EXACT_MATCH} | {@link SearchPattern#R_CASE_SENSITIVE} if an exact and case sensitive match is requested,
       *       or {@link SearchPattern#R_PREFIX_MATCH} if a prefix non case sensitive match is requested.
       * @param searchFor determines the nature of the searched elements
       *     . {@link IJavaSearchConstants#CLASS}: only look for classes
       *     . {@link IJavaSearchConstants#INTERFACE}: only look for interfaces
       *     . {@link IJavaSearchConstants#ENUM}: only look for enumeration
       *     . {@link IJavaSearchConstants#ANNOTATION_TYPE}: only look for annotation type
       *     . {@link IJavaSearchConstants#CLASS_AND_ENUM}: only look for classes and enumerations
       *     . {@link IJavaSearchConstants#CLASS_AND_INTERFACE}: only look for classes and interfaces
       *     . {@link IJavaSearchConstants#TYPE}: look for all types (ie. classes, interfaces, enum and annotation types)
       * @param scope the scope to search in
       * @param nameRequestor the requestor that collects the results of the search
       * @param waitingPolicy one of
       *        . {@link IJavaSearchConstants#FORCE_IMMEDIATE_SEARCH} if the search should start immediately
       *        . {@link IJavaSearchConstants#CANCEL_IF_NOT_READY_TO_SEARCH} if the search should be cancelled if the
       *            underlying indexer has not finished indexing the workspace
       *        . {@link IJavaSearchConstants#WAIT_UNTIL_READY_TO_SEARCH} if the search should wait for the
       *            underlying indexer to finish indexing the workspace
       * @param progressMonitor the progress monitor to report progress to, or null if no progress
       *                        monitor is provided
       * @exception JavaModelException if the search failed. Reasons include:
       *        . the classpath is incorrectly set
       * @since 3.3
       */
      public void searchAllTypeNames(
      	final char[] packageName,
      	final int packageMatchRule,
      	final char[] typeName,
      	final int typeMatchRule,
      	int searchFor,
      	IJavaSearchScope scope,
      	final TypeNameRequestor nameRequestor,
      	int waitingPolicy,
      	IProgressMonitor progressMonitor)  throws JavaModelException

  Note that already existing `searchAllTypeNames(char [], char[], int, int, IJavaSearchScope, TypeNameRequestor, int, IProgressMonitor)` API method documentation has been updated to reflected the fact that package name is an exact name and does not accept wildcards.
- Incremented plug-in version ID to "3.3.0" due to newly added API method (see details above).
- Huge String concatenations - thousands of terms and beyond - are now handled smoothly by the compiler even when they are not solely comprised of literals and other constants (cf. bug 102728).

### Problem Reports Fixed

148278 Default-package classes missing in Package Explorer
148352 NLS warning shows up on incomplete code
102728 [compiler] Reduce the stack depth demands of extended string concatenation ASTs
142530 [hierarchical packages] '.' in folder names confuses package explorer
148523 [batch] Batch compiler output contains extra linebreak before line position
147485 Anonymous type missing from java model
111086 [1.5][compiler] Compiler accepts call to parameterized method with invalid arguments
148215 [search] Exception while searching for declarations of referenced types in binary java elements packaged in a jar
146331 Java Editor won't save file
145367 Failing to open a binary member leaves cache inconsistent
96237 [javadoc] Inner types must be qualified
92264 [search] all types names should support patterns for package/enclosing type name
102720 org.eclipse.jdt.core.Signature spec incomplete
148015 NPE in log from ClasspathChange
143212 IAE in log
145544 Comment indentation wrong when using sun conventions
146214 Refactor XmlWritter and Main.Logger
147877 source end of array access isn't correct
145007 [1.5][javadoc] Generics + Inner Class -> Javadoc "missing @throws" warning
147690 [1.5][compiler] Incompatible serialversionuid when using covariant in Java 1.5
147747 max stack for clinit of enum overestimated
142059 [efs] renaming package fails to update references
143013 SWTException: Failed to execute runnable (...AbortCompilation)
147024 [compiler] Compiler bug when accessing static final attribute in a non-static way
143684 Creating of static imports is unavailable..

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 20th June 2006
Project org.eclipse.jdt.core v_701 (cvs).

## What's new in this drop

- Fix for bug 120667 required the index version to be incremented. Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).

### Problem Reports Fixed

147736 ClassCastException in TypeHierarchy
91709 [1.5][model] Quick Fix Error but no Problem Reported
147381 [1.5][compiler] Generics discrepancy between Eclipse compiler and Sun compiler.
139555 [hierarchy] Opening a class from Type hierarchy will give the wrong one if source and compiled are in defined in project
144573 compilationParticipant extension point schema incomplete
145835 getJavaClassLibs needs to account for IBM J2SE 1.5
145333 [hierarchy] Resolving too much
122444 [hierarchy] Type hierarchy of inner member type misses anonymous subtypes
114894 [compiler] Compiler generate dead bytecode
147096 ecj.jar manifest should not use x-friends, but use x-internal=true instead
146015 Some JDT/Core tests results are still VM dependent
120667 [hierarchy] Type hierarchy for enum type does not include anonymous subtypes
146324 Batch builds produce "The type X is already defined" errors
146615 [hierarchy] TypeHierarchyTests is tests order dependent
142207 [batch][options] Source/target level names 5 and 5.0 missing from batch compiler help message
76734 [classpath] Attemp to lock workspace during container initialization

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.3M1 - 13th June 2006
Project org.eclipse.jdt.core v_700 (cvs).

## What's new in this drop

- Progressive help message for the batch compiler.
  The new `-help:warn` option displays details about the various parameters applicable to the `-warn` option; these details are no more part of the general help message, which is thus more compact (cf. bug 144248).
- Compiler is now better resilient to duplicate local variables, thus allowing further operation to still be carried out accurately (codeselect, completion, search, DOM AST ops) (cf. bug 144858).

### Problem Reports Fixed

146215 JDT Core tests should not be dependent on HashMap implementation
144858 [compiler] Should be more resilient with duplicate locals
145746 [1.5][compiler] Enum synthetic methods should be improved
145732 [1.5][compiler] Inconsistent behavior in ECJ code for enum types
145516 Bad performance when compiling a java file with non java content
142897 [1.5][compiler] Compiler cannot resolve type of inner class of a bounded generic type
144976 [hierarchy] NPE in ReferenceBinding
145500 [hierarchy] Superclass could be more resilient
144866 [assist][javadoc] Wrong completion inside @value tag
144414 JDT Compiler fails while standard javac compiler can proceed
142772 [1.5][compiler] Compilation succeeds with static imports that fail with javac
143259 [1.5][compiler] NullPointerException in ReferenceBinding.binarySearch , Eclipse 3.2RC4
144426 [compiler] Compiler incorrectly reports "assignment to variable has no effect" when it is a duplicate
144248 [batch] Progressive help text
141512 [batch] re-format the help message so as to fit into 80 columns
141522 [compiler][batch] ClassFile#buildAllDirectoriesInto should protect itself against concurrent directory creation
141330 [1.5][compiler] Suspicious error message for type mismatch
141252 [1.6]][compiler] ClassFormatError: Illegal class name "" in class file
141810 [1.5][compiler] Enum switch tables incorrectly generated by the compiler
141327 StackFrame and VerificationTypeInfo must call super.clone() in their clone() method
140476 JDOM: IDOMType.setSuperInterfaces(new String [0]) fails to remove existing implements clause
132430 [1.5][javadoc] Unwanted missing tag warning for overridden method with parameter containing type variable
130752 [comments] first BlockComment parsed as LineComment
140156 [1.5][search] Invalid method handle with parameterized parameters when no source is attached
123679 [search] missing icon or bad hit in search results
141550 Enable now passing tests

For earlier build notes, also see build notes up to Release 3.2.