jdt core - build notes 3.2 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 HEAD branch. For more information on 3.2 planning, please refer to JDT/Core release plan, the next milestone plan, the overall official plan, or the build schedule. This present document covers all changes since Release 3.1 (also see a summary of API changes).
Maintenance of previous releases of JDT/Core is performed in parallel branches: 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.2 - 6th June 2006 - 3.2 RELEASE (R3_2)
Project org.eclipse.jdt.core v_671 (cvs).

## What's new in this drop

### Problem Reports Fixed

145248 MD5 checksums missing for JDT Core Batch Compiler JARs

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC7 - 2nd June 2006 - 3.2 RELEASE CANDIDATE 7
Project org.eclipse.jdt.core v_670 (cvs).

## What's new in this drop

### Problem Reports Fixed

140879 Spontaneous error "java.util.Set cannot be resolved..."

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC7 - 2nd June 2006
Project org.eclipse.jdt.core v_669 (cvs).

## What's new in this drop

### Problem Reports Fixed

144504 JDT Core model JUnit tests fail when ordering of methods reversed
143718 [1.6][compiler] ClassFormatError : wrong stack map frame is used

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC6 - 26th May 2006 - 3.2 RELEASE CANDIDATE 6
Project org.eclipse.jdt.core v_668 (cvs).

## What's new in this drop

### Problem Reports Fixed

142793 NPE in core.dom.ASTConverter.createFakeEmptyStatement results in java.lang.OutOfMemory
142653 [1.5][compiler] JDT Internal Compiler Error: NullPointerException in MethodVerifier.computeInheritedMethods(), Eclipe 3.2RC4

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC5 - 19th May 2006 - 3.2 RELEASE CANDIDATE 5
Project org.eclipse.jdt.core v_667 (cvs).

## What's new in this drop

### Problem Reports Fixed

142087 [1.5][compiler] NPE in computeCompatibleMethod
141800 [1.5][compiler] Necessary cast is marked as "unnecessary" for cast check in 3.2RC4
141949 Missing usage restrictions specification
142001 [batch][options] Typo in help message
141797 Spelling mistakes in JDT error messages
141704 [1.5][compiler] Eclipse 3.2RC4 Doesn't recognize implemented method by abstract class

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC4 - 11th May 2006 - 3.2 RELEASE CANDIDATE 4
Project org.eclipse.jdt.core v_666 (cvs).

## What's new in this drop

### Problem Reports Fixed

139931 [1.5][compiler] Unnecessary cast warning and varargs
140569 [1.5][compiler] Ambiguous conversion from generic to parameterized/raw type confuses Eclipse's way of resolving unresolved binary references
141155 [1.5][compiler] Enum valueOf(String) method should not be final
127766 [1.5][compiler] inconsistent treatment of explicit subclasses of Enum
140750 java.lang.IllegalStateException: zip file closed on typing while "Computing additional info"
140318 AST: Invalid annotation binding for incomplete code
140873 No version range specified when requiring bundles
140643 [compiler] $foo() not found in anonymous type
140301 API documentation of CharOperation.camelCaseMatch/4 is wrong or misleading

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC3 - 5th May 2006 - 3.2 RELEASE CANDIDATE 3
Project org.eclipse.jdt.core v_665 (cvs).

## What's new in this drop

- Reverting change for bug 140262. Note that ver665 is no longer used and has been removed from CVS.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC3 - 4th May 2006
Project org.eclipse.jdt.core v_664 (cvs).

## What's new in this drop

### Problem Reports Fixed

140168 Ambiguous Failure in Connection with Varargs

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC3 - 4th May 2006
Project org.eclipse.jdt.core v_663 (cvs).

## What's new in this drop

### Problem Reports Fixed

138577 Package content disapear in package explorer
139937 CompletionContext not automatically accepted when using IEvaluationContext
139689 NPE in packages explorer

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC3 - 2nd May 2006
Project org.eclipse.jdt.core v_662 (cvs).

## What's new in this drop

### Problem Reports Fixed

139099 [compiler] Ambiguous method regression error
139137 Increment build failure
139160 IMethod#getParameterNames() should not throw JME if javadoc not parseable
139279 Fup of bug 134110, got CCE changing an external jar contents and refreshing the project
138999 Regression: Fix for 128258 introduces regression in JavaProject.exists()
139569 Batch compiler should check if java home is null when trying to set the extDirs and endorsed dirs
139525 [1.5][compiler] Valid generics involved assignment is flagged as an error
106631 Access rule has no effect

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC2 - 28th April 2006 - 3.2 RELEASE CANDIDATE 2
Project org.eclipse.jdt.core v_661 (cvs).

## What's new in this drop

- Released an improvement for performance tests

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC2 - 27th April 2006
Project org.eclipse.jdt.core v_660 (cvs).

## What's new in this drop

### Problem Reports Fixed

95839 [ast rewrite] problems with single line comments
138672 Bad code completion formatting for Collections.synchronizedMap

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC2 - 27th April 2006
Project org.eclipse.jdt.core v_659 (cvs).

## What's new in this drop

### Problem Reports Fixed

129814 NPE due to CompilationUnit.getContents() returning null
138684 Javadoc of ASTRewrite.getExtendedSourceRangeComputer() refers to inexistent class
135323 [compiler] Anonymous inner class scope error
138435 [search] Stack trace while searching
138167 Java Model Exception when proposal window opened
136095 Type Hierarchy incomplete with illegally parameterized superinterfaces
138507 exception in .class file editor for classes imported via plug-in import
138432 Spec of ICodeAssist#codeSelect() doesn't describe the behavior of empty selection
127570 [compiler][null] lazy initialization coding pattern within loops
136508 Inner Classes in Interfaces No Longer Compiles
97085 (3.1M7) Static import code assist shouldn't propose <package>.*;
137984 [search] Field references not found when type is a qualified member type [regression]
136580 [ast rewrite] Comma is missing between update expressions in the ForStatement
137649 grammar problem in progress message
133737 [1.5][compiler] Eclipse compiler compiles program but javac does not (1 of 2)
129388 [1.5][compiler] Non-public Junit Assert.format accessible to test cases
137634 CompilationParticipant not correctly recording new dependencies
135729 Cant resolve class A, if class A was enhanced in a post compilation step
90438 [compiler][1.5] Two problems: Automatically generated method has wrong generic type; Compilation error with JDK
95829 [assist] toArray proposed twice
137918 [1.5][compiler] instanceof accepts primitive type as left-hand-side
137623 Exception calculating java content assist
137744 [compiler] java.lang.ClassFormatError: test/B (Repetitive method name/signature)
80904 Quick Fix "Assign parameter to new field" doesn't appear with commented type
83685 [assist] Content assist fails when there's a dot ('.') after type name
137203 [1.5][compiler] enclosing parameterized types seem to confuse eclipse's build process
137619 Compiler doesn't log exceptions when a runtime exception occurs
112030 ContentAssist fails with IllegalArgumentException on primitive array class
137456 NPE when trying to view a class file with attached source
133491 Missing code assist in annotation
137298 [compiler] Local variables not reported as not been initialized when more than 64 locals are defined
136972 [reconciler] Error in static init blok with inner classes
137053 Better error reporting when the output directory is a file
126419 ecj should include value of "java.endorsed.dirs" system property in its bootclasspath
137087 Open Type - missing matches when using mixed case pattern
135997 [AST] invalid source range with recovered node
136678 missing @param in internal API (Compiler new constructors, options parameter) + spelling mistake
136946 [1.5][compiler] internal compiler error -- ArrayOutOfBoundException
136886 Open declaration gives NPE in Scope.minimalErasedCandidates
133071 Cycles are wrongly detected.
136543 [1.5][compiler] Eclipse gives a "name clash" error while javac accepts the code
134110 [regression] Does not pick-up interface changes from classes in the build path
104293 [1.5][DOM] Extract local doesn't replace all occurences of expression.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC1 - 13th April 2006 - 3.2 RELEASE CANDIDATE 1
Project org.eclipse.jdt.core v_658 (cvs).

## What's new in this drop

- Fixed failing test on Linux and MacOS

### Problem Reports Fixed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC1 - 12th April 2006
Project org.eclipse.jdt.core v_657 (cvs).

## What's new in this drop

### Problem Reports Fixed

99729 [ast rewrite] first annotation not on new line
136313 Open Type is case-sensitive

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC1 - 12th April 2006
Project org.eclipse.jdt.core v_656 (cvs).

## What's new in this drop

- CamelCase patterns now accept lowercases (see bug 130390).
  For example, `NuPoEx` type string pattern will match `NullPointerException` type but will not match `NoPermissionException`.
  This allow user to reduce matches list on small or common patterns.
- Search Engine now returns subclasses as exact matches while searching for implementors of a class (see bugs 124645 and 122442).

### Problem Reports Fixed

81949 [1.5][compiler] Cycle detected / type hierarchy error
106450 [1.5][assist] Code assist doesn't propose methods when hinting generic methods
124645 [search] for implementors does not find subclasses of binary classes
133848 -sourcepath should also be supported for jars and zip files
136231 encoding of CharOperation.java
136016 [refactoring] CCE during Use Supertype refactoring
135296 opening a special java file results in an "out of memory" message
135838 [search] Improve search progress monitor label
108180 [compiler] Sanity check error with try/finally block
130390 CamelCase algorithm cleanup and improvement
133351 [compiler] No effect assignment diagnosis range isn't correct
121734 Cycle in class hierarchy causes infinite loop in Decoration Calculation
115918 [1.5][compiler] Internal compiler error : NPE in Scope.minimalErasedCandidates
129330 strange statement recovery
135602 [compiler] Codegen bug for continue statement
86293 [search] Search for method declaration with pattern "run()" reports match in binary field instead of anonymous class
135292 [compiler] NPE in ProblemReporter.invalidField plus .log swamping
135217 Compiler class constructor change in 3.2
135083 RangeUtil#isInInterval(...) takes significant amount of time while editing
134976 [completion] relevance of some types aren't correct
125823 Buildpath marker not of marker type 'buildpath_problem'
89686 [1.5][search][enum] Reference to constructors does not include parameters
109691 Importing preferences does not update classpath variables
128562 Javadoc of ITypeBinding#isAssignmentCompatible() is unclear
132191 IMethodBinding.overrides(IMethodBinding) returns true even if the given argument is private.
135110 Duplicate Assert class in org.eclipse.core.internal.expressions
133562 Extract to local variable generates variable called 'enum'
108087 Java conventions default formatter settings confused
110811 [1.5] Raw type binding for reference to non-generic type

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC1 - 5th April 2006
Project org.eclipse.jdt.core v_655a (cvs).

## What's new in this drop

### Problem Reports Fixed

131707 Cannot add classpath variables when starting with -pluginCustomization option
134839 [compiler] Incorrect compile errors reported in 1.3 compliance level
128423 [1.5][compiler] ClassCastException on illegal code fragment
107901 Clarify Javadoc for ASTParser#setUnitName
132841 [1.5][compiler] Incorrectly compared method parameters when member types
132831 [1.5][compiler] Compiler generate brige when not needed
119844 javadoc extraction: type comment
131519 JDK with attached source unnavigable.
92357 ITypeHierarchy#getType() should return an unresolved handle
97494 [1.5][compiler] Inappropriate error level and message for generic type mismatch

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2RC1 - 4th April 2006
Project org.eclipse.jdt.core v_654 (cvs).

## What's new in this drop

### Problem Reports Fixed

134172 Crap Perfomance opening Java file with lots of imports
134255 Unoptimal JavaElementInfo construction
134645 [1.5][compiler] Java Compiler throws internal exception..
134118 [1.5][compiler] 'ambiguous' error on legal static import
96648 Batch compiler - error messages for duplicate output, bootclasspath, sourcepath and extdirs entries could be more explicit
86813 [compiler] step into switch statement locate wrong line
83318 [1.5] 'Open declaration' fails for type variables in class files
134345 Problems from CompilationParticipants do not get cleaned up unless there are Java errors
133918 [1.5][compiler] Duplicate return; in CastExpression line 258
89347 [compiler] public constructor of protected inner class invisible in subclass
134064 [1.5][compiler] Duplicate error messages when an annotation value expects a boolean but gets an array

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 30th March 2006 - 3.2 MILESTONE 6
Project org.eclipse.jdt.core v_653 (cvs).

## What's new in this drop

### Problem Reports Fixed

134064 recreateModifiedClassFileInOutputFolder only works in default package

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 29th March 2006
Project org.eclipse.jdt.core v_652 (cvs).

## What's new in this drop

### Problem Reports Fixed

133738 [compiler] Eclipse compiler compiles program but javac does not (2 of 2)
133748 Javac task includes all files from the extDirs list

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 29th March 2006
Project org.eclipse.jdt.core v_651 (cvs).

## What's new in this drop

- Added new option to JavaCore

      * BUILDER / Recreate Modified class files in Output Folder
      *    Indicate whether the JavaBuilder should check for any changes to .class files
      *    in the output folders while performing incremental build operations. If changes
      *    are detected to managed .class files, then a full build is performed, otherwise
      *    the changes are left as is. Tools further altering generated .class files, like optimizers,
      *    should ensure this option remains set in its default state of ignore.
      *     - option id:         "org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder"
      *     - possible values:   { "enabled", "ignore" }
      *     - default:           "ignore"

### Problem Reports Fixed

131935 [1.5][compiler] Illegal generic conversion allowed.
129082 [regression] Refresh->Run action deletes all files in 'bin' directory and recompiles all classes
132613 NPE in java builder when trying to retrieve a file
106090 [generics] Method invocation resolution depends on declaration order
133440 [1.5][compiler] JDT allows annotation to have a null default
130982 META-INF directories shown as empty META-INF.* packages in J2EE Navigator

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 27th March 2006
Project org.eclipse.jdt.core v_650 (cvs).

## What's new in this drop

- Types, fields and methods annotated with the @Deprecated annotation are now rendered as deprecated in the Outline view.

### Problem Reports Fixed

133292 [compiler] Compiler accepts spurious semicolon in array initialiser
89807 Outliner should recognize @Deprecated annotation
123476 [compiler] misleading error message (root cause not reported)
133334 Indexing project 3 times during import
132494 JavaModelException opening up class file in non java project

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 26th March 2006
Project org.eclipse.jdt.core v_649 (cvs).

## What's new in this drop

### Problem Reports Fixed

130359 [compiler][null] wrong warning in try/catch with RuntimeException
128962 [compiler][null] incorrect analysis within try finally with a constructor
132974 [compiler] missing error on uninitialized final local
120892 [assist] inconsistent completions for constructors an methods
129371 [compiler][null] False positives from null reference analyzer with break
132651 Javadoc of CompletionContext#getTokenEnd() and CompletionProposal#getCompletionLocation are not correct.
94925 [search] Bad performance on showing package selection dialog when creating new import group
131720 [compiler] optimization: the distribution of the number of elements into CharArrayCache instances suggest that smaller instances should be optimized/removed
131921 NPE caugth in DefaultBindingResolver.resolveName(Name)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 22nd March 2006
Project org.eclipse.jdt.core v_648 (cvs).

## What's new in this drop

### Problem Reports Fixed

132813 [compiler] NPE in Javadoc.resolve(Javadoc.java:196) + log swamped

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 21st March 2006
Project org.eclipse.jdt.core v_647 (cvs).

## What's new in this drop

### Problem Reports Fixed

123943 [1.5][compiler] Invalid ambiguous method error
129056 compiler fails to detect ambiguous method when autoboxing and implementing an interface
132575 Incorrect classpath are not reported inside the log xml
128276 Breakpoint Propertie Error.
129991 [refactoring] Rename sourcefolder fails with JME
131459 Java model returns stale resolved source type for binary type
131937 JDT core adding problem markers to non-java projects
132120 [compiler][null] NPE batch compiling JDT/Core from HEAD
132072 [compiler][null] AIOOBE in null check compiling com.sun.org.apache.xalan.internal.res.XSLTErrorResources from JDK 1.5 source
131681 NullPointerException during javaCompletionProposalComputer
128547 [compiler] null reference analysis: false positive in try/finally

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 14th March 2006
Project org.eclipse.jdt.core v_646 (cvs).

## What's new in this drop

- The ASTParser can now be used without initializing JDT/Core. See bug 87852 for details.

### Problem Reports Fixed

87852 ASTParser fails when called from another program
99114 [search] OOM Exception in Java search
121569 [Import/Export] Importing projects in workspace, the default build order is alphabetical instead of by dependency
131373 Verbose mode of the ant adapter should be a real verbose mode
122650 ASTParser.createBindings(IJavaElement[]) returns wrong element
130140 ASTParser should specify failure for IClassFile without source
130317 ASTParser with IClassFile as source creates type bindings that are not isEqualTo(..) binary bindings
130683 NPE in DeltaProcessingState.addElementChangedListener()
130980 [compiler] When the contents of the unit cannot be retrieved, the compiler should report an error
130330 bogus null check in BindingComparator#isEqual(MethodBinding, MethodBinding, HashSet)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 7th March 2006
Project org.eclipse.jdt.core v_645 (cvs).

## What's new in this drop

- Compilation participant reporting problems using `BuildContext#recordNewProblems(...)` now need to declare the problems marker type as being managed for this problems to be persisted as markers by the Java builder. Declaring a managed marker type is done using the 'managedMarker' sequence in the 'compilationParticipant' extension point.
- Compiler now supports `@SuppressWarnings("cast")` for silencing unnecessary cast diagnostics.

### Problem Reports Fixed

130543 [1.5][compiler] Error creating array of generics of inner class.
130528 NPE in FieldBinding.getAnnotations(..) for length field of array
130516 [1.5][compiler] Add support for "cast" warning token
105801 [1.5][compiler] Too many warnings for non-matching types of arguments of varargs call
128418 [1.5][compiler] eclipse doesn't emit unchecked warning
129957 Binary class file editor shows "implements" instead of "extends" for an interface's super-interfaces
104536 [compiler] Ant adapter doesn't use the right source and target values
130117 [compiler] Wrong error generated "The method Inner in type Inner can only set one of public / protected / private"
129190 [1.5][compiler] Contrary behaviour to Sun's compiler concerning typed classes, non-static inner classes and inheritence
129909 Recovered AST - VariableDeclaratorId isn't recovered
130017 [1.5][compiler] @Override cannot be used for static methods
100919 Closing or deleting projects leads to Java model error
129624 AccessRuleSet#messageTemplates takes a lot of memory
117758 [compiler] private dropped from inner class constructor
128219 Builder participants should create their own marker types
61189 Error messages with "AssignmentOperator ArrayInitializer" could be improved
128063 [1.5][compiler] Compiler reports errors against compilabale code
116072 cached classpath containers not removed when project deleted
119238 [1.5][compiler] Unchecked generic type operation warning if access to static field of parameterized type
122775 [1.5][compiler] StackOverflow in compiler
114140 assertion failed when opening a class file not not the classpath

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 28th February 2006
Project org.eclipse.jdt.core v_644 (cvs).

## What's new in this drop

- For 1.5 targets (or when toggling preference for Inlining Finally Blocks), the compiler is inlining finally blocks at every exit point inside a try statement. With fix for bug 128705, the inlining got smarter, and identical exit point are now sharing the same inlined finally block (to be truly identical, exit points must denote the same break/continue label, or be return from void method, or return the same constant or null value.
- Fix for bug 127628 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

128814 [prefs] NPEs in log during tests
127628 [index] CodeAssist doesn't filter deprecated types
128848 closing bracket added into comment upon format
128258 Project name of java elements from external file is _E_X_T_E_R_N_A_L_P_R_O_J_E_C_T_
127241 SIOOBE in StubUtility.hasConstantName during quick fix
127395 AST: SimpleName must not be empty
128014 [compiler][null] invalid analysis when redundant check is done
129555 [dom] The length of a recovered fake SimpleName should be 0
129241 [Javadoc] deprecation warning wrongly reported when ignoring Malformed Javadoc comments
128877 [search] reports inexistent IMethod for binary constructor of inner class
127919 [compiler][null] non String objects references involved into string concatenation should not raise null ref. warnings
113371 Performance: discardWorkingPerCopyInfo emptys Cache before building Delta
128705 [Compiler][1.5] Jsr inlining limitation in the compiler
129305 [compiler] Could optimize "return null" in presence of subroutine
129306 [compiler] inlineJSR may cause entering twice finally block
129096 Wrong positions for array of parameterized type as a parameter
128961 AST: errors with parentheses expressions in for-init initialisers
128960 AST: errors with parameter array and full qualified types
129361 Uninitialized fields in jdt/core code
102160 [compiler][1.5] Only first error is reported on circularity references between annotations
127275 [compiler] Generalize ProblemReporter#localSourceEnd
128840 [compiler] Wrong warning for unnecessary semicolon as else statement
129316 [compiler] Incremental compile confuses unsound type hierarchy and deprecation
125956 [1.5][compiler] Failed to compile Jaxb 2.0
129142 VariableDeclarator isn't recovered by statments recovery
128594 Javadoc problems with category CAT_INTERNAL
128169 [codeassist] Type parameter name of method declaration proposal must not create conflit
128823 ArrayIndexOutOfBoundsException in log

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M6 - 21st February 2006
Project org.eclipse.jdt.core v_643 (cvs).

## What's new in this drop

- In problem view, all optional errors treated as fatal are now grouped into the "Fatal errors" category. Note that there is an option to control whether optional errors are intended to be fatal or not, by default they are considered fatal (see `Preferences>Java>Compiler>Building>Treat configurable errors like fatal errors...`
- Build states for very large projects should now save in a fraction of the time.
- Diagnosis for assignment with no effect can now recognize following patterns:
  - `int i = i = 0;`
  - `i = i = 0;`
  - `i = ++i;`

### Problem Reports Fixed

106446 [compiler] "Cannot be resolved to a type" errors for some default top-level class
128045 [assist] Autocomplete on variable names fails if name starts with a part of an existing prefix
100369 [compiler] No effect assignment diagnosis could be made smarter
127323 context assist exception when trying to autocomplete inside a malformed enum switch
127244 [compiler] Null reference analysis doesn't understand assertions
128560 [compiler] Java 1.4 compiler (UI?) incorrectly reports incompatible return type
128077 AST - instanceof - getLength returns wrong length
127996 Performance: long time spent in State.write(..) looping over ArrayList<char[][]>
128389 [compiler][1.5] generic inner type cannot extend Throwable
127583 [1.5][compiler] Call to constructor with mismatched type parameter and arguement not detected
128217 Grouping all fatal problems together

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 16th February 2006 - 3.2 MILESTONE 5
Project org.eclipse.jdt.core v_642 (cvs).

## What's new in this drop

- Added API `CategorizedProblem#getExtraMarkerAttributeNames()` and `getExtraMarkerAttributeValues()` to allow to specify extra attributes in problem markers.
- Added 'managedMarker' sequence on 'compilationParticipant' extension point to declare marker types that are persisted by the Java builder.

### Problem Reports Fixed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 15th February 2006
Project org.eclipse.jdt.core v_641 (cvs).

## What's new in this drop

- Fix for bug 128033 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

128033 [1.5][search] Not all references are found in standard annotations
128008 type parameter with final bound is categorized as non-optional

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 15th February 2006
Project org.eclipse.jdt.core v_640 (cvs).

## What's new in this drop

- The Java model now better accommodates very big JAR files (i.e. containing lots of packages). Before 3.2 M5, such JAR files would cause the Java model cache to overflow frequently, which induced poor performance, since the same JAR file kept being read over and over again. A workaround was to start Eclipse with more memory to enjoy good performance again (as the cache size is a function of the memory size).

  JAR files are now read more selectively, and thus interesting portions remain in the cache longer without consuming lots of memory. User editing experience is thus significantly improved on large workspaces containing big JARs. As a consequence, our experiments show that the memory requirement for developing Eclipse in Eclipse can be lowered to 128MB only (i.e. passing -Xmx128m to the VM) as opposed to 256MB as currently specified in the eclipse.ini file.

- Removed `IMethodBinding#isOverriding()` API introduced during 3.2 in DOM AST, as it doesn't meet client expectation, who isn't even using it (also see bug 90660).
- Added optional compiler diagnosis for signaling fall-through switch cases.

      * COMPILER / Reporting Switch Fall-Through Case
      *    When enabled, the compiler will issue an error or a warning if a case may be
      *    entered by falling through previous case. Empty cases are allowed.         *
      *     - option id:         "org.eclipse.jdt.core.compiler.problem.fallthroughCase"
      *     - possible values:   { "error", "warning", "ignore" }
      *     - default:           "ignore"

  Fall-through warnings can be silenced using `@SuppressWarnings("fallthrough")`.
  Also see bug 67836 for details.

### Problem Reports Fixed

67836 [compiler] warning on fall through
127393 uncategorized problems
127213 Flags class missing methods

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 13th February 2006
Project org.eclipse.jdt.core v_639 (cvs).

## What's new in this drop

- Code Assist can filter deprecated types and members.
  When filtering is enabled all deprecated types and members aren't proposed unless they are in the same compilation unit as the completion location.
  Added new options to control this new behavior.

       *  CODEASSIST / Activate Deprecation Sensitive Completion
       *    When active, completion doesn't show deprecated members and types.
       *     - option id:         "org.eclipse.jdt.core.codeComplete.deprecationCheck"
       *     - possible values:   { "enabled", "disabled" }
       *     - default:           "disable"
       *

### Problem Reports Fixed

126564 [1.5][compiler]Inconsistent error reporting between static import and direct field access
127239 BuildContext needs to be spec'ed
127296 [codeasist]Add the ability to hide deprecated methods from Code Assist

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 13th February 2006
Project org.eclipse.jdt.core v_638 (cvs).

## What's new in this drop

- Added optional null reference analysis for local variables. It can be activated using the following preference: `Window>Preferences>Java>Compiler>Errors/Warnings>Potential programming problems>Null reference`. Also see bug 110030 for details.
  Note that the analysis is fairly conservative, aligned on definite assignment rules. It is intentionally not complaining on all possible cases, but only considering these for which a suspicion gets introduced (e.g. if later on a null check is performed). The analysis could be further improved by introducing annotations (@CanBeNull, @CannotBeNull) but these would need to get standardized first.
  Null reference warnings can be silenced using `@SuppressWarnings("null")`.

### Problem Reports Fixed

126803 Compile error in LocationElementTokenizer.java in source build
127255 [compiler] Compiler incorrectly reports "variable may not have been initialized"
125731 [api] Separate category id for 'type restriction' problems
116647 [compiler] Incorrect warning about unnecessary cast

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 10th February 2006
Project org.eclipse.jdt.core v_637 (cvs).

## What's new in this drop

- Added constants in the code formatter.
  `org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_ANNOTATION_DECLARATION_HEADER` `org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_IN_EMPTY_ANNOTATION_DECLARATION`
  See bug 126625 for details.
- Code Assist: Improve variable name completion
  Variable name completion try to keep typed characters even if they don't match to a part of the type name.
  e.g: Element rootE| is completed to Element rootElement.
- Added API `org.eclipse.jdt.core.CorrectionEngine#getAllWarningTokens()` to get all the valid warning tokens, which can be used into `@SuppressWarnings` annotations. See bug 126326 for details.
- Changed the way to flag DOM AST nodes as RECOVERED.
  Now only nodes which really contains added/removed/replaced tokens are flagged. A parent of these kind of node isn't flagged. Sometimes our heuristic can't recognize the really recovered node, so in this case all potentially recovered nodes are flagged.
- Fix for bug 119203 has been removed due to bad side effects (see bug 127048)

### Problem Reports Fixed

127048 [search] References to Java element 'CorrectionEngine' not found
98684 [search] Code assist shown inner types of unreleated project
127078 [compiler] inappropriate error location for QualifiedNameReferences
127181 New API elements missing @since
127144 beginTask/done not called on progress monitor to ASTParser
123470 AST: new type IResolvedAnnotation
108539 Error popup at breakpoint in tomcat project
99006 Incorrect warning when a non-varargs method overrides a varargs method.
120563 Javadoc has many references to .java where all java source files are meant
42253 [plan][dom/ast] Make AST more robust against syntax errors
125006 ClassFile wastes memory
126156 IBinding#getJavaElement() should spec 'null' for anonymous constructor
126326 [api] all supported SuppressWarning tokens
121652 100% CPU usage when changing application focus or saving
120838 typos in spec of ICodeAssist
126227 default constructor not resolving for method-level classes
124525 [assist] Smarter Autocompletion for variable names
126625 Added missing options for formatting annotation types
126673 NPE in Buffer.addBufferChangedListener

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 7th February 2006
Project org.eclipse.jdt.core v_636 (cvs).

## What's new in this drop

- Added API to ASTRewrite to get actual value of a property as managed by the rewriter. See bug 96663 for details.
- Added an application to format code in a headless environment. See bug 75333 for details.
- Java projects can now depend on other Java projects that have replaced the default builder with their own builder, such as an Ant builder. We will now trust that the Ant build was successful and propagate any changes to the affected class files.
  Note: When projects are associated with the Java builder, it is able to track structural changes to classfiles (signatures etc...) and only recompile dependents of structurally changed classfiles. In the absence of a Java builder on a prereq project, all modified classfiles will be considered as (potentially) structurally changed; and thus recompilation will be less optimal.
- Access restriction warnings (discouraged & non-accessible) can now be silenced using `@SuppressWarnings("restriction")`. Note: if certain restrictions are configured as errors, the annotation has no effect.
- Added API `org.eclipse.jdt.core.formatter.CodeFormatter#createIndentationString(int)` to return the indentation string corresponding to the given indentation level.
  See bug 111446 for details.
- Added new class `org.eclipse.jdt.core.formatter.IndentManipulation` to deal with indentations.
  See bug 111446 for details.
- Fix for bug 124469 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

99497 In some cases Java project refresh should kick clean build
126598 [DOM][AST] String[] s = {"",,,} leads to wrong positions after conversion
126347 AIOOBE in CompilerUnitScope
126148 IAE when typing String[] s = {"",,,};
126330 Type reference not found in jar file if sources was not already opened
126321 [options] Add constant in JavaCore for nullReference
126160 method from outer scope not resolved with erroneous arguments
97693 [1.5][compiler] Unchecked generic cast gives false compiler error.
125965 [prefs] "Export/Import preferences" should let user to choose wich preference to export/import
124469 [1.5][search] does not find references to enum type in binary annotation
75333 [format] standalone code reformatter
122987 [1.5][compiler] Boxing conversion should be performed in conditional expression
125807 NPE in ResolvedMemberValuePair#init()
79359 Project cannot depend on a project built by ant
126091 [1.5][compiler] Java compiler generates extra field for enums with abstract methods
126191 Code formatter doesn't format properly empty enums
126177 [1.5][compiler] Visibility issue with intersection type
126180 [1.5][compiler] NPE reporting invalid enclosing type
114456 @SuppressWarnings for access restriction
126087 [1.5][compiler] Java compiler generates incorrect byte code for empty enums
124611 IAE in Signature.createCharArrayTypeSignature
90660 [plan] Consider surfacing override information available in compiler AST in DOM AST
111446 API to work with tabWidth/indentWidth and indents
126015 reconcile does not provide AST if there's no problem requestor
125903 [javadoc] Treat whitespace in javadoc tags as invalid tags
125301 Handling of classes with $ in class name.
125961 Add "emacs style" output to batch compiler
125953 UnconditionalFlowInfo.java has non-UTF-8 character
124853 [compiler] Compiler generates wrong code (try-catch-finally)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 31st January 2006
Project org.eclipse.jdt.core v_635 (cvs).

## What's new in this drop

- Added API `org.eclipse.jdt.core.dom.IVariableBinding#isParameter()` in order to fix bug 106545.
- Added API `BindingKey#toSignature()` to transform a binding key into a resolved signature.
- Added marker attribute "categoryId" onto Java problem markers.
- Added API `WorkingCopyOwner#newWorkingCopy(String,IClasspathEntry[],IProblemRequestor,IProgressMonitor)` for editing compilation units outside the workspace.
- The temporary option JavaCore.COMPILER_STATEMENTS_RECOVERY is removed

### Problem Reports Fixed

119452 CategorizedProblem's category should be available from markers
125676 @category should not read beyond end of line
125360 IJavaProject#setOption() doesn't work if same option as default
106545 API: IVariableBinding.isMethodParameter
125641 Problems enabling AST with recovery
125675 @category not reflected in outliner in live fashion
125570 [1.5][compiler] Named inner inner classes have illegal names
124943 [1.4][compiler] 1.4 Compiler Compliance not working for compareTo
124810 Strange field binding has inconsistent hierarchy
125291 Enable conditional loading of APT
125178 [search] AIOOBE in PatternLocator when searching for dependency extent from manifest
124388 [DOM AST] Method defaults not resolved
125270 ASTParser fails to parse text to ArrayInitializer expression
100869 [1.5][compiler] The eclipse compiler thinks my method is ambiguous but javac does not
65637 [model] Excluded package still in Java model
125217 Two failures in the BatchCompilerTests on MacOS
124290 AbstractImageBuilder writeClassFileBytes creates resources before calling setDerived
124145 Questions on IAccessRule.ignoreIfBetter
125047 IMethodBinding#getJavaElement() should spec 'null' for default constructor
120079 [api] need solution for BindingKey#internalToSignature()
125036 ResolvedMemberValuePair#buildDOMValue(..) uses "new Boolean(..)"
121715 Util#getJavaLikeExtensions doesn't consider Java-like content types
125067 Should not resolved binary fields/methods when computing hierarchy
61013 [plan][model] Minimal support for editing units outside workspace

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 24th January 2006
Project org.eclipse.jdt.core v_634 (cvs).

## What's new in this drop

- Added EFS support for zip and jar files. JDT/Core now fully supports EFS.
- Added support for optional classpath entries. When optional, a missing entry is not complained against, and simply ignored. In order to be optional, an entry must carry an `IClasspathAttribute#OPTIONAL` extra attribute. The possible values for this attribute are `"true"` or `"false"`. When not present, `"false"` is assumed. If the value of this attribute is `"true"`, the classpath entry is optional.
- Added support for statement recovery in Parser
  Currently this new behavior is incomplete (mapping non-terminals -> terminals) and disabled. The option JavaCore.COMPILER_STATEMENTS_RECOVERY must be set to ENABLED to use it (It's a temporary option).
- Added API for DOM ASTNode flag: `ASTNode.RECOVERED`
  It is a flag constant indicating that this node or a part of this node is recovered from source that contains a syntax error detected in the vicinity.
- Added API: `ASTParser#setStatementsRecovery(boolean enabled)`
  This method allow to enable statements recovery for ASTParser. Statements recovery is disabled by default.
- Added API: `ICompilationUnit#reconcile(int astLevel, boolean forceProblemDetection, boolean enableStatementsRecovery, WorkingCopyOwner owner, IProgressMonitor monitor)`
  This method allow to enable statements recovery for reconcile operation.
- Added two warning tokens to the batch compiler options: `discouraged` and `forbidden`, so as to suppress warnings about access rules restrictions.

### Problem Reports Fixed

110030 [compiler] Provide support for null reference analysis
99620 [compiler] The batch compiler should not print to the console when taking another output stream in input
124212 Eclipse compiler produces incomplete debug info for variables
124533 [batch] Ability to turn off discouraged references warnings
124471 ResolvedAnnotations are not completely resolved
124346 [1.5][compiler] Unexpected deprecation warning when @deprecated tag and @Deprecated annotation are mixed
123522 @SuppressWarnings("unused") does not suppress "unused import" warning
122442 [search] API inconsistency with IJavaSearchConstants.IMPLEMENTORS and SearchPattern
123437 Support EFS for zip/jar files
124296 Recovered ast nodes don't nest properly
124101 [compiler] NPE when resolving array initializer in fault tolerant mode
95056 [1.5][compiler] @Deprecated not recognized
123514 [1.5] [assist]ArrayStoreException in content assist for malformed field
122615 validate classpath propose to exlude a source folder even though exlusion patterns are disabled
124117 Optional classpath entry

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 17th January 2006
Project org.eclipse.jdt.core v_633 (cvs).

## What's new in this drop

- Added API `IAccessRule#IGNORE_IF_BETTER` that indicates that the rule should be ignored if a better rule is found. E.g. if a rule `K_NON_ACCESSIBLE | IGNORE_IF_BETTER` matches type p.X and a rule `K_DISCOURAGED` that also matches p.X is found after the first one, then p.X will be reported as discouraged.
- Added the support to compute the stack map frames (requires a 6.0 VM to run). See bug 109980 for details.
  This is still experimental.
- Added API for the configuration of the Import Rewrite: `ImportRewrite#setImportOrder()`, `ImportRewrite#setOnDemandImportThreshold()` and `ImportRewrite#setStaticOnDemandImportThreshold()`. For compatibility reasons the actual configuration option values stay in JDT.UI

### Problem Reports Fixed

98127 Access restrictions started showing up after switching to bundle
122316 Problems using new Compilation Participant extension point
123893 CCE in ResolvedAnnotation
124003 JavaCore should spec 1.6 compliance/source compatibility
87718 Listener on build process on a per file basis.
122881 [1.5][compiler] Multiple interface inheritance is incompatible with Sun compiler
109980 [plan] Add support for StackMapTable attribute as per jsr-202
122995 [1.5][compiler] Access rules don't apply to generic types
123721 two types of 'remove' for TODO task tags
123396 Regression: NameLookup creation longs around 1mn on project with heavy hiearchy (200 src folders * 200 packages)
103615 [organize import] Organize imports should have separate "limit" for static import *-ing

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M5 - 10th January 2006
Project org.eclipse.jdt.core v_632 (cvs).

## What's new in this drop

- Added Import Rewrite as API (`org.eclipse.jdt.core.dom.ImportRewrite`). The import rewriter is used to add new imports according to a user specified import order. See bug 73054 for details.
- Added new APIs for checking modifiers (`org.eclipse.jdt.core.dom.Modifier#isPublic(), org.eclipse.jdt.core.dom.Modifier#isStatic(), ...`). See bug 122460 for details.
- Added new API `org.eclipse.jdt.core.IJavaElement#String getAttachedJavadoc(IProgressMonitor monitor)`. See bug 122506 for details. The former API `org.eclipse.jdt.core.IJavaElement#String getAttachedJavadoc(IProgressMonitor monitor, String defaultEncoding)` has been deprecated.
- Added new API `org.eclipse.jdt.core.dom.ITypeBinding#getComponentType()` in order to retrieve the binding corresponding to the component type of the array binding. See bug 120264 for details. This API is still subject to change before 3.2 release.
- Added optional compiler diagnosis for signaling method parameter assignments.

      * COMPILER / Reporting Parameter Assignment
      *    When enabled, the compiler will issue an error or a warning if a parameter is
      *    assigned to.
      *     - option id:         "org.eclipse.jdt.core.compiler.problem.parameterAssignment"
      *     - possible values:   { "error", "warning", "ignore" }
      *     - default:           "ignore"

### Problem Reports Fixed

123096 [javadoc][assist] @linkplain no longer proposed when 1.4 compliance is used
123078 [1.5][compiler] Problem inferring from #getClass() invocation
103839 Format of variablesAndContainers.dat doesn't scale well
121026 [javadoc][assist] @link method proposal has superfluous space
120130 IField.getConstant() fails for a certain constant
122755 Exceptions thrown if you type a period immediately after final slash of Javadoc inside a method
117282 Package declaration inserted on wrong CU while copying class if names collide and editor opened
118507 Autobuild churn during classpath init
119249 codeResolve, search, etc. don't work on constructor of binary inner class
118823 [model] Secondary types cache not reset while removing _all_ secondary types from CU
122763 [builder] OutOfMemoryError while cleaning org.eclipse.jdt.core project - this fix triggers a full rebuild of the workspace
119161 classes in "deep" packages not fully recognized when using tight inclusion filters
108830 [compiler] Improve switch fault-tolerance
122610 [1.5][compiler] Qualified this has generic type binding instead of parameterized one
121076 Wrong field gets renamed
73054 [import rewrite] Make Import Rewriter API
122618 [assist][javadoc] Javadoc code assist should support @category tag
122616 [javadoc] IMember.getCategories() only returns first category
53773 [compiler] Warning on assignments to parameters
122460 Why is checking a modifier so code intensive
120816 [search] NullPointerException at ...jdt.internal.compiler.lookup.SourceTypeBinding.getMethods
76266 [compiler] Access restriction should also apply to inherited members - this fix triggers a full rebuild of the workspace
122506 [hovering] javadoc hover shows a broken string from DBCS javadoc html files.
116833 IMethodBinding#isEqualTo(..) returns true for methods in anonymous classes with error in parent
120264 [api] have array binding X[][][], want X[][] and X[]
116615 Use a publicID in the DOCTYPE of the compilation XML log
120263 [compiler] missing binding on array initializer
120410 Wasted space on problems due to large underlying char[]
120875 Javadoc extraction might includes optional annotation type member information for an annotation type
121187 Javadoc contains undefined HTML entity &ast;
119175 [compiler] Wrong pc in the line number table attribute
118897 ASTParser resolves bindings without request

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 14th December 2005 - 3.2 MILESTONE 4
Project org.eclipse.jdt.core v_631 (cvs).

## What's new in this drop

### Problem Reports Fixed

120902 Member.getJavadocRange() causes AIOOBE

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 14th December 2005
Project org.eclipse.jdt.core v_630 (cvs).

## What's new in this drop

### Problem Reports Fixed

120847 [javadoc] AIOOBE while getting attached javadoc in Javadoc view

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 13th December 2005
Project org.eclipse.jdt.core v_629 (cvs).

## What's new in this drop

- The constant `JavaCore.CODEASSIST_TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC` has been deprecated and it will be removed after M4. Use `JavaCore.TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC` instead.

### Problem Reports Fixed

120640 [javadoc] Open External Javadoc fails for nested binary types
120597 JME extracting Javadoc for public fields from 1.5 doc
120637 javadoc extraction: includes field title for Java 5 classes
120559 Getting Javadoc from attached Javadoc gives JavaModelException
120545 Misleading constant: CODEASSIST_TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC
120522 [assist] No proposal in @Target annotation attributes

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 12th December 2005
Project org.eclipse.jdt.core v_628 (cvs).

## What's new in this drop

### Problem Reports Fixed

120350 [model] Secondary type not found by code resolve

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 9th December 2005
Project org.eclipse.jdt.core v_627 (cvs).

## What's new in this drop

- Change the default value of JavaCore#CODEASSIST_CAMEL_CASE_MATCH to "enabled" as bug 114098 is fixed.
- Added support for EFS on non zip file. Support for zip and jar files is blocked by bug 119244

### Problem Reports Fixed

120092 [search] Java like extensions functionality causes performance issue for search engine
117740 Parameter names completion should be done asynchronoulsy
110422 [search] BasicSearchEngine doesn't find all type declarations
110291 [search] BasicSearchEngine return constructor declarations that doesn't exist in source
83064 [plan][1.5] Unidentical bindings for declaration of and reference to Class.MethodArray
119545 [search] Binary java method model elements returned by SearchEngine have unresolved parameter types

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 6th December 2005
Project org.eclipse.jdt.core v_626 (cvs).

## What's new in this drop

### Problem Reports Fixed

119430 Potential performance problem in getViolatedRestriction()
113944 [plan] Support for refactoring of JAR files

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 6th December 2005
Project org.eclipse.jdt.core v_625 (cvs).

## What's new in this drop

- Added API methods on IJavaProject to find secondary types while searching for type on a project (see bug 118789):

      	/**
      	 * Same functionality as {@link #findType(String)} but also look for secondary
      	 * types if given name does not match a compilation unit name.
      	 *
      	 * @param fullyQualifiedName the given fully qualified name
      	 * @param progressMonitor the progress monitor to report progress to,
      	 * 	or null if no progress monitor is provided
      	 * @exception JavaModelException if this project does not exist or if an
      	 *		exception occurs while accessing its corresponding resource
      	 * @return the first type found following this project's classpath
      	 * with the given fully qualified name or null if none is found
      	 * @see IType#getFullyQualifiedName(char)
      	 * @since 3.2
      	 */
      	IType findType(String fullyQualifiedName, IProgressMonitor progressMonitor) throws JavaModelException;
      	/**
      	 * Same functionality as {@link #findType(String, WorkingCopyOwner)}
      	 * but also look for secondary types if given name does not match
      	 * a compilation unit name.
      	 *
      	 * @param fullyQualifiedName the given fully qualified name
      	 * @param owner the owner of the returned type's compilation unit
      	 * @param progressMonitor the progress monitor to report progress to,
      	 * 	or null if no progress monitor is provided
      	 * @exception JavaModelException if this project does not exist or if an
      	 *		exception occurs while accessing its corresponding resource
      	 * @return the first type found following this project's classpath
      	 * with the given fully qualified name or null if none is found
      	 * @see IType#getFullyQualifiedName(char)
      	 * @since 3.2
      	 */
      	IType findType(String fullyQualifiedName, WorkingCopyOwner owner, IProgressMonitor progressMonitor) throws JavaModelException;
      	/**
      	 * Same functionality as {@link #findType(String, String)} but also look for
      	 * secondary types if given name does not match a compilation unit name.
      	 *
      	 * @param packageName the given package name
      	 * @param typeQualifiedName the given type qualified name
      	 * @param progressMonitor the progress monitor to report progress to,
      	 * 	or null if no progress monitor is provided
      	 * @exception JavaModelException if this project does not exist or if an
      	 *		exception occurs while accessing its corresponding resource
      	 * @return the first type found following this project's classpath
      	 * with the given fully qualified name or null if none is found
      	 * @see IType#getFullyQualifiedName(char)
      	 * @since 3.2
      	 */
      	IType findType(String packageName, String typeQualifiedName, IProgressMonitor progressMonitor) throws JavaModelException;
      	/**
      	 * Same functionality as {@link #findType(String, String, WorkingCopyOwner)}
      	 * but also look for secondary types if given name does not match a compilation unit name.
      	 *
      	 * @param packageName the given package name
      	 * @param typeQualifiedName the given type qualified name
      	 * @param owner the owner of the returned type's compilation unit
      	 * @param progressMonitor the progress monitor to report progress to,
      	 * 	or null if no progress monitor is provided
      	 * @exception JavaModelException if this project does not exist or if an
      	 *		exception occurs while accessing its corresponding resource
      	 * @return the first type found following this project's classpath
      	 * with the given fully qualified name or null if none is found
      	 * @see IType#getFullyQualifiedName(char)
      	 * @since 3.2
      	 */
      	IType findType(String packageName, String typeQualifiedName, WorkingCopyOwner owner, IProgressMonitor progressMonitor) throws JavaModelException;

  Note that previously existing find type API methods:
  - `IJavaproject#findType(String)`
  - `IJavaproject#findType(String, WorkingCopyOwner)`
  - `IJavaproject#findType(String, String)`
  - `IJavaproject#findType(String, String, WorkingCopyOwner)`
  will not find secondary types (same behavior than for 3.1 version).
  This means that fix for bug 36032 was slightly modified as it introduced an non-deterministic behavior of these API methods (see bug 118789 for the whole story...).
- Added API `SearchParticipant#removeIndex(IPath)` to remove both index file from a given location and its corresponding Index in IndexManager cache.
- Added API `IJavaProject#setRawClasspath(IClasspathEntry[], IPath, boolean, IProgressMonitor)` to change the output location as well as the classpath without touching resources.
- Added constant constant JavaCore#JAVA_SOURCE_CONTENT_TYPE to retrieve the Java source content type from the content type manager (see org.eclipse.core.runtime.content.IContentTypeManager#getContentType(String))

### Problem Reports Fixed

119108 Access Rules and Path separators
110593 [1.5][compiler] NPE in ProblemReporter
115693 [1.5][compiler] Unnecessary double checkcast instruction emmited
118789 IJavaProject#findType(String) returns null for secondary type quickly after creation
118876 [dom] TypeDeclaration nodes aren't flagged as MALFORMED
105592 Enum switch statement compile error
118888 Need an entry point to create a org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader using a stream
118092 Eclipse hangs on code assist when writing ?<c
116650 [search] SearchParticipant has no way to remove specific index file from IndexManager cache
118798 Unexpected JME on IMethod.getParameterNames
114571 concurrent access to HashMap
71460 [model] Non *.java file association with Java contents.
118397 [javadoc][assist] No completion available while completing inside a qualified reference
118393 ICompilationUnit.findPrimaryType: Should use JavaCore.removeJavaLikeExtension

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 29th November 2005
Project org.eclipse.jdt.core v_624 (cvs).

## What's new in this drop

- Added API `IJavaProject#setRawClasspath(IClasspathEntry[], boolean, IProgressMonitor)` to set the classpath without touching the .classpath file.
- Added API `org.eclipse.jdt.core.compiler.CharOperation#equals(char[], char[], int, int, boolean)`.
- Added API `org.eclipse.jdt.core.compiler.CharOperation#replace(char[], char[], char, int, int)`.
- Plugin version now respects new versionning requirements. See plugin versioning and bug 99393.
- Fix for bug 36032 required the index version to be incremented. Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
- Added API `IMember#getOccurrenceCount()` to return the relative position of the member in the source.
- Added API `WorkingCopyOwner#newWorkingCopy(String,IProgressMonitor)` to create a new working copy without an underlying resource.
- Added API on TypeReferenceMatch to report local element and other elements while searching for type references (see bug 110336):

      	/**
      	 * Returns the local element of this search match.
      	 * This may be a local variable which declaring type is the referenced one
      	 * or a type parameter which extends it.
      	 *
      	 * @return the element of the search match, or null if none or there's
      	 * 	no more specific local element than the element itself ({@link SearchMatch#getElement()}).
      	 */
      	public final IJavaElement getLocalElement()
      	/**
      	 * Returns other enclosing elements of this search match.
      	 *
      	 * If {@link #getLocalElement()} is not null, these may be other
      	 * local elements such as additional local variables of a multiple local
      	 * variables declaration. Otherwise, these may be other elements such as
      	 * additional fields of a multiple fields declaration.
      	 *
      	 * @return the other elements of the search match, or null if none
      	 */
      	public final IJavaElement[] getOtherElements()
      	/**
      	 * Sets the local element of this search match.
      	 *
      	 * @param localElement A more specific local element that corresponds to the match,
      	 * 	or null if none
      	 */
      	public final void setLocalElement(IJavaElement localElement)
      	/**
      	 * Sets the other elements of this search match.
      	 *
      	 * @param otherElements the other elements of the match,
      	 * 	or null if none
      	 */
      	public final void setOtherElements(IJavaElement[] otherElements)

### Problem Reports Fixed

118246 Definition of getJavaLikeExtensions() leads to programming errors
118311 type \@ in javadoc comment and code assist == hang
117020 [search] Search for '*' does not report empty packages
111416 [search] wrong potential matches on a static method open
118214 [completion] "has inconsistent hierarchy" field should not be proposed
118105 [javadoc][assist] Hang with 100% CPU during code assist on comment
118064 Access rules are not flushed between classpaths in batch mode.
117451 [compiler] Codegen could better optimize field access when value not required
117120 [compiler] VerifyError: Expecting to find integer on stack
36032 [plan] JavaProject.findType() fails to find second type in source file
117183 [javadoc][assist] No completion in text when cursor location is followed by a '.'
116573 wrong guess of binding with overloaded methods
117861 [1.5][compiler] invalid handling of static import
110336 [plan][search] Should optionaly return the local variable for type reference
117890 JavaElement.getURLContents(...) leaves file open
117589 Completion dialog shows html file name
115040 Provide API for getting occurrence count from initializers and types
117121 Can't create class called A$B in eclipse
116858 java code formatter problem with switch statements and comments
117495 Compiler: ternary ops return wrong type when condition is boolean literal
61013 [plan][model] Minimal support for editing units outside workspace
117487 Classpaths in the build scripts need to be updated

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 22nd November 2005
Project org.eclipse.jdt.core v_623 (cvs).

## What's new in this drop

- `JavaCore#initializeAfterLoad(IProgressMonitor)` used to schedule a job to do its work. It now does it in the same thread. Note this is not an API change as the spec allows both scenarii.
- DOM type bindings for generics got adjusted. There were situations where a reference to a generic type from within itself would expose the declared generic type binding, instead of a parameterized type binding (using its own type parameters as type arguments). This is now corrected, clients should ensure they did not rely on the previous inconsistency (note: no change was required from direct JDT dependents).
- Added APIs `JavaCore#getJavaLikeExtensions(), isJavaLikeFileName(String), and removeJavaLikeExtension(String)` to get the available Java-like extensions (from the Java source content-type), checking if a file is a Java-like file, and removing the Java-like extension from a file name.
- Added new API for org.eclipse.jdt.core.dom.CompilationUnit:

      	/**
      	 * Returns the column number corresponding to the given source character
      	 * position in the original source string. Column number are zero-based.
      	 * Return -1 if it is beyond the valid range or -2
      	 * if the column number information is unknown.
      	 *
      	 * @param position a 0-based character position, possibly
      	 *   negative or out of range
      	 * @return the 0-based column number, or -1 if the character
      	 *    position does not correspond to a source line in the original
      	 *    source file or -2 if column number information is unknown for this
      	 *    compilation unit
      	 * @see ASTParser
      	 * @since 3.2
      	 */
      	public int getColumnNumber(final int position)
      	/**
      	 * Given a line number and column number, returns the corresponding
      	 * position in the original source string.
      	 * Returns -2 if no line number information is available for this
      	 * compilation unit.
      	 * Returns the total size of the source string if line
      	 * is greater than the actual number lines in the unit.
      	 * Returns -1 if column is less than 0,
      	 * or the position of the last character of the line if column
      	 * is beyond the legal range, or the given line number is less than one.
      	 *
      	 * @param line the one-based line number
      	 * @param column the zero-based column number
      	 * @return the 0-based character position in the source string;
      	 * -2 if line/column number information is not known
      	 * for this compilation unit or -1 the inputs are not valid
      	 * @since 3.2
      	 */
      	 public int getPosition(int line, int column)
      	/**
      	 * Returns the line number corresponding to the given source character
      	 * position in the original source string. The initial line of the
      	 * compilation unit is numbered 1, and each line extends through the
      	 * last character of the end-of-line delimiter. The very last line extends
      	 * through the end of the source string and has no line delimiter.
      	 * For example, the source string class A\n{\n} has 3 lines
      	 * corresponding to inclusive character ranges [0,7], [8,9], and [10,10].
      	 * Returns -1 for a character position that does not correspond to any
      	 * source line, or -2 if no line number information is available for this
      	 * compilation unit.
      	 *
      	 * @param position a 0-based character position, possibly
      	 *   negative or out of range
      	 * @return the 1-based line number, or -1 if the character
      	 *    position does not correspond to a source line in the original
      	 *    source file or -2 if line number information is not known for this
      	 *    compilation unit
      	 * @see ASTParser
      	 * @since 3.2
      	 */
      	public int getLineNumber(int position)

### Problem Reports Fixed

117382 synthetic class$N fields generated unnecessarily
115658 ReconcileContext/CompilationParticipant clarifications
61946 AST: NPE in IVariableBinding.getConstantValue
116472 Ambigous API definition on CompilationUnit.getPosition()
117032 AST line numbers: Problems with single line source
116745 [compiler] VerifyError: Incompatible type for getting or setting field
98154 Code assist from Javadoc
116464 [javadoc] Unicode tag name are not correctly parsed
114941 Remove init job
114935 ASTParser.createASTs parses more CUs then required
116311 [search] NPE searching for reference to our Assert class
115067 Util#getJavaLikeExtensions should become API
80472 Binding of parameterized return type List<E> subList(...) should not be generic binding

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 16th November 2005
Project org.eclipse.jdt.core v_622 (cvs).

## What's new in this drop

- Added API `IMethod#getRawParameterNames()` that returns the invented names arg0...argn for a binary method.
- Added API `IOpenable#findRecommendedLineSeparator()` that finds the line separator for the given Java element.

### Problem Reports Fixed

116419 code assist regression: POTENTIAL_METHOD_DECLARATION not offered anymore
84750 [perf] BinaryMethod.getParameterNames does not follow IMethod API contract
110650 Need API for determining Java line delimiter

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 15th November 2005
Project org.eclipse.jdt.core v_621 (cvs).

## What's new in this drop

- Due to bug 110964 fix, some javadoc compiler options default value have been changed.

      JavaCore.COMPILER_PB_INVALID_JAVADOC_TAGS:
      	- old default value = "enabled"
      	- new default value = "disabled"
      JavaCore.COMPILER_PB_INVALID_JAVADOC_TAGS__DEPRECATED_REF
      	- old default value = "enabled"
      	- new default value = "disabled"
      JavaCore.COMPILER_PB_INVALID_JAVADOC_TAGS__NOT_VISIBLE_REF
      	- old default value = "enabled"
      	- new default value = "disabled"
      JavaCore.COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY
      	- old default value = "private"
      	- new default value = "public"
      JavaCore.COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY
      	- old default value = "private"
      	- new default value = "public"

- Added new API for org.eclipse.jdt.core.dom.CompilationUnit:

      	/**
      	 * Return the index in the whole comments list {@link #getCommentList() }
      	 * of the first leading comments associated with the given node.
      	 *
      	 * @param node the node
      	 * @return 0-based index of first leading comment or -1 if node has
      	 *	no associated comment before its start position.
      	 * @since 3.2
      	 */
      	public int firstLeadingCommentIndex(ASTNode node)
      	/**
      	 * Return the index in the whole comments list {@link #getCommentList() }
      	 * of the last trailing comments associated with the given node.
      	 *
      	 * @param node the node
      	 * @return 0-based index of last trailing comment or -1 if node has
      	 * 	no associated comment after its end position.
      	 * @since 3.2
      	 */
      	public int lastTrailingCommentIndex(ASTNode node)
      	/**
      	 * Returns the column number corresponding to the given source character
      	 * position in the original source string. Column number are zero-based.
      	 * Return zero if it is beyond the valid range.
      	 *
      	 * @param position a 0-based character position, possibly
      	 *   negative or out of range
      	 * @return the 0-based coloumn number, or 0 if the character
      	 *    position does not correspond to a source line in the original
      	 *    source file or if column number information is not known for this
      	 *    compilation unit
      	 * @see ASTParser
      	 * @since 3.2
      	 */
      	public int columnNumber(final int position)
      	/**
      	 * Given a line number and column number, returns the corresponding
      	 * position in the original source string.
      	 * Returns 0 if no line number information is available for this
      	 * compilation unit or the requested line number is less than one.
      	 * Returns the total size of the source string if line
      	 * is greater than the actual number lines in the unit.
      	 * Returns 0 if column is less than 0,
      	 * or the position of the last character of the line if column
      	 * is beyond the legal range.
      	 *
      	 * @param line the one-based line number
      	 * @param column the zero-based column number
      	 * @return the 0-based character position in the source string;
      	 * returns 0 if line/column number information is not known
      	 * for this compilation unit or the inputs are not valid
      	 * @since 3.2
      	 */
      	 public int getPosition(int line, int column)

- A tool to automate the update of the build notes is available on this update-site:
  http://www.eclipse.org/jdt/core/tools/jdtcoretools/update-site/

  This is matching the format of the JDT/Core buildnotes. But the code can be easily customized for a different format.

### Problem Reports Fixed

115662 [javadoc][assist] link completion in types
106140 [compiler] Eclipse3.1.0: unrecognized class invisibility
113108 [API][comments] CompilationUnit.getNodeComments(ASTNode)
110964 [javadoc] Change compiler default options to have minimum javadoc warnings
116028 annotations only applied to first field in a declaration
112843 Cut blocked by background build
116028 annotations only applied to first field in a declaration
110797 In case of multiple task tags on a single line, the tasks view does not show the complete line for each tag
110173 [plan] API to extract the Javadoc as HTML from attached HTML
110188 [plan][assist] Provide hook for completing inside string literal
107105 [1.5][compiler] method override check does not detect differences in additional type bounds
115408 [compiler] ArrayIndexOutOfBoundsException in CodeStream.java

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M4 - 8th November 2005
Project org.eclipse.jdt.core v_620 (cvs).

## What's new in this drop

- Added support for participating in reconcile (see `compilationParticipant` extension point as well as `CompilationParticipant` and `ReconcileContext` classes.) Note that this support is still work in progress and it is subject to change. Ability to participate in building will be added later.
- Code Assist: added support for completing on label in break/continue statement.
- Added new CompletionContext API (first part of fix for bug 110181) :

      /**
       * Returns the completed token.
       * This token is either the identifier or Java language keyword
       * or the string literal under, immediately preceding,
       * the original request offset. If the original request offset
       * is not within or immediately after an identifier or keyword or
       * a string literal then the returned value is <code>null</code>.
       *
       * @return completed token or <code>null</code>
       * @since 3.2
       */
      public char[] getToken()

      /**
       * Returns the kind of completion token being proposed.
       *
       * The set of different kinds of completion token is
       * expected to change over time. It is strongly recommended
       * that clients do not assume that the kind is one of the
       * ones they know about, and code defensively for the
       * possibility of unexpected future growth.
       *
       * @return the kind; one of the kind constants declared on
       * this class whose name starts with <code>TOKEN_KIND</code>,
       * or possibly a kind unknown to the caller
       * @since 3.2
       */
      public int getTokenKind()

      /**
       * Returns the character index of the start of the
       * subrange in the source file buffer containing the
       * relevant token being completed. This
       * token is either the identifier or Java language keyword
       * under, or immediately preceding, the original request
       * offset. If the original request offset is not within
       * or immediately after an identifier or keyword, then the
       * position returned is original request offset and the
       * token range is empty.
       *
       * @return character index of token start position (inclusive)
       * @since 3.2
       */
      public int getTokenStart()

      /**
       * Returns the character index of the end (exclusive) of the subrange
       * in the source file buffer containing the
       * relevant token. When there is no relevant token, the
       * range is empty
       * (<code>getTokenEnd() == getTokenStart()</code>).
       *
       * @return character index of token end position (exclusive)
       * @since 3.2
       */
      public int getTokenEnd()

      /**
       * Returns the offset position in the source file buffer
       * after which code assist is requested.
       *
       * @return offset position in the source file buffer
       * @since 3.2
       */
      public int getOffset()

### Problem Reports Fixed

115363 java.lang.VerifyError in org.eclipse.ui.workbench from HEAD, using N20051107
22072 Code completion on continue label: broken.
113950 [1.5][compiler] Problems implementing inherited generic abstract methods and type erasure
115181 [1.5][compiler] Wrongly flagged "Usage of a raw type"
113945 No codeassist in anonymous class in generics
114086 Refactor->Rename of instance variables fails with "-1" when Code Style->Fields prefix list has dangling ","
114341 [javadoc][assist] range of the qualified type completion in javadoc text isn't correct
114338 [javadoc] Reconciler reports wrong javadoc warning (missing return type)
102286 Error when trying F4-Type Hierarchy
114909 AST: String concatenation represented as single node
114539 [search] Internal error when refactoring code with errors
114855 [compiler] OutOfMemoryError compiling deeply nested try-catch
114087 [1.5][compiler] Eclipse compiles code that cannot be compiled with JDK!
114304 [1.5][compiler] Return type not compatible with generic subinterface.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M3 - 31st October 2005 - 3.2 MILESTONE 3
Project org.eclipse.jdt.core v_619 (cvs).

## What's new in this drop

- Three new API methods have been added on SearchPattern (see bug 113549):

      /**
       * Answers true if the pattern matches the given name using CamelCase rules, or false otherwise.
       * CamelCase matching does NOT accept explicit wild-cards '*' and '?' and is inherently case sensitive.
       *
       * CamelCase denotes the convention of writing compound names without spaces, and capitalizing every term.
       * This function recognizes both upper and lower CamelCase, depending whether the leading character is capitalized
       * or not. The leading part of an upper CamelCase pattern is assumed to contain a sequence of capitals which are appearing
       * in the matching name; e.g. 'NPE' will match 'NullPointerException', but not 'NewPerfData'. A lower CamelCase pattern
       * uses a lowercase first character. In Java, type names follow the upper CamelCase convention, whereas method or field
       * names follow the lower CamelCase convention.
       *
       * The pattern may contain trailing lowercase characters, which will be match in a case sensitive way. These characters must
       * appear in sequence in the name, after the last matching capital of the pattern. For instance, 'NPExcep' will match
       * 'NullPointerException', but not 'NullPointerExCEPTION'.
       *
       * For example:
       *  - pattern = "NPE"
       *    name = NullPointerException
       *    result => true
       *  - pattern = "npe"
       *    name = NullPointerException
       *    result => false
       *
       * @see CharOperation#camelCaseMatch(char[], char[])
       * 	Implementation has been entirely copied from this method except for array lengthes
       * 	which were obviously replaced with calls to {@link String#length()}.
       *
       * @param pattern the given pattern
       * @param name the given name
       * @return true if the pattern matches the given name, false otherwise
       */
      public static final boolean camelCaseMatch(String pattern, String name)

      /**
       * Answers true if a sub-pattern matches the subpart of the given name using CamelCase rules, or false otherwise.
       * CamelCase matching does NOT accept explicit wild-cards '*' and '?' and is inherently case sensitive.
       * Can match only subset of name/pattern, considering end positions as non-inclusive.
       * The subpattern is defined by the patternStart and patternEnd positions.
       *
       * CamelCase denotes the convention of writing compound names without spaces, and capitalizing every term.
       * This function recognizes both upper and lower CamelCase, depending whether the leading character is capitalized
       * or not. The leading part of an upper CamelCase pattern is assumed to contain a sequence of capitals which are appearing
       * in the matching name; e.g. 'NPE' will match 'NullPointerException', but not 'NewPerfData'. A lower CamelCase pattern
       * uses a lowercase first character. In Java, type names follow the upper CamelCase convention, whereas method or field
       * names follow the lower CamelCase convention.
       *
       * The pattern may contain trailing lowercase characters, which will be match in a case sensitive way. These characters must
       * appear in sequence in the name, after the last matching capital of the pattern. For instance, 'NPExcep' will match
       * 'NullPointerException', but not 'NullPointerExCEPTION'.
       *
       * For example:
       *	- pattern = "NPE"
       *    patternStart = 1
       *    patternEnd = 3
       *    name = NullPointerException
       *    nameStart = 0
       *    nameEnd = 20
       *    result => true
       *  - pattern = "npe"
       *    patternStart = 1
       *    patternEnd = 3
       *    name = NullPointerException
       *    nameStart = 0
       *    nameEnd = 20
       *    result => false
       *
       * @see CharOperation#camelCaseMatch(char[], int, int, char[], int, int)
       * 	Implementation has been entirely copied from this method except for array lengthes
       * 	which were obviously replaced with calls to {@link String#length()} and
       * 	for array direct access which were replaced with calls to {@link String#charAt(int)}.
       *
       * @param pattern the given pattern
       * @param patternStart the given pattern start
       * @param patternEnd the given pattern end
       * @param name the given name
       * @param nameStart the given name start
       * @param nameEnd the given name end
       * @return true if a sub-pattern matches the subpart of the given name, false otherwise
       */
      public static final boolean camelCaseMatch(String pattern, int patternStart, int patternEnd, String name, int nameStart, int nameEnd)

      /**
       * Validate compatibility between given string pattern and match rule.
       *
       * Optimized (ie. returned match rule is modified) combinations are:
       *  - {@link #R_PATTERN_MATCH} without any '*' or '?' in string pattern:
       * 		pattern match bit is unset,
       * 	- {@link #R_PATTERN_MATCH} and {@link #R_PREFIX_MATCH}  bits simultaneously set:
       * 		prefix match bit is unset,
       * 	- {@link #R_PATTERN_MATCH} and {@link #R_CAMELCASE_MATCH}  bits simultaneously set:
       * 		camel case match bit is unset,
       * 	- {@link #R_CAMELCASE_MATCH} with invalid combination of uppercase and lowercase characters:
       * 		camel case match bit is unset and replaced with prefix match pattern,
       * 	- {@link #R_CAMELCASE_MATCH} combined with {@link #R_PREFIX_MATCH} and {@link #R_CASE_SENSITIVE}
       * 		bits is reduced to only {@link #R_CAMELCASE_MATCH} as Camel Case search is already prefix and case sensitive.
       *
       * Rejected (ie. returned match rule -1) combinations are:
       * 	- {@link #R_REGEXP_MATCH} with any other match mode bit set.
       *
       * @param stringPattern The string pattern
       * @param matchRule The match rule
       * @return Optimized valid match rule or -1 if an incompatibility was detected.
       */
      public static int validateMatchRule(String stringPattern, int matchRule) {

- Added Camel Case support in completion. When you perform code complete, the proposals list contains proposals whose name match with the camel case pattern.
  eg. a possible proposal for TT| is ToTo.
- Added option to control Camel Case completion.

      /**
       * CODEASSIST / Activate Camel Case Sensitive Completion
       *    When active, completion show proposals whose name match to the CamelCase pattern.
       *     - option id:         "org.eclipse.jdt.core.codeComplete.camelCaseMatch"
       *     - possible values:   { "enabled", "disabled" }
       *     - default:           "disabled"
       */
      JavaCore#CODEASSIST_CAMEL_CASE_MATCH

  Currently this option is disabled by default. The default value of this option will be set to enabled when JDT/Text will be able to manage this kind of proposal (see bug 114098)

### Problem Reports Fixed

114091 [assist][javadoc] eternal loop
114077 No NLS Warning if unnecessary nls tag before declaration
83206 ICodeAssist#codeSelect(..) on implicit methods should not return a java element
102572 [plan] Add CamelHumps completion
113649 [javadoc][assist] CompletionOnJavadocTag token is not correct
113765 [1.5] Insufficient recovery in generic method
113671 [search] AIOOBE in SearchEngine#searchAllTypeNames
113549 Need camel case matching routines for Strings
113722 Sort members is confused with syntax errors
113273 [1.5][compiler] Compiler confused by multiply bounded type parameter

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M3 - 25th October 2005
Project org.eclipse.jdt.core v_618 (cvs).

## What's new in this drop

- Completion engine now supports completion inside Javadoc. User can complete after any word in Javadoc and get most appropriate proposal depending on area of completion.
  Here is a breaf summary of code assist functionality in javadoc:
  - Completion of javadoc tag now only gives valid proposals.
    Some examples:
    - complete `@pa|` will give `@param` proposal only in javadoc of method or generic type declarations,
    - complete `{@co|` will give `{@code }` proposal only if your compiler compliance has been set to 1.5 or over,
    - etc.
  - Completion in "formal reference" of `@see`, `@throws`, `@exception`, `{@link}`, `{@linplain}` or `{@value}` tags will behave like completion in java code. Type qualification for types will be inserted depending on "Add import instead of qualified name" Code Assist preferences.
  - Completion is now available in text area of javadoc comment.
    Some examples:
    - complete at caret in following code:

          /**
           * This is an example of completion inside text area: S|
           */
          public class Sample {}

      will propose both `String` and `Sample`, but also `{@link String }` and `{@link Sample }`. Currently each proposal is available either as java code type name or direclty inserted as a {@link} tag. This part is still under work and final behavior should depend on a new JDT/UI preferences...
    - complete at caret in following code:

          /**
           * This is an example of completion inside text area: #m|
           */
          public class Sample {
            void method() {}
          }

      will propose `{@link #method() }`.
  New API methods have also been added to `CompletionContext`:

      /**
       * Tell user whether completion takes place in a javadoc comment or not.
       *
       * @return boolean true if completion takes place in a javadoc comment, false otherwise.
       * @since 3.2
       */
      public boolean isInJavadoc() {...}
      /**
       * Tell user whether completion takes place in text area of a javadoc comment or not.
       *
       * @return boolean true if completion takes place in a text area of a javadoc comment, false otherwise.
       * @since 3.2
       */
      public boolean isInJavadocText() {...}
      /**
       * Tell user whether completion takes place in a formal reference of a javadoc tag or not.
       * Tags with formal reference are:
       * 	- @see
       * 	- @throws
       * 	- @exception
       * 	- {@link Object}
       * 	- {@linkplain Object}
       * 	- {@value} when compiler compliance is set at leats to 1.5
       *
       * @return boolean true if completion takes place in formal reference of a javadoc tag, false otherwise.
       * @since 3.2
       */
      public boolean isInJavadocFormalReference() {...}

- Added API `org.eclipse.jdt.core.IMember#ISourceRange getJavadocRange() throws JavaModelException`. This API can be used to retrieve the source range of a javadoc comment attached to the corresponding member.
- Added compiler option so as to specify whether optional errors should be fatal or not. By default, an optional error is treated as fatal as a normal language error (as defined by the language spec book), when disabling this option, clients will be able to treat optional errors as severe warnings only, which will be rendered as errors, but no longer prevent from running the code. There is some work planned on UI side so as to better distinguish amongst mandatory vs. optional errors.

      * COMPILER / Treating Optional Error as Fatal
      *    When enabled, optional errors (i.e. optional problems which severity is set to "error") will be treated as standard
      *    compiler errors, yielding problem methods/types preventing from running offending code until the issue got resolved.
      *    When disabled, optional errors are only considered as warnings, still carrying an error indication to make them more
      *    severe. Note that by default, errors are fatal, whether they are optional or not.
      *     - option id:         "org.eclipse.jdt.core.compiler.problem.fatalOptionalError"
      *     - possible values:   { "enabled", "disabled" }
      *     - default:           "enabled"

- Added `IJavaElementDelta#F_CATEGORIES`. This flag is set when one or more categories of an element are added/changed/removed.
- Java search engine is now able to perform search using Camel Case pattern while using new match rule flag defined on `SearchPattern` (see bug 110060):

      /**
       * Match rule: The search pattern contains a Camel Case expression.
       * For example, NPE type string pattern will match
       * NullPointerException type.
       * @see CharOperation#camelCaseMatch(char[], char[]) for a detailed explanation
       * of Camel Case matching.
       *
       * Can be combined to {@link #R_PREFIX_MATCH} match rule. For example,
       * when prefix match rule is combined with Camel Case match rule,
       * "nPE" pattern will match nPException.
       *
       * Match rule {@link #R_PATTERN_MATCH} may also be combined but both rules
       * will not be used simultaneously as they are mutually exclusive.
       * Used match rule depends on whether string pattern contains specific pattern
       * characters (e.g. '*' or '?') or not. If it does, then only Pattern match rule
       * will be used, otherwise only Camel Case match will be used.
       * For example, with "NPE" string pattern, search will only use
       * Camel Case match rule, but with N*P*E* string pattern, it will
       * use only Pattern match rule.
       *
       * @since 3.2
       */
      public static final int R_CAMELCASE_MATCH = 0x0080;

### Problem Reports Fixed

113506 [javadoc][assist] No tag proposals when there is a prefix on a line
113376 [javadoc][assist] wrong overwrite range on completion followed by a tag
113374 [javadoc][assist] do not propose anything if the prefix is preceded by a special character
106466 [1.5][compiler] Type parameter followed by other types in bound - rejected by javac, accepted by Eclipse
110172 [plan] API to extract the Javadoc on org.eclipse.jdt.core.IMember
87868 [1.5][javadoc][assist] Dodgy completion in javadoc comment
86112 [javadoc][assist] Wrong reference to binary static initializer in javadoc
67732 [javadoc][assist] Content assist doesn't work in Javadoc "line breaks"
22043 [javadoc][assist] Code Completion in Javadoc @see/@link doesn't work on partially entered argument types
107282 [plan][compiler] Non mandatory JLS errors should not end up in problem methods
52840 Howto generate the parser: LPG 2.30 is which version of JikesPG?
113051 No classpath marker produced when cycle through PDE container
113110 TestFailures in DebugSuite
112109 Compilation problem: Eclipse does not recognise parametrized notify-method in generic context
100970 [1.5][compiler] Interface methods may conflict with Object methods
112418 PDE generate build file and ant task eclipse.buildScript ignore javaSource and javaTarget
112973 NLS tags like //$NON-NLS-?$ don't have the right range
110060 [plan][search] Add support for Camel Case search pattern
100182 [1.5][compiler] unecessary cast in case of boxing

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M3 - 18th October 2005
Project org.eclipse.jdt.core v_617 (cvs).

## What's new in this drop

- In 5.0 compliant mode, the classfile name for an anonymous class is now correctly referring to its innermost enclosing type name, e.g. "X$1$1" for an anonymous nested inside another anonymous; where it was "X$2" before 5.0.
- Added compiler diagnosis to signal unused label (from labeled statement). Note that a label is considered to be used if explicitly referenced only.

      * COMPILER / Reporting Unreferenced Label
      *    When enabled, the compiler will issue an error or a warning when encountering a labeled statement which label
      *    is never explicitly referenced. A label is considered to be referenced if its name explicitly appears behind a break
      *    or continue statement; for instance the following label would be considered unreferenced;   LABEL: { break; }
      *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedLabel"
      *     - possible values:   { "error", "warning", "ignore" }
      *     - default:           "warning"

- Added API `org.eclipse.jdt.core.ToolFactory#createDefaultClassFileReader(java.io.InputStream,int)` that allows to the creation of an org.eclipse.jdt.core.util.IClassFileReader object using an input stream.
- Added API `JavaCore#addPreProcessingResourceChangedListener(IResourceChangeListener,int)` that allows to register an `IResourceChangedListener` for a given event type that runs before JDT Core.
- Added APIs to get the values of the @category tag in the Javadoc of a type, field or method: `IMember#getCategories()` and to get the children of a type for a given category `IType#getChildrenForCategory(String)`.

### Problem Reports Fixed

112137 ConcurrentModificationException when CTRL+LeftClick on constructor call in Java editor
85298 [1.5][enum] IType of anonymous enum declaration says isLocal() == false
108856 [1.5][compiler] Inner inner classes have illegal names
112231 [1.5][compiler] enum declaration
112381 Javadoc of IMethodBinding#overrides(IMethodBinding) refers to wrong JLS2 section
105756 [1.5][model] Incorrect warning on using raw types
112609 StackOverflow when initializing Java Core
112666 [1.5][compiler] Compiler rejects valid assignment to complex capture
63840 warning on unused labels
112617 [API] Add ToolFactory.createDefaultClassFileReader(InputStream,int)
112518 [performance] NLS detection should be faster
107814 @SuppressWarnings("unused") requires additional //$NON-NLS-1$
110613 [1.5][compiler] Should not report warnings for nls string inside annotation declaration
112500 [1.5][compiler] bug between inference and wilcard
111350 [1.5][compiler] method override and generics
108782 [1.5][compiler] inconsistent @Override error
108780 [1.5][compiler] Subsignature checking does not respect erasure conversion
105808 [1.5][dom] MethodBinding#overrides(..) should not consider return types
23669 [plan][DCR][Javadoc] Add support for @cat / @category organization of class members
112268 [1.5][compiler] Type mismatch introduced in 3.1.1
112346 [1.5][javadoc] Unexpected "Invalid reference" on javadoc field reference
112190 batch compiler option "-warn:+allUnchecked" does not work
112223 Scanner#getNextToken() behavior doesn't seems consistent if there is an unicode inside a string.
107045 [1.5][compiler] Compiler misses name clash with bounded class type parameter

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M3 - 11th October 2005
Project org.eclipse.jdt.core v_616 (cvs).

## What's new in this drop

- Added CharOperation API to perform CamelCase matching. This new matching mode will be leveraged into codeassist and search.

      * Answers true if the pattern matches the given name using CamelCase rules, or false otherwise.
      * char[] CamelCase matching does NOT accept explicit wild-cards '*' and '?'.
      *
      * CamelCase denotes the convention of writing compound names without spaces, and capitalizing every term.
      * This function recognizes both upper and lower CamelCase, depending whether the leading character is capitalized
      * or not. The leading part of an upper CamelCase pattern is assumed to contain a sequence of capitals which are appearing
      * in the matching name; e.g. 'NPE' will match 'NullPointerException', but not 'NewPerfData'. A lower CamelCase pattern
      * uses a lowercase first character. In Java, type names follow the upper CamelCase convention, whereas method or field
      * names follow the lower CamelCase convention.
      *
      * The pattern may contain trailing lowercase characters, which will be match in a case sensitive way. These characters must
      * appear in sequence in the name, after the last matching capital of the pattern. For instance, 'NPExcep' will match
      * 'NullPointerException', but not 'NullPointerExCEPTION'.
      public static final boolean camelCaseMatch(char[] pattern, char[] name)
      public static final boolean camelCaseMatch(char[] pattern, int patternStart, int patternEnd, char[] name, int nameStart, int nameEnd)

- Tuned new compiler diagnosis for raw type references. This problem can now be enabled independantly from unchecked type operations, and carries its own severity settings. Removed "Type safety:" prefix from problem description as it is not truly fragilizing type integrity. This warning can still be silenced by `@SuppressWarnings("unchecked")`

      * COMPILER / Reporting Raw Type Reference
      *    When enabled, the compiler will issue an error or a warning when detecting references to raw types. Raw types are
      *    discouraged, and are intended to help interfacing with legacy code. In the future, the language specification may
      *    reject raw references to generic types.
      *     - option id:         "org.eclipse.jdt.core.compiler.problem.rawTypeReference"
      *     - possible values:   { "error", "warning", "ignore" }
      *     - default:           "ignore"

- Added API `CategorizedProblem` to extend `IProblem` definitions with notion of problem category and marker type. This will enable other pluggable tool to participate in various compilation stages and report domain specific problems through the existing API (`IProblem` based). It is recommended that clients do not directly implement `IProblem` but instead do extend the abstract class `CategorizedProblem`.

      /**
       * Returns an integer identifying the category of this problem. Categories, like problem IDs are
       * defined in the context of some marker type. Custom implementations of CategorizedProblem
       * may choose arbitrary values for problem/category IDs, as long as they are associated with a different
       * marker type.
       * @return id - an integer identifying the category of this problem
       */
      public abstract int getCategoryID();

      /**
       * Returns the marker type associated to this problem, if it was persisted into a marker by the JavaBuilder
       * Standard Java problems are associated to marker type "org.eclipse.jdt.core.problem"), standard tasks
       * are associated to marker type "org.eclipse.jdt.core.task".
       * @return the type of the marker which would be associated to the problem
       * @see org.eclipse.jdt.core.IJavaModelMarker#JAVA_MODEL_PROBLEM_MARKER
       * @see org.eclipse.jdt.core.IJavaModelMarker#TASK_MARKER
       */
      public abstract String getMarkerType();

- Added API `IJavaElementDelta#F_AST_AFFECTED` and `IJavaElementDelta#getCompilationUnitAST()`. The Java element delta's flag is set to `F_AST_AFFECTED` when a reconcile operation affects the AST created in the last reconcile operation. In this case the AST should be re-acquired using `getCompilationUnitAST()`.
- Added API to encode and decode a classpath entry (`IJavaProject#encodeClasspathEntry(IClasspathEntry) and decodeClasspathEntry(String)`.
- Added API `IClassFile#becomeWorkingCopy(...)` that returns an `ICompilationUnit` in working copy mode on the given class file. See its Javadoc for more details.

### Problem Reports Fixed

111898 [compiler] Wrong code generation
111822 DOMParser.createASTs() NPE at FieldReference.getConstantFor(FieldReference.java:408)
109118 [1.5][compiler] Unhandled Exception Compiler error involving generics in java 1.5
111812 [compiler] should improve error highlighting for static initializer errors
111208 [1.5][compiler] Compiler gets confused by multiple generic-extends'
111618 [1.5][dom] Foreach statement shows extraneous semi column into debug variables view
111703 Static initialization block in anonymous inner class causes compiler to fail
110168 [plan] Broadcast AST when reconciling
111767 Disassembler doesn't produce an output that can be compiled for annotation types
111299 JavaModelCache may overflow the memory.
110596 [assist] don't rank java.lang types lower if a simple name duplicate exists
110171 [plan] API to encode/decode a classpath entry into XML form
111511 Comments in compiler @arguments file
111420 Disassembler doesn't generate type parameters
111396 TypeHierarchy doesn't notify listeners on addition of fully qualified subtypes
110160 [plan] Working copy for class file

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M3 - 4th October 2005
Project org.eclipse.jdt.core v_615 (cvs).

## What's new in this drop

- Compiler diagnosis for unnecessary cast is now able to recognize situations like:
  - `List l = (ArrayList) someList;`
  - `List foo(List someList) { return (ArrayList) someList;}`
- Compliance settings can now refer to "1.6" (aka "6.0") in addition to 1.3, 1.4 and 1.5. When classfile target is toggled to "1.6" the major/minor version will be adjusted accordingly. Some 1.6 specific attributes (e.g. StackMapTable) are not produced yet.

### Problem Reports Fixed

111222 [compiler] add new constants to support JDK 6.0
111219 Disassembler generates syntactically incorrect code
111014 Internal Compiler Error
106010 [1.5][compiler] Wrong warning message issued in generic nesting type casting
110813 [search] ImportMatchLocatorParser should be implemented in its own CU
70228 new compiler warning for stuff like Object o = (Integer)(new Object())
110576 [encoding] Rename CU looses encoding for file which charset is determined by contents
110304 Formatter has no options for 'return'
110251 Inaccurate problem description on bad nested class
110657 [DOM] wrong position for single variable declaration inside enhanced for statement
110987 [compiler] the operator is not used to InstanceOfExpression
108731 improved error message
110433 JavaModelManager#getElementsOutOfSynchWithBuffers() should use a HashSet
110434 Move WeakHashSet to model
110439 HashableWeakReference should be static
110449 Remove field IndexBasedHierarchyBuilder#handleToWorkingCopy
110789 ProjectCache.pathToResolvedEntries should be rootToResolvedEntries
69471 [DOM/AST] Improve guessing of method binding for overloaded methods
110773 ITypeBinding#isEqualTo(..) is wrong when comparing NodeList<String>.Cursor to its type declaration
109963 [dom] Two VariableDeclarationStatements in switch
109940 [dom] IllegalArgumentException is thrown in CharacterLiteral.charValue()
110270 Failure in model test 20050921-1200
110082 [compiler] Increase compiler performance for "Remove superfluous NLS strings" warnings
110849 [compiler] Batch compiler doesn't use the user.dir if no classpath is specified
110738 [1.5][compiler] Internal compiler error while processing Currency
110826 [compiler] Batch compiler doesn't work when set on the bootclasspath

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M3 - 27th September 2005
Project org.eclipse.jdt.core v_614 (cvs).

## What's new in this drop

- Added optional compiler diagnosis for signaling usage of raw types. A raw type is a reference to some generic type without any type argument (e.g. "List" in place of "List<Element>").

      * COMPILER / Reporting Raw Type Reference
      *    When enabled, the compiler will signal references to raw types. Raw types are discouraged, and are intended to help interfacing
      *    with legacy code. In the future, the language specification may reject raw references to generic types.
      *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation".
      *     - option id:         "org.eclipse.jdt.core.compiler.problem.rawTypeReference"
      *     - possible values:   { "enabled", "disabled" }
      *     - default:           "disabled"

### Problem Reports Fixed

107004 NPE in TypeBinding.getKey()
108740 [1.5][compiler] Type hierarchy with generics fails with NPE
101456 Proposals and Open Declaration fail with NPE
110570 [1.5][compiler] error in type deduction
110563 [1.5][compiler] Internal compiler error for varags
89529 [1.5][compiler] improve warnings for raw types
110182 [compiler] Eclipse does not recompile rt.jar properly

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M2 - 21st September 2005 - 3.2 MILESTONE 2
Project org.eclipse.jdt.core v_613 (cvs).

## What's new in this drop

### Problem Reports Fixed

109055 Error starting JDT Core due to IAE: Path for project must have only one segment.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M2 - 19th September 2005
Project org.eclipse.jdt.core v_612 (cvs).

## What's new in this drop

### Problem Reports Fixed

108203 [1.5][compiler] cannot compile internal class implementing interface with parameterized method
107681 [1.5][compiler] invalid ambiguous invocation diagnostic
107098 [1.5][compiler] method override check fails with instantiated type parameter in bound
103849 [jdk][compiler] Incorrect ambiguity error for generic types + inheritance
102631 [1.5][compiler] false java error for ambiguous methods

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M2 - 16th September 2005
Project org.eclipse.jdt.core v_611 (cvs).

## What's new in this drop

### Problem Reports Fixed

109646 [DOM] Parsing using K_STATEMENTS doesn't return the right tree for multiple local declarations
109535 [DOM] Wrong infix expression when '-' is used within string literals

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M2 - 13th September 2005
Project org.eclipse.jdt.core v_610 (cvs).

## What's new in this drop

### Problem Reports Fixed

109333 [DOM/AST] OR_OR and AND_AND expression are not converted to an infix expression using extended operands
109340 [Formatter] Wrong positionning of empty statements
108622 [javadoc][dom] ASTNode not including javadoc
52283 do <single-statement> while(<condition>) is ill-formatted
101080 NPE during computePriority for problems
108783 [1.5][compiler] Runnable masks Iterable interface in bounds
107110 IMethodBinding.isSubsignature not yet correctly implemented
101380 [1.5][compiler] Problem when implementing generic interface with method that has enum parameter
108820 Index based type hierarchy should not consider interfaces in index when focus is a class
99734 [select] CodeSelect fails when selecting an anonymous class of Object
108615 Unable to inherit abstract methods from jarred interface
108263 [1.5][compiler] Constants initilialization doesn't work inside Annotation

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M2 - 6th September 2005
Project org.eclipse.jdt.core v_609 (cvs).

## What's new in this drop

- The size limit of the internal Java model cache is now function of the max heap size (-Xmx VM argument) given to the Java Virtual Machine. Thus users who give more memory to the VM because they have big .jar files on their classpath will see an increase in performance.
- Reading the .classpath file is now forward compatible with upcoming versions. If a .classpath file contains unknown elements and attributes, these are left untouched and are persisted.

### Problem Reports Fixed

104695 [1.5][compiler] Compiler allows instanceof with non-reifiable array type
101425 Classpath persistence should be resilient with unknown attributes
108372 [1.5][compiler] Inner class of enclosing raw type don't works
106202 JavaModelCache should have configurable LRU cache limits
107756 [1.5][compiler] Invalid diagnostic invoking method through raw interface
100636 [model] Can't find overriden methods of protected nonstatic inner class.
100606 NPE during reconcile
101228 JME on code assist
103466 Stack Overflow: Requesting Java AST from selection
87193 CodeFormatter Indent on column wrapping
99645 [select] CodeSelect doesn't work for type parameter declaration of a local type
71766 [format] Formatter fails to wrap lines for assignment statements
102284 [5.0 ] CCE in ParameterizedTypeBinding [code assist]
83206 ICodeAssist#codeSelect(..) on implicit methods should not return a java element
72402 [format] align method arguments
103706 [formatter] indent empty lines

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M2 - 30th August 2005
Project org.eclipse.jdt.core v_608 (cvs).

## What's new in this drop

### Problem Reports Fixed

83005 [1.5][assist] Content Assist in annotation offers to override methods
105581 Creating a Java project from existing source fails because of "Unhandled event loop exception": ArrayIndexOutOfBoundsException
104486 newNotPresentException when reconciling CU in a non-java project
104879 BindingKey#internalToSignature() returns invalid signature for local type
106725 [content assist] wrong method created when overriding static method
107330 ASTParser#createASTs(..) returns invalid binding for key of local type
107580 Putting a period after an enum element with a constructor causes a crash
107735 StringIndexOutOfBoundsException in Util.getNameWithoutJavaLikeExtension()

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M2 - 23rd August 2005
Project org.eclipse.jdt.core v_607 (cvs).

## What's new in this drop

### Problem Reports Fixed

107535 batch compiler should put is own version in the compiler log file
107079 [1.5][compiler] mis-compiled Wildcard capture leads to a ClassCastException
107249 NullPointerException at BinaryIndexer.indexDocument()
104202 Better locations for assignement errors
102422 Exception referencing class in large jar files
100549 Strange binding keys from AST on class file of nested type
101777 [search] selecting class with a main type ignores the default package
107124 NullPointerException at ClassFileStruct.u2At
106581 [javadoc] null type binding for parameter in javadoc
106936 [1.5][compiler] Unoptimal lub computation
106865 [1.5][compiler] capture conversion doesn't handle array types
105284 [1.5][compiler] Autoboxing: Type mismatch

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M2 - 16th August 2005
Project org.eclipse.jdt.core v_606 (cvs).

## What's new in this drop

- Bug 48976 is now enabled again. A tool can be installed from update site to easily remove unnecessary nls tags. Copy the link as a new update site under Eclipse. The tool requires a build > 20050812.
  - nls tags are ignored in isolated line comments like:

        		...
        		// System.out.println(""); //$NON-NLS-1$
        		...

  - Other nls comments are reported as unnecessary if they don't match a corresponding string literal
  - The tool removes the unnecessary nls tags even if the line comment is used for another comment:

        String s = "Hello, World"; //$NON-NLS-1$ This won't be removed //$NON-NLS-2$ at all

    becomes:

        String s = "Hello, World"; //$NON-NLS-1$ This won't be removed  at all

### Problem Reports Fixed

106964 [1.5][search] AIOBE in MethodLocator.matchOverriddenMethod
99903 [1.5][search] range wrong for package-info
99662 [1.5] JavaModel returns inexistent IType for package-info ICompilationUnits
106875 [compiler] Unnecessary nls tags detection fails on duplicate tags
105284 [1.5][compiler] Autoboxing: Type mismatch
106834 IMethodBinding#isEqualTo(..) wrong with overloaded parameterized methods
48976 Remove superfluous $NON-NLS comments
105816 Extraneous NLS tag incorrectly found in comments
106106 [1.5][compiler] Compiler error with Arrays.asList in Java 5 mode?
106403 PublicScanner returns EOF late
105531 [1.5][compiler] ecj from CVS generates spurious incomprehensible error
106514 [1.5][compiler] Improve diagnostic on bound mismatch for GenericTypeTests.test790

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M1 - 10th August 2005 - 3.2 MILESTONE 1
Project org.eclipse.jdt.core v_605 (cvs).

## What's new in this drop

### Problem Reports Fixed

106656 [compiler] Batch compiler exits with error code -1 when only warnings are found

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M1 - 9th August 2005
Project org.eclipse.jdt.core v_604 (cvs).

## What's new in this drop

### Problem Reports Fixed

106297 [1.5][compiler] new A<X>().new B(){}

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M1 - 8th August 2005
Project org.eclipse.jdt.core v_603 (cvs).

## What's new in this drop

### Problem Reports Fixed

100041 [javadoc][dom] Wrong positions when javadoc comment inside method declaration

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M1 - 2nd August 2005
Project org.eclipse.jdt.core v_602 (cvs).

## What's new in this drop

- The compiler won't report anymore unnecessary non nls tags (see bug 48976 for details).
  This will be reverted after 3.2M1 build.

### Problem Reports Fixed

105635 incorrect parsing of field declarations with generic types
100772 [1.5][search] Search for declarations in hierarchy reports too many matches
100695 [1.5][search] Renaming a field of generic array type has no effect

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M1 - 2nd August 2005
Project org.eclipse.jdt.core v_601 (cvs).

## What's new in this drop

- The Java conventions built-in code formatter profile has been updated to reflect the tab size at 8.

### Problem Reports Fixed

104765 Tab width error in Java Conventions [built-in]
105192 NaiveASTFlattener incorrectly renders a for statement with multiple initializers or multiple updaters

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK 3.2M1 - 26th July 2005
Project org.eclipse.jdt.core v_600 (cvs).

## What's new in this drop

### Problem Reports Fixed

105430 ecj chokes when classpath has leading separator
104738 [1.5][compiler] Enclosing method attribute is generated for member type of a local type
104704 [compiler] caching in the constant pool could be improved
104664 [compiler] repeat mode is broken in the batch compiler
99423 [1.5] [javadoc] inconsistent getStartPosition()
104649 [1.5][compiler] method type variable: inference broken for null
104877 [1.5] TypeDeclarationStatement should use DECLARATION_PROPERTY in JLS3 API
104780 TVT 3.1: TCT 386 - wrong description for option FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION
104655 [1.5] inconsistent compiler behavior in generic methods
104551 [1.5][compiler] Method override checks fail with raw subtype and type variable as type bound
104492 [AST]java.lang.ClassCastException: org.eclipse.jdt.core.dom.PrimitiveType
103485 [1.5][compiler] compiler: wrongfully accepted method call
104245 AST.newCompilationUnit javadoc error
103994 [1.5][compiler] Internal compiler error while overriding bootstrap class
103528 [1.5][compiler] compiler allows invalid assignment with method type parameter and nested wildcards
104082 [1.5][compiler] 1.5 source code gets internal eclipse null pointer error
104167 [1.5][compiler] incorrect 'unread field' diagnosis
103320 Method-local subtype with instance initializer break JDOM
103636 JDT compiler produces invalid XML
103227 [1.5][compiler] VerifyError in case of a parametrized anonymous class inside a static inner class
103148 [1.5][assist] Code completion breaks if using static method generics ( Class.<T>staticMethod(params) )
103472 [1.5][compiler] Should detect incompatible super interfaces
91426 [Markers] Java task tags in Task View don't have configured priority
103023 [1.5][compiler] StackOverflow inferring type arguments
102778 Scrapbook page doesn't work with enhanced for statement
101283 [1.5][javadoc] Javadoc validation raises missing implementation in compiler
100868 Code assist does not recommend methods in anonymous enum subclass
101456 Proposals and Open Declaration fail with NPE
101387 [1.5][compiler] Incorrect Cycle detected in type hierarchy error
97326 [dom] ITypeBinding#isFromSource() is always false for type variables, wildcards, and capture types
100153 [1.5][compiler] Bound check failure on recursive formal bound
100808 [assist] Wrong replace range for package proposals if there is no line termination
98532 [1.5][compiler] Spurious 'type parameter T is hiding the type T' warning for static nested classes
100797 editor general failure
100043 [1.5][compiler] false compiler error on ?: ternary operator with boxing
102181 [1.5][compiler] Generic varargs are built with incorrect array type
102305 Error in JDT Core during reconcile
102213 [1.5][compiler] enum constants cannot be referenced inside enum constants initializer
101955 NullPointerException after invoking extract method
97220 Should not issue nls warning for annotation
101885 [mode] sort operation doesn't set the RELATIVE_ORDER for enum constants
101247 [formatter] Fails to format some labelled statements
101713 [1.5][compiler] Access to static fields within enum constructors inconsistent with javac
101779 [1.5][compiler] VerifyError using -- operator on unboxed generic Integer type
101208 [compiler] instanceof check cannot be unnecessary on null values
100619 [1.5][compiler] Incorrect duplicate bound diagnosis
94759 [1.5][compiler] @Override doesn't report an error inside interface when specified for clone() method
98538 [1.5][compiler] Inference broken for subtypes of subtypes of F-bounded types
102650 [ast rewrite] Removing all TYPE_PARAMETERS_PROPERTY values in a derived type gives incompilable code

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