jdt core - build notes R2.0
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. Most recent information is listed first. This present document covers all changes up to Release 2.0, changes which occurred since then in 2.1 stream are described in build notes R2.1.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build GM5 - 27th June 2002 - RELEASE 2.0 (R2_0)
Project org.eclipse.jdt.core v_264

## What's new in this drop

- Changed ASCII/binary property for 'about.html' file to ASCII.

### Problem Reports Fixed

### Problem Reports Closed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build GM4 - 26th June 2002
Project org.eclipse.jdt.core v_263

## What's new in this drop

### Problem Reports Fixed

20553 Doc - Javadocs of 2.0 classes must specify if the class is intended to be instantiated or subclassed by client.
20442 Doc - Javadoc missing in ICodeSnippetRequestor
20550 Doc - fields of CorrectionEngine should not be API
20872 Doc - the javadoc is not correct for ICodeAssist#codeSelect

### Problem Reports Closed

20936 nullpointer exception in org.eclipse.jdt.internal.core.builder.JavaBuilder

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020624 - 24th June 2002
Project org.eclipse.jdt.core v_262

## What's new in this drop

- Updated about.html file.

### Problem Reports Fixed

### Problem Reports Closed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020621 - 21st June 2002
Project org.eclipse.jdt.core v_261

## What's new in this drop

### Problem Reports Fixed

20693 Finding references to variables does not find all occurances
20011 Searching for Inner Classes gives bad search results
20520 Refactor - expression detection incorrect

### Problem Reports Closed

20643 Java Projects disappear

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020620 - 20th June 2002
Project org.eclipse.jdt.core v_260

## What's new in this drop

### Problem Reports Fixed

20532 Declaration of member binary type not found
19799 More problems with importing.
16140 Non-java project gets .classpath

### Problem Reports Closed

20659 Compile/rebuild analysis: white space causes large rebuild

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020618 - 18th June 2002
Project org.eclipse.jdt.core v_259

## What's new in this drop

- Updated about.html file with reference to CPL 1.0.

### Problem Reports Fixed

### Problem Reports Closed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020617 - 17th June 2002
Project org.eclipse.jdt.core v_258

## What's new in this drop

- Removed deprecated 2.0 temporary API: `IWorkingCopy#findSharedWorkingCopy()` which was no longer used anyway. Proper API is taking a `IBufferFactory` in argument.

### Problem Reports Fixed

20427 J9c needs internal batch compiler methods to be public
20309 cannot code resolve on binary method with member type arguments
20158 Close and reopen a project does not remove errors
20325 CP Variable - should not persist "initialization in progress" value
20173 Open type from a jar located inside a closed project.
20135 2.0 deprecated method

### Problem Reports Closed

20359 classpath variable ECLIPSE_HOME not initialized on startup
20261 cycle in classpath detection seems overzealous
19826 livelock during indexing?
20048 Minimize recompilation
20053 interface with same-named method generates compile error

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020612 - 12th June 2002 - FREEZE 3
Project org.eclipse.jdt.core v_257

## What's new in this drop

### Problem Reports Fixed

19537 Internal error saving file (jzentry == 0)
19917 Code Assist incorrect for hidden interface fields

### Problem Reports Closed

19916 Error accessing value from uninitialized localvariable
19566 Invalid ClassCastException thrown at runtime
3306 Can't compile JDK src
19851 IllegalArgumentException in refactor-extract method
7272 Open on selection not working in external JARs
14219 EOF exception after building in imported plugin with extracted source
18290 Incorrect errors reported during reconciling

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020611 - 11th June 2002
Project org.eclipse.jdt.core v_256

## What's new in this drop

- Added protection around listener callback invocations (using `ISafeRunnable`).
- Removed 2 unused deprecated constants on `IJavaSearchConstants`: READ_REFERENCES and WRITE_REFERENCES. They were annoted with intention to discard before 2.0 since were temporarily introduced and deprecated (due to bad naming).

      	/**
      	 * @deprecated - use WRITE_ACCESSES instead (will be discarded before 2.0)
      	 * @since 2.0
      	 */
      	int WRITE_REFERENCES = WRITE_ACCESSES;

### Problem Reports Fixed

19714 Eclipse crashes: Drag & Drop
19794 Method body change may result in massive recompilation
18983 Replacing binary project doesn't trigger build
18953 Package disapears when disconnected from CVS repopsitory
19638 Open Type Hierarchy can start infinite progress monitor
19687 Preferences not working with import/export
19512 ArrayIndexOutOfBound during incremental build
18922 Scrapbook does not come back when errors in snippet

### Problem Reports Closed

19808 core ClassCastException exception in log
19882 maybe a cu's single type can be its proimary type too
19586 Java project removed from Projects view
15972 JAR file from classpath not indexed
18680 Classpath Loop

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020606 - 6th June 2002
Project org.eclipse.jdt.core v_255

## What's new in this drop

- Removed deprecated API on `IJavaProject`. These were not in 1.0, and shouldn't have been introduced (incorrectly resurrected from 0.9).
  - `IJavaProject#getClasspath(...) --> IJavaProject#getRawClasspath(...)`
  - `IJavaProject#setClasspath(...) --> IJavaProject#setRawClasspath(...)`
  - `IJavaProject#newProjectEntry(...) --> JavaCore#newProjectEntry(...)`
  - `IJavaProject#newLibraryEntry(...) --> JavaCore#newLibraryEntry(...)`
  - `IJavaProject#newSourceEntry(...) --> JavaCore#newSourceEntry(...)`

### Problem Reports Fixed

19303 Open type does not show all type.
14109 Deadlock between ProblemTreeViewer refresh and reconciler
19254 Some local variable completion proposals are missed
19131 NPE when removing a project containing missing classfile folder
19058 Closing non-java project doesn't remove root from java project
18584 New 2.0 APIs marked as deprecated should be removed
18698 Seeing non-java projects in package view
18920 NPE searching for references to a message
18749 Missing java doc for IConstantPoolEntry
18583 New constants not tagged with @since 2.0
18708 DOM AST - IllegalArgumentException organizing imports
18039 Opening .class file fails
18621 Query all types when project is closed prevents reindexing when project is open

### Problem Reports Closed

19271 IOException when searching for packages
7916 Code assist does not find class
19424 JDT processing deltas for non-java files in non-java projects
18633 Build failed: Can not find the class file for org.eclipse.jdt.core.jdom.IDOMInitializer
18175 Quickfix false positives for non-public classes
19293 cancelling compiling does not always cancel
18539 unable to run JDBC program, class not found
3292 Adding new class takes very long (>20s) (1GEUGFQ)
3333 JavaCore does not recognize dot notation for inner classes (1GI7GZG)
18507 overwritting exiting file does not work
18414 NLS Tools: Find strings and compiler warning out of synch
5605 NPE restarting workspace
3252 Code assist list could be narrower in throws completion (1GD074C)
18724 Code for the static initializer is exceeding the 65535 bytes limit
3272 CodeCompletion - should only resolve interfaces (1GE5B8X)
6259 DCR: IClasspathEntry with JavaDoc location
10007 NPE and ClassCastException when renaming class name
3222 JM - Reminder - re-enable transient reconciling marker (1GAJ9FQ)
3267 Deadlock while refreshing form local (1GDTUSD)
5583 getNonJavaResources does not return .class files for source folders
16371 Java Model Exception using code assist
17626 Auto-format source removed newline at end of range
8863 .classpath gets overwritten if there's an XML error
3335 Java Element Deltas: Performance issues with deltas from Working Copy (1GIE36J)
3253 SEVERE: Not all external JARs show up in packages view (1GD0JZO)
1834 Cancel build with 10000+ problems takes forever to update (1G2Q9YZ)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020601 - 1st June 2002 - FREEZE 2
Project org.eclipse.jdt.core v_254

## What's new in this drop

- The resource copy exclusion filter now tolerates whitespaces inside the filter pattern, they will be trimmed when used. e.g. " .* , foo/ " is now accepted.

### Problem Reports Fixed

18446 JavaCore.getClasspathContainer on not yest created project
18411 External JAR refresh - caching problem
18453 Deleting project doesn't remove pkg fragment root in another project
18331 Java Model not flushed when upgrading binary projects

### Problem Reports Closed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020531 - 31st May 2002
Project org.eclipse.jdt.core v_253

## What's new in this drop

- Changing 2.0 API for refreshing external JARs so as to pass in a collection of *elements* to restrain the scope of the update (see `IJavaModel#refreshExternalArchives(IJavaElement[],IProgressMonitor)`. Elements can either be package fragment roots, projects or Java model.

### Problem Reports Fixed

18418 search: searchDeclarationsOfReferencedTypes reports import declarations
18287 <Clinit> change is treated as a structural change by incremental builder

### Problem Reports Closed

17766 Strange error when launching Eclipse from inside Eclipse
18396 ant javac target ignores source="1.4" setting inside eclipse
14187 error rebuilding project
14607 Refactor: rename isn't updating references
16172 Namelookup slow to retrieve package fragments
18157 Internal Error when deleting project
18259 changing classpath causes significant recompilation
10394 symbolic links upset JRE path
9302 An unexpected exception has been detected in native code outside the VM

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020530 - 30th May 2002
Project org.eclipse.jdt.core v_252

## What's new in this drop

- Compiler can now optionally report unused imports. See option named "" on `JavaCore#getDefaultOptions` comment

      	 * COMPILER / Reporting Unused Import
      	 *    When enabled, the compiler will issue an error or a warning for unused import
      	 *    reference
      	 *     - option id:		"org.eclipse.jdt.core.compiler.problem.unusedImport"
      	 *     - possible values:	{ "error", "warning", "ignore" }
      	 *     - default:		"ignore"

  Note that if import problems (separate settings) are disabled, unused imports will not be reported either. This option is also available to the batch compiler ("-warn:unusedImports"). Implementations of `IProblemRequestor` can identify this new problem through its ID `IProblem#UnusedImport`.
- Added API on IType so as to tell whether a type is anonymous, local or member.
- Changing 2.0 API for refreshing external JARs so as to pass in a collection of projects to restrain the scope of the update (see `IJavaModel#refreshExternalJARs(IJavaProject[],IProgressMonitor)`.

### Problem Reports Fixed

17906 Rename package fails when inner classes are imported
18255 NPE during Organize imports.... See test5 in UI tests
18169 ast: incorrect length of SingleVariableDeclaration for some array declarations
18138 Resolving failure in variable declaration
18135 importing plugins resulted in 9MB of errors added to log
18190 add a new PackageFragmentRoot does not update the name lookup of dependent projects
15441 Important: Problem highlight is out of sync with compiler
12649 Missing import after move

### Problem Reports Closed

18042 AST: Resolving failes with semicolon while loop body

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020529 - 29th May 2002
Project org.eclipse.jdt.core v_251

## What's new in this drop

### Problem Reports Fixed

18078 memory leak - destroy a WorkingCopy remove and re-add his buffer
16187 Problems occured building seleted resources. MemberTypeBinding
18029 disassembled code viewer handles \n incorrectly
17922 ClassCastException on rename temp
18054 JDT/Core is using the platform encoding instead of the encoding set in the UI
17923 Can't find refs to binary fields
11823 npe when trying to set source to rt.jar
17609 deleting a resource results does not change local history
16120 SelectionParser build wrong AST for instanceof statement
14468 F3 doesn't work on DefaultExceptionHandler

### Problem Reports Closed

14373 Number of spaces representing a tab is alway 4
6169 Creating the tasks view hangs the UI thread
18070 NullPointerException during build
9173 Exception about missing org.eclipse.core.boot\.classpath file?
15602 OutOfMemoryError
15311 Importing external plug-ins from file system fails
13852 Cannot generate EJB inheritance deployed code without debug info
17046 Inner class reference to Outer class method not recognized
17953 NullPointerException when compiling cocoon2
17930 Moving secondary types is fooling the java incremental builder
17873 Synchronize Comparison does poor job on .classpath files
16736 Comment before package statement not associated with it
12551 Search finds some but not all method refs
17254 Could not find .classpath.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020527 - 27th May 2002
Project org.eclipse.jdt.core v_250

## What's new in this drop

- Added API to retrieve cached flags on type hierarchies (see `ITypeHierarchy#getCachedFlags(IType)`). Note that these flags can help answering both isClass/isInterface queries as well (see `Flags.isInterface(int)`
- Added API to trigger a Java model refresh with respect to external JARs: `IJavaModel#refreshExternalJARs`.

    /**
     * Triggers an update of the JavaModel with respect to the referenced external JARs.
     * This operation will issue a JavaModel delta describing the discovered changes, in term
     * of Java element package fragment roots added, removed or changed.
     *
     * @param monitor - a progress monitor used to report progress
     * @exception JavaModelException in one of the corresponding situation:
     *    - an exception occurs while accessing project resources
     *
     * @see IJavaElementDelta
     * @since 2.0
     */
    void refreshExternalJARs(IProgressMonitor monitor) throws JavaModelException;

- Added flag for notifying a JAR content change during Java delta notification: `IJavaElementDelta#F_ARCHIVE_CONTENT_CHANGED`

### Problem Reports Fixed

17097 Searching for "*" in java gives a cryptic error message dialog.
15162 Assertion failure during shutdown
17145 NPE while compiling
17807 Incremental build problems deleting secondary types
17564 Register java file types with the team plugin
17422 JDT Compiler Adapter and compatibility with Ant 1.5
17101 Assertion failure during shutdown
17562 Race condition on startup leads to 2 JavaModel instances
15395 AssertionFailedException when creating new Java project
17797 NullPointerException while building
17827 NullPointerException at CompilationResult.computePriority
16761 NPE when doing Project -> Rebuild All
3329 Specification for IJavaElementDelta needed (1GHVW5M)
16753 Exception while building
12159 Code Format is generating bogus output
16751 Renaming a class doesn't update all references
16789 Incomplete project element if .classpath file isn't readable
16279 compiler creates code that causes verifier error
14113 Should listen to F_SOURCEATTACHED and F_SOURCEDETACHED java deltas
15250 Need a better mapping for the method free return opcode
16091 Need way to refresh JAR files

### Problem Reports Closed

16354 Code Assist has too many items after throws
16863 type hierarchy misses types
14892 Failed package import leads to OutOfMemory errors at compile time
17197 F1 - "Add Jars" to build path locks up eclipse - win2k
15211 NPE while searching for a field
16494 newSuperTypeHierarchy on binary type returns empty hierarchy
17127 IllegalArgumentException in SimpleName.setIdentifier(SimpleName.java:136) in M5
16857 Empty folder creation
16209 Support declared packages that are different from directory location
6068 Walkback during plugin import
12985 Unexpected full build in incremental mode
11022 Unexpected full build
16436 CoreException importing org.eclipse.ui.win32
12520 JDTCompilerAdapter does not understand -extdirs
10047 JDTCompilerAdapter ignores -nowarn and deprecation off.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020521 - 21st May 2002
Project org.eclipse.jdt.core v_249 - MILESTONE 6 / FREEZE 1

## What's new in this drop

- '.classpath' file is now written using platform line delimiters (used to be only using LFs). It is recommanded to convert it to 'text' format so as to avoid surfacing delimiter differences in between incompatible platforms.
- The setting allowing for filtering resource copy now also supports folder filtering. Folder names are recognized by their '/' suffix, e.g. "META-INF/" specifies filtering out all folder named 'META-INF' (and their contents)

### Problem Reports Fixed

3244 Classpath is not saved using UTF8 (1GCV467)
13878 Request to support folders for resource copy filters
16135 Unexpected errors while reconciling

### Problem Reports Closed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020518 - 18th May 2002
Project org.eclipse.jdt.core v_248

## What's new in this drop

- Added `ToolFactory.createDefaultClassFileReader(IClassFile classfile, int decodingFlag)` as an helper method to create a classfile reader for classfile elements.

### Problem Reports Fixed

16130 build xerces/plugin.properties slow
16175 NPE in IndexManager#checkIndexConsistency
15563 CompletionEngine does not report type packages of local variables
12374 NPE in ResultCollector
15977 NPE in Code Assist
14037 Internal Error doing java search
16126 ArrayIndexOutOfBoundsException during compilation
16132 Error on Extract Method Refactoring
16052 NPE when search reference of a constructor
15945 Creating new class causes most projects to be recompiled

### Problem Reports Closed

9244 Search Generates OutOfMemoryError
15423 JRE_LIB source attachment via properties does not work
15931 Proposed results to limited/invalid
16131 Java search fails to find all references to static final MB_ADDITIONS
15192 PackageFragment::copy never overwrites

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020515 - 15th May 2002
Project org.eclipse.jdt.core v_247

## What's new in this drop

- New compiler option added to control max number of problems reported on a unit. Default is 100. See `JavaCore#getDefaultOptions()`

    	 * COMPILER / Maximum number of problems reported per compilation unit
    	 *    Specify the maximum number of problems reported on each compilation unit.
    	 *     - option id:			"org.eclipse.jdt.core.compiler.maxProblemPerUnit"
    	 *     - possible values:	"<n>" where <n> is zero or a positive integer (if zero then all problems are reported).
    	 *     - default:			"100"

- By default, the Java builder is now aborting build process on projects with classpath problems. This option can be disabled through the Java preferences: Window>Preferences>Java>Builder>

### Problem Reports Fixed

16051 DOM/AST: wrong position in if statement
15788 Walkbacks at startup
16021 Infinite loop in JavaCore.isReferencedBy(...)
14467 Outliner doesn't highlight method
16017 JavaBuilder reports build failures on dependencies onto internal JARs
15568 Watchpoints, method breakpoints in interesting locations not showing in editor ruler

### Problem Reports Closed

16801 Compiler problem when */ appears in commented String.
12955 Problem with Type Dialog and HierarchyScopes - build 20020214
16016 Opening a project after starting Eclipse misses project indexes (or other internal stuff)
15190 Java Build errors after save
16008 Hang during shutdown
12392 Problems to add Project from repository
15103 Search results are missing qualification

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020514 - 14th May 2002
Project org.eclipse.jdt.core v_246

## What's new in this drop

- Java compiler never record more than 100 markers for compilation problems. All APIs using IProblemRequestor still see them all. This change is intended to prevent the task list from being overhelmed with tons of secondary problems.
- Added APIs that allow to create a type hierarchy with a set of working copies that take precendence over their original compilation unit:
  - `IType.newSuperTypeHierarchy(IWorkingCopy[], IProgressMonitor)`
  - `IType.newTypeHierarchy(IWorkingCopy[], IProgressMonitor)`
  Note that change notification and refreshing is not supported on these hierarchies.

### Problem Reports Fixed

14051 The implementation for IType.resolveType(String) is not implemented as noted in the JavaDoc specs
15322 need a way to create a type hierarchy that considers working copies
15142 CCE in SourceConstructorDeclaration
15349 JavaModelException out of Content assist
15677 Exception calling sourceType.getFields on working copy of new class
15657 IDOMMethod.getReturnType returns null for all methods
15804 DOM/AST: wrong Length in cascading if/then/else
15400 Compiler generates way too many errors
15857 Deadlock in the indexer.shutdown()
15756 Organizing imports doesn't pick up the right type
15430 hang up eclipse
14965 Search results in .class files don't select reference
15690 Classpath being set in wrong notification lifecycle
15810 ClasspathContainer question
15717 I cant hold JDK Compiler Compliance level setting.
15448 i keep loosing preferences
15113 extract method: assertion failure

### Problem Reports Closed

8137 Code assist for anonymous inner type too late
15761 Log message after importing plugins fails
15852 need set api on IClasspathEntry
15579 Incomplete Java Error Message
13756 Code Completion + Type Introspection
3198 Caller of Signature.toString(String) should be aware that it won't work for '$' separated top-level types (1G4QB2S)
15332 Problem with "\\" in editor/compiler

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020507 - 7th May 2002
Project org.eclipse.jdt.core v_245

## What's new in this drop

- Added org.eclipse.jdt.core.dom.Message#Message(String, int, int). This new constructor allows to set the length field. The constructor org.eclipse.jdt.core.dom.Message#Message(String, int) still exists and set the length to 0. There is no need to use the new constructor if the length is never used.
- Renamed org.eclipse.jdt.core.dom.Message#getSourcePosition() to org.eclipse.jdt.core.dom.Message#getStartPosition(). This is more consistent with the DOM/AST API. The old method has been deprecated and will be removed in a close future.
- Added org.eclipse.jdt.core.dom.Message#getLength() allowing to retrieve the length of the node on which the message has been reported.
- Added `JavaCore#getSharedWorkingCopies(IBufferFactory)` allowing to retrieve all registered working copies for a given buffer factory.
- JavaBuilder no longer build projects for which prerequisite projects aborted the build process. This considerably reduces the number of secondary errors when dealing with workspace setup problems.
- Added `IWorkingCopy#reconcile(boolean forceProblemDetection, IProgressMonitor monitor)` allowing to force problem refresh even if working copy was already consistent.
- Added `IClasspathContainer` new kind constant `K_DEFAULT_SYSTEM` to denote system libraries implicitely contributed by a runtime.
- Classpath container path can have more than 2 segments. First one is still the container ID, the remaining ones are forming the hints passed to the resolution phase (`ClasspathContainerInitializer`
- Classpath containers can no longer contain variable entries
- JavaCore now persists its options (`JavaCore#getOptions`) using its plugin property store. Clients no longer need to save them.
- JavaCore now provides constants for all supported option IDs and values.
- JavaCore option added, to allow build to abort in presence of invalid classpath.
- Leveraged new encoding support from Platform/Core. The JavaCore option "org.eclipse.jdt.core.encoding" is now equivalent to `ResourcesPlugin.getEncoding()`.

      	 * BUILDER / Abort if Invalid Classpath
      	 *    Allow to toggle the builder to abort if the classpath is invalid
      	 *     - option id:        "org.eclipse.jdt.core.builder.invalidClasspath"
      	 *     - possible values:  { "abort", "ignore" }
      	 *     - default:          "ignore"

### Problem Reports Fixed

15416 Classpath container - need to set value even if not referenced
15418 Classpath container - may get the init-in-progress value back
15334 ast: Message should have length
15364 search for references of DebugUIPlugin.setAttributes(...) fails
15175 Need API to retrieve all shared working copies for a buffer factory
15254 JavaModelManager thinks JavaProject is closed when it is open
3356 API - should provide API for running batch compiler (1GJIWDP)
15244 NPE in JDTCompilerAdapter
15289 Why is an incorrect package declaration not reported during reconciling
13225 quick fix: shows up only after I save
15081 JavaConventions.validateClasspath allows nesting source folders
15044 Unable to view some non-java files in external jars
15177 Classpath markers not correctly updated
15168 circular errors not reported
13957 LaunchingPlugin specification of resourceCopyExclusionFilter
12977 Adding Java nature to a project does not bring it to like in package view
15107 Internal Error organizing imports
15030 NPE trying to open or edit source files that reference jbuilder.jar
14838 Scrapbook editor: bad handling of // comment
12543 Code assist to insert method does not work when there are extra top-level statements
15061 IllegalArgumentException in ASTNode.setSourceRange
15036 ASTVisitor.preVisit and ASTVisitor.postVisit not called correctly
3193 JM - ISourceManipulation.delete send replace-BufferChangedEvent (1FYE8XI)
15091 Too many cycle markers generated when cycle is detected
14754 CodeAssist - Duplicate method declaration proposal inside anonymous type
15051 Synthetic access methods are not reported to be synthetic
3059 JRE_LIB not appended to buildPath (1GF7TAZ)
15050 Cleanup Javadoc @exception tags in DOM/AST
14151 The code formatter does not respect the "maximum line length" property when the indentation is set to tabulation.
14974 Bad generated code for '+=' and '-=' operators

### Problem Reports Closed

15719 Errors during build
15087 NPE when methods from the outermost enclosing class is invoked in a anonymous class
13057 NPE in JavaElementRequestor
11155 ArrayIndexOutOfBounds exception that caused workbench to freeze
12921 Build sometimes builds files that have not changed
14962 JDT Search returning improper type
14929 External Locations for Output Files

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020430 - 30th April 2002
Project org.eclipse.jdt.core v_243

## What's new in this drop

- Priority of the background indexer has been lowered so that it doesn't interfer with other threads (e.g. when switching JRE the indexing will not start before the switch has completed)
- Revised Classpath Container proposal (also see notes):
  - `classpathContainerChanged()` got replaced with setter method `JavaCore.setClasspathContainer(IPath containerPath, IJavaProject[] affectedProjects, IClasspathContainer respectiveContainers)`
  - `ClasspathContainerResolver` got renamed into `ClasspathContainerInitializer`
  - Container can no longer contain any `CPE_SOURCE` entry.
  - added container interface `IClasspathContainer` in order to allow containers to be presented in a UI.
    - IClasspathEntry[] getClasspathEntries()
    - String getDescription()
    - int getKind()
    - Path getPath()
- If the completion is inside a super type in type declaration header then the relevance grow when the type have the correct nature :
  - After `extends` keyword of a class header the relevance grow if the type is a class.
  - After `implements` keyword of a class header the relevance grow if the type is an interface.
  - After `extends` keyword of an interface header the relevance grow if the type is an interface.
- If the completion is inside a type in a catch or throws clause the relevance grow when the type is an exception (if the name of the type contain `exception` or `error`).
- If the completion is inside a throw statement the relevance grow when the proposal is an exception.
- The background indexer now recovers from internal crash. If this happens, a new thread is created and a consistency check is done on all indexes.
- An internal buffer factory is now used to create buffers when clients don't provide one.
- Special handling in the formatter for //$NON-NLS- comments in the source. When a line contains such comments it is not formatted anymore. The user will need to manually format it. See 14387 and 12540.

### Problem Reports Fixed

14933 AST: No error message generated for unreachable code
14921 No error message from inner type instantiation in static context
13919 Declaration for package not found if scope is not project
14852 Organize Import: missing import
13531 Java indexing thread finds "Bonjour, le monde!" too interesting
14878 static final char NegThree= (char)-3, -3 == NegThree returns true
14331 ICompilationUnit.getElementAt dos not find import decl
14038 ClassCastException during JavaReconciling
14011 ASTNode.checkNewChild(ASTNode, ASTNode, boolean, Class)
13577 Problem highlighter is unable to import from Java3D library.
14831 NPE with hierarchy search of a local variable
14243 Applet Viewer Integration
14140 ClassCastException when trying to open Java editor
14834 smalltalk-ish error message
11651 Auto-complete shows all Object subclasses after "throws" keyword
4970 Automatic Code Assist needs to be smarter #6
8651 Code assist should offer exception instead of any class
14767 bug in IJavaProject.findType(String, String)
14642 StringIndexOutOfBoundsException when attempting to view some classes
14558 Adding binary project doesn't fix classpath problems.
14588 NullPointerException in Util.equalArraysOrNull
13492 Should handle JavaModelExceptions that contains CoreException more gracefully
12540 Code formatter should leave comments at end of line
14387 Formatter isn't //$NON-NLS-1$ aware
14313 DCR: AST in methods with missing return type
14094 Indexer: Deadlock on delete project
14594 "Open type" doesn't find types in project with Java nature added
14602 ast: length of variable declaration fragment
14592 IType#getTypes and IType#getDeclaringType are not coherent with Hastable
13868 Java Model not updated properly
13234 Can't open type
9296 Hang on open type during indexing
13916 api: IScanner - Scanner.linePtr
14526 NPE when resolving a SimpleName
11529 ast: missing (?) binding on simpleName in VariableDeclaration
14453 Remove InfixExpression.Operator.INSTANCEOF operator
14490 Possible concurrency hole when saving index before query

### Problem Reports Closed

14844 NPE creating binary projects
14908 100% CPU utilization, hang
14733 NPE setting marker attributes
13743 (NPE) Eclipse froze during "open type"
14074 Search: Not all refs to TwoPaneElementSelector constructor found
14889 bug in IJavaProject.findType(String, String)
12439 auto completion doesn't consistently work
14818 no message for uncaught exception in try block when return in finally
13810 ClassCastException in indexer
13527 NPE + GP switching JRE
14096 IWorkingCopy.findElements should not return null
13943 Eclipse crashes when doing a "rebuild all"
14440 Possible bug in compiling inner classes

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020508-M5patch" - 8th May 2002
Project org.eclipse.jdt.core v_242b

## What's new in this drop

- Java builder is logging its internal errors

### Problem Reports Fixed

### Problem Reports Closed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020423 - 23rd April 2002
Project org.eclipse.jdt.core v_242a

## What's new in this drop

- Java model API additions:
  - `IJavaProject.findType(String)`
  - `IJavaProject.findType(String, String)`
  - `IMethod.isMainMethod()`
  - `IMethod.isSimilar(IMethod)`
  - `IType.getFullyQualifiedName(char)`
  - `IType.getTypeQualifiedName(char)`
- API change: `IWorkingCopy.findSharedWorkingCopy()` is now taking an extra argument: the buffer factory it is associated with. This ensures that working copies can only be reused for the same buffer factories.
- JavaModelOperations now guarantee the JavaModel is up to date when notifying the Java model change listeners. In particular, a builder running after the Java builder will be able to query the Java model with respect to the changes introduced through Java model operations (except for index queries). This was never guaranteed in 1.0, but indirectly occurred due to the fact that the previous Java builder implementation did force to refresh the Java model while building.
- Classpath Container Enhancement (also see notes):
  Added new type of classpath entry (`CPE_CONTAINER`), (see proposal here) so as to better encapsulate client defined libraries. Typically, VM installs would use classpath containers instead of classpath variables (`JRE_LIB`) so as to better describe the corresponding set of libraries (including extension dirs) to be placed on the build path.

  New APIs added to reflect this addition:

  - `JavaCore.newContainerEntry(IPath containerPath)`
  - `JavaCore.newContainerEntry(IPath containerPath, boolean isExported)`
  - `JavaCore.classpathContainerChanged(IPath containerPath, IJavaElement scope)`
  - `ClasspathContainerResolver`
- DOM/AST:
  A new type of node has been added to handle properly the instanceof expression. So the new InstanceofExpression node replaced the usage of InfixExpression with the operator InfixExpression.Operator.INSTANCEOF. This operator has been deprecated and is expected to be removed for the next integration build. See bug 14453.

### Problem Reports Fixed

13807 null binding returned for fully qualified array declaration
14403 ast: exception on creation
14229 Failure writing to a read only .project
13905 changes to read-only .classpath file are not thrown out
6165 handle read-only class path file in a graceful way
14322 AST/DOM : IVariableBinding.getDeclaringClass() for 'length' field of an array return null
14343 ClassFileReader.getEnclosingTypeName() should return null for anonymous types
12363 Better integration of the batch compiler with ant javac task option -extdirs
14217 DOM/AST: wrong start position for expression statement
14106 Declarations in Hierarchy does not find declarations in hierarchy
13060 Type hierarchy on region populates Java Model cache for types in the region
14117 NPE importing binary projects
14172 Builder is setting source resources as derived!
3266 Changing kind of classpath entry reports 1 delta (1GDTRTP)
13231 Quick Fix: wrong proposal

### Problem Reports Closed

14141 NullPointerException during search
13831 NPE in RegionBasedTypeHierarchy
12914 Compiler cannot resolve javax.net
13964 Exception on startup
14198 AST: CastExpression.getType().resolveBinding() is null
13939 DBCS: no error message to invalid character in java source

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020418 - 18th April 2002
Project org.eclipse.jdt.core v_241a

## What's new in this drop

- Changing the source attachement of a jar will now correctly fire source attachment java deltas. The flags of these deltas are:
  - `IJavaElementDelta.F_SOURCEATTACHED` if a source has been attached to a jar and no source previously existed.
  - `IJavaElementDelta.F_SOURCEDETACHED` if a source has been detached from a jar and no other source has been attached.
  - `IJavaElementDelta.F_SOURCEDETACHED | JavaElementDelta.F_SOURCEATTACHED` if an attached source has been changed.

### Problem Reports Fixed

14023 NPE in build notifier
14115 Changing source attachment should not fire a F_REMOVED_FROM_CLASSPATH delta
14055 NPE in JavaModelManager.getVariableAsXMLString
14007 StringLiteral.setLiteralValue does not do Unicode escaping
14013 Compiler should not consider 'this.CONST' as constant expression
14008 VariableBinding.getVariableId contains suspicious code
13989 Package view doesn't refresh after JRE switching
12588 Good match marked as potential
13143 Binary constructor search does not work (ref & decl)
13807 null binding returned for fully qualified array declaration

### Problem Reports Closed

14103 Too many dependents found when incrementally recompiling
4384 Setting classpath variables does two builds
3285 Why does change the source attachment trigger a build (1GEHXW3)
13906 Compiler did not detect uncaught exception
14019 NPE with code assist working in an anonymous inner class
9263 Code assist can't see other project's class folders

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020416 - 16th April 2002 - MILESTONE 5
Project org.eclipse.jdt.core v_240

## What's new in this drop

- Changed the package fragment caching policy so as to accomodate large workspaces. It used to be an overflowing LRU cache of size 1000 package fragments. It now is a simple table, which is never emptied implicitly any longer. Memory overhead looks negligeable, and it allows to deal much better with very large workspaces. Other similar improvements were made on the same front so as to improve JRE switching with such workspaces.
- ElementChangedEvent got added notion of type (similar to IResourceChangeEvent), so as to better allow clients to react to JavaModel changes:
  - ElementChangedEvent.POST_CHANGE :

        	/**
        	 * Event type constant (bit mask) indicating an after-the-fact
        	 * report of creations, deletions, and modifications
        	 * to one or more Java element(s) expressed as a hierarchical
        	 * java element delta as returned by getDelta.
        	 *
        	 * Note: this notification occurs during the corresponding POST_CHANGE
        	 * resource change notification, and contains a full delta accounting for
        	 * any JavaModel operation  and/or resource change.
        	 *
        	 * @see IJavaElementDelta
        	 * @see IResourceChangeEvent
        	 * @see #getDelta
        	 * @since 2.0
        	 */
        	public static final int POST_CHANGE = 1;

  - ElementChangedEvent.PRE_AUTO_BUILD

        	/**
        	 * Event type constant (bit mask) indicating an after-the-fact
        	 * report of creations, deletions, and modifications
        	 * to one or more Java element(s) expressed as a hierarchical
        	 * java element delta as returned by getDelta.
        	 *
        	 * Note: this notification occurs during the corresponding PRE_AUTO_BUILD
        	 * resource change notification. The delta which is notified here only contains
        	 * information relative to the previous JavaModel operations (i.e. ignores the
        	 * possible resources which have changed outside Java operations). In
        	 * particular, it is possible that the JavaModel be inconsistent with respect to
        	 * resources which got modified outside JavaModel operations (it will only be
        	 * fully consistent once the POST_CHANGE notification has occured).
        	 *
        	 * @see IJavaElementDelta
        	 * @see IResourceChangeEvent
        	 * @see #getDelta
        	 * @since 2.0
        	 */
        	public static final int PRE_AUTO_BUILD = 2;

  - ElementChangedEvent.RECONCILE

        	/**
        	 * Event type constant (bit mask) indicating an after-the-fact
        	 * report of creations, deletions, and modifications
        	 * to one or more Java element(s) expressed as a hierarchical
        	 * java element delta as returned by getDelta.
        	 *
        	 * Note: this notification occurs as a result of a working copy reconcile
        	 * operation.
        	 *
        	 * @see IJavaElementDelta
        	 * @see IResourceChangeEvent
        	 * @see #getDelta
        	 * @since 2.0
        	 */
        	public static final int POST_RECONCILE = 4;

- Also added a corresponding API on JavaCore so as to allow registering a listener for a given type of event.

      	/**
      	 * Adds the given listener for changes to Java elements.
      	 * Has no effect if an identical listener is already registered.
      	 * After completion of this method, the given listener will be registered for exactly the
      	 * the specified events.  If they were previously registered for other events, they
      	 * will be deregistered.
      	 *
      	 * Once registered, a listener starts receiving notification of changes to
      	 * java elements in the model. The listener continues to receive
      	 * notifications until it is replaced or removed.
      	 *
      	 * Listeners can listen for several types of event as defined in ElementChangeEvent.
      	 * Clients are free to register for any number of event types however if they register
      	 * for more than one, it is their responsibility to ensure they correctly handle the
      	 * case where the same java element change shows up in multiple notifications.
      	 * Clients are guaranteed to receive only the events for which they are registered.
      	 *
      	 *
      	 * @param listener the listener
      	 * @param eventMask the bit-wise OR of all event types of interest to the listener
      	 * @see IElementChangeListener
      	 * @see ElementChangeEvent
      	 * @see #removeElementChangeListener
      	 *	@since 2.0
      	 */
      	public static void addElementChangedListener(IElementChangedListener listener, int eventMask)

### Problem Reports Fixed

12353 DocumentAdapter can never be closed
9628 Switching JRE is slow
11585 Large # of projects lock essential operations in the Workspace
13393 Extremely poor java editor performance in 2002040x
13233 IllegalArgumentException on variable declaration in evaluation
13625 Remove deprecated method from AST/DOM

### Problem Reports Closed

13593 Code Formatter formats synchronized incorrectly.
12921 Build sometimes builds files that have not changed
13522 NPE on anonymous class code assist.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020411 - 11th April 2002
Project org.eclipse.jdt.core v_239

## What's new in this drop

- Added a first proposal for .class file reading APIs. This is still experimental and might change slightly. See new API in org.eclipse.jdt.core.util.
  - ByteCodeVisitorAdapter
  - ClassFormatException
  - DecodingFlag
  - IAttributeNamesConstants
  - IBytecodeVisitor
  - IClassFileAttribute
  - IClassFileDisassembler and ToolFactory#createDefaultClassFileDisassembler
  - IClassFileReader
  - ICodeAttribute
  - IConstantPool
  - IConstantPoolConstant
  - IConstantPoolEntry
  - IConstantValueAttribute
  - IExceptionAttribute
  - IExceptionTableEntry
  - IFieldInfo
  - IInnerClassesAttribute
  - IInnerClassesAttributeEntry
  - ILineNumberAttribute
  - ILocalVariableAttribute
  - ILocalVariableTableEntry
  - IMethodInfo
  - IModifierConstants
  - IOpcodeMnemonics
  - ISourceAttribute
  - OpcodeStringValues
  The default implementations are in org.eclipse.jdt.internal.core.util. Any comment is welcome and related bugs should be entered in JDT/Core.
- Added char array based APIs on Signature. This APIs avoid creating needless Strings and are thus much more performant than their String based equivalent.
  - `createArraySignature(char[], int arrayCount)`
  - `createCharArrayTypeSignature(char[], boolean)`
  - `createMethodSignature(char[][], char[])`
  - `getArrayCount(char[])`
  - `getElementType(char[])`
  - `getParameterCount(char[])`
  - `getParameterTypes(char[])`
  - `getQualifier(char[])`
  - `getReturnType(char[])`
  - `getSimpleName(char[])`
  - `getSimpleNames(char[])`
  - `toCharArray(char[], char[], char[][], boolean, boolean)`
  - `toCharArray(char[])`
  - `toQualifiedName(char[][])`
- Removed temporary 2.0 API which were deprecated in previous builds:
  - `IWorkingCopy#getSharedWorkingCopy(IProgressMonitor, IBufferFactory)`, use API with extra `IProblemRequestor`
  - `IWorkingCopy#getWorkingCopy(IProgressMonitor, IBufferFactory)`, use API with extra `IProblemRequestor`
  - `IWorkingCopy#reconcile(IProblemRequestor)`, use API with no `IProblemRequestor`

### Problem Reports Fixed

12762 Performance - Signature#createTypeSignature should be implemented in term of char[]
12688 NPE with code assist
13408 Subfolders of build folder are not marked as derived
13355 NPE during code completion
13391 NPE doing code assist
13487 NPE in CompletionEnige
13395 loading swt+examples with auto-build on causes deadlock (or takes a very long time)
13063 NPE in extract method
13247 IllegalArgumentException while creating AST
13386 'not implemented yet' surfaced on Display in debug

### Problem Reports Closed

12617 code assist: Proposals inside method parameters
12338 Unnecessary recompilation when adding packages
12262 Compiler Bug with import Statement
7082 NPE during build

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020409 - 9th April 2002
Project org.eclipse.jdt.core v_238a

## What's new in this drop

- Adding a new empty source folder no longer causes a full build. Only an incremental build is needed now.
- Java model API additions:
  - `IJavaElement.getAncestor(int)`
  - `IJavaElement.getOpenable()`
  - `IJavaElement.getPath()`
  - `IJavaElement.getResource()`
  - `IJavaProject.isOnClasspath(IJavaElement)`
  - `IPackageFragmentRoot.getRawClasspathEntry()`
  - `IType.findMethods(IMethod)`
  - `IWorkingCopy.findElements(IJavaElement)`
  - `IWorkingCopy.findPrimaryType()`
- ICompletionRequestor API change :
  - Added #beginReporting() and #endReporting() API on `IProblemRequestor`. #beginReporting is always called before restarting error detection. #endReporting is always called at the end of detection.
  - Added API for setting multiple classpath variables at once (`JavaCore#setClasspathVariables`, this allows to update all affected projects exactly once, instead of iterating multiple times on each project (if it references the variable). This can improve performance when setting JRE variables.
  - Added a new parameter `relevance` to be able to sort proposal by degree of relevance. `relevance` is a positive integer which are used for determine if this proposal is more relevant than another proposal. This value can only be used for compare relevance. A proposal is more relevant than another if his relevance value is higher.
    `ICompletionRequestor{`
    `void acceptAnonymousType(..., int relevance);`
    `void acceptClass(..., int relevance);`
    `void acceptError(...);`
    `void acceptField(..., int relevance);`
    `void acceptInterface(..., int relevance);`
    `void acceptKeyword(..., int relevance);`
    `void acceptLabel(..., int relevance);`
    `void acceptLocalVariable(..., int relevance);`
    `void acceptMethod(..., int relevance);`
    `void acceptMethodDeclaration(..., int relevance);`
    `void acceptModifier(..., int relevance);`
    `void acceptPackage(..., int relevance);`
    `void acceptType(..., int relevance);`
    `void acceptVariableName(..., int relevance);`
    `}`
  - If the completion identifier and proposal are equal and the case match then the proposal relevance grow. Note that this isn't a 1.0 breaking API change, it only affects the 2.0 new code assist API (i.e. still backward compatible with 1.0 clients) which hasn't yet reached stability, though it should be close to now.

### Problem Reports Fixed

12614 Initializing JRE variables slow on plug-in activation
12986 Creating a working copy does not involve the problem requestor
12858 Compiler Bug : Invalid Byte Code:
11739 Dead branches in package/project Hierarchy View
12873 CodeAssist : missing proposal of method declaration
12007 Source folder ending with .jar considered as JAR archive
12908 Build and save attempt fail with NPE and trying it many times crashs Eclipse
12246 Packages view shows .class and .java files when JAR has source
3349 Need a IJavaElement.getUnderlyingResource that does not do the exists test (1GJ69GP)
12975 jacks - qualified assignment to final field should be rejected
12969 jacks - synchronized (void expression) should be rejected
12705 Progress monitor cuts off package name
12767 AST MethodBinding question
9179 DCR: Need IJavaSearchScope equals or encloses
12444 strange types names in ReorderParameters error dialog
12781 AST instanceof-InfixExpression: Cant resolve type
12778 Typo in comment: InfixExpression.RIGHT_SHIFT_UNSIGNED
12768 IScanner doesn't let user state whether line separators are to be recorded
12651 NPE out of the CompletionEngine
12761 Closing a top level binary type doesn't close the class files of its inner types
12760 Type hierarchy missing anonymous binary type if closed
12674 Too many problems while reconciling
12373 Assert$AssertionFailedException error while reconciling

### Problem Reports Closed

13059 incorrect (?) code compiles
12880 SQLJ Support
12603 Could not delete empty java file
9600 Field reference in working copy not found
12995 ToolFactory::createScanner - incorrect javadoc
12933 "Never used" variable warnings can't detect across scope
5135 Open Java editor on IResource.class do an error
12809 Unimplemented methods should not prevent class from running
10421 WSAD hang while setting buildpath
12590 Returning the type when local var is selected breaks refactoring
12710 Inconsistent behavior for the method IType.createField()

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020402 - 2nd April 2002
Project org.eclipse.jdt.core v_237

## What's new in this drop

- Improved specification of `IBuffer` by saying that:
  - Java model operations that manipulate an `IBuffer` (e.g. `IType.createMethod(...)`) ensures that the same line delimiter (i.e. either `"\n"` or `"\r"` or `"\r\n"`) is used accross the whole buffer. Thus these operations may change the line delimiter(s) included in the string to be append, or replaced. However implementors of this interface should be aware that other clients of `IBuffer` might not do such transformations beforehand.
  - `addBufferChangedListener` and `removeBufferChangedListener` have no effect if the buffer is already closed.
  - Other operations that manipulate the buffer (like `setContent` might throw a `RuntimeException` if called after the buffer has been closed.
- IScanner API :
  - added `IScanner#getSource` so as to retrieve the scanner original source
  - renamed `IScanner#setSourceBuffer` into `IScanner#setSource`

### Problem Reports Fixed

12454 AST/DOM: IllegalArgumentException generated by bad source
12431 Unclear compiler error
12416 Separate caching of project and pkg fragment root from caching of openables
12457 Need to synchronize JobManager.discardJobs(...)
12445 Compiler Failure on reference to abstract interface method
12417 api: IScanner, ITerminalSymbols - no way to get some tokens
12419 Weird secondary error in constructor reconciliation
12419 api: IScanner - missing (?) getSourceBuffer
12380 AST/DOM: resolveTypeBinding() on the second operand of a instanceof expression return null
9790 Add constructors from superclass inserts in wrong place
12387 Out Of Memory error importing file
3423 Need IConstants (1GKM51O)
11583 Infinite loop in OverflowingLRUCache
12346 Leaking closed buffers
11431 Stepping from one case statement's break ends up in next case
12326 Bad line number information returned from CompilationUnit with no trailing newline
3313 Severe - Performance - Java Model redundancies (1GFKTUN)

### Problem Reports Closed

12470 0214 - Walkback during encapsulate method
9179 DCR: Need IJavaSearchScope equals or encloses
10307 Code assist failed to search whole class path
7079 Code formatting fails with java.lang.Error
3255 Reminder - re-enable transient marker generation during code-assist (1GDCXLB)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020426 - 26th April 2002
Project org.eclipse.jdt.core v_236

## What's new in this drop

- Reconciling with errors provide type errors in addition to syntax ones. This is still experimental, and can be disabled by unchecking the editor preference for transient problems.
- Performance improvement of index queries with the `WaitUntilReady` policy. The background indexer now takes all the CPU when another thread is waiting for it to finish indexing. User will notice this improvement when doing a search or opening a type and there are still files to index.
- Scanner API
  - defined scanner API (see `org.eclipse.jdt.core.compiler.IScanner`).
  - added tool factory API (see `org.eclipse.jdt.core.ToolFactory#createScanner`), allowing to obtain a scanner (implementing `IScanner` API).
- Code formatter API
  - defined code formatter API (see `org.eclipse.jdt.core.ICodeFormatter`).
  - added tool factory API (see `org.eclipse.jdt.core.ToolFactory#createCodeFormatter`), allowing to obtain a code formatter (implementing `ICodeFormatter` API). Note that an extension point was also added to allow client code to contribute a code formatter implementation. The code formatter extension point is named `org.eclipse.jdt.core.codeFormatter`, also see associate comment in plugin.xml.
  - added tool factory API (see `org.eclipse.jdt.core.ToolFactory#createDefaultCodeFormatter`), allowing to obtain a default code formatter (implementing `ICodeFormatter` API).
- Working Copy API : instead of passing a problem requestor (`org.eclipse.jdt.core.IProblemRequestor`) to working copy #reconcile(...) operation. The problem requestor is passed along at creation time.
  - added IWorkingCopy.getWorkingCopy(IProgressMonitor, IBufferFactory, IProblemRequestor)
  - added IWorkingCopy.getSharedWorkingCopy(IProgressMonitor, IBufferFactory, IProblemRequestor)
  Previous API taking `IBufferFactory` got deprecated, they will be removed in a subsequent build.
- Some internal classes got deprecated (as client code relies on them), since being surfaced:
  - `org.eclipse.jdt.internal.core.parser.InvalidInputException`
    ==> `org.eclipse.jdt.core.compiler.InvalidInputException`
  - `org.eclipse.jdt.internal.core.parser.TerminalSymbols`
    ==> `org.eclipse.jdt.core.compiler.ITerminalSymbols`
  They will be removed in a subsequent build.

### Problem Reports Fixed

3353 API - Should provide api for formatting source (1GJIWCF)
3179 Compiler - LF cannot run classes that miss implementations of an interface (1FNFVY8)
12199 Generated classfiles should be tagged as derived resources
11640 Bug in the code formatter
10544 Internal error creating long package name
12140 typo in IPackageFragmentRoot::createPackageFragment javadoc
11422 Attaching source when using variables to point to jars very unintuitive
12000 Main.compile does not close log file
6558 Missing class path entries should be displayed as an error
3354 API - should provide api for Scanning (1GJIWCT)
7496 Interface shows as class under content assist
11475 Code resolve reports types in security package
10899 Can't open on selection for member type in binary class
12013 JavaCore.getClasspathVariable fails on empty variables
11845 Internal Compiler Error
11922 is this code reachable or not?

### Problem Reports Closed

12119 Eclipse build slow on network
7881 IType.move() clobbers editing buffer of destination element
10703 ast: no API to figure out the source range of 'super' keywords
10983 NullPointerException in JavaBuilder during Save
3355 API - should provide API for source element parsing (1GJIWD8)
10955 DCR - search: too limiting api of IJavaSearchScope
8819 Self hosting tool doesn't update search index
11497 Renaming project failed with Java Model Exception: Java Model Status [Name collision.]
12059 api: JavaCore::getOptions should return Map, not Hashtable
12044 Search for field reference broken
11905 DCR - provide scanning API

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020321 - 21st March 2002 - MILESTONE 4
Project org.eclipse.jdt.core v_235a

## What's new in this drop

### Problem Reports Fixed

12014 No delta when adding package where src=bin and src!=proj
11755 resource copy filter and duplicated resource error
11640 Bug in the code formatter
11860 Cannot move a compilation unit
11627 Refactoring: CCE in Pullup method
11735 NPE selecting F3 in editor
11854 NPE on save
11805 build output filter is ignored
11568 Code resolve does not work for changed constructor
11656 Please add a ICompletionRequestorAdapter
9271 NPE inspecting "null" in the expressions view
11638 ast: CompilationUnit::findDeclaringNode fails

### Problem Reports Closed

11272 slow context assist on method/field-rich classes
11340 open on selection does not work for binary types
11654 NPE during build
11659 ast: CompilationUnit::findDeclaringNode fails #2
11086 ClassFileCompilationUnit should implement IClassFile

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020319 - 19th March 2002
Project org.eclipse.jdt.core v_234

## What's new in this drop

- New API on IType for complete snippet in current type context. Code complete is performed against source (if available) or against type structure
  `void codeComplete(`
  `char[] snippet,`
  `int insertion,`
  `int position,`
  `char[][] localVariableTypeNames,`
  `char[][] localVariableNames,`
  `int[] localVariableModifiers,`
  `boolean isStatic,`
  `ICompletionRequestor requestor) throws JavaModelException;`

### Problem Reports Fixed

10318 Feature Request: new Code Assist API required

### Problem Reports Closed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020318 - 18th March 2002
Project org.eclipse.jdt.core v_233

## What's new in this drop

- Added option to trace java search activity. To enable it, see the following line in the org.eclipse.jdt.core/.options file: `org.eclipse.jdt.core/debug/search=true`
- Added API `CorrectionEngine#computeCorrections(IProblem, ICompilationUnit, ICorrectionRequestor)`, allowing. to compute replacement corrections for IProblem(s) detected while reconciling.
- Added API `ISourceReference#exists()`, allowing. to check existency before invoking `ISourceReference` behavior. All implementations did already provide an `exists()` method since they also are implementing `IJavaElement`.

### Problem Reports Fixed

11524 api: IWorkingCopy:: getWorkingCopy() javadoc
11511 Compiler 1.4 fooled by extra interface methods
11389 Unused parameters not showing up as compiler warnings
11410 Exception in Java Builder when debug options turned off
11285 Potential NPE in CopyResourceElementsOperation.processPackageFragmentResource
11440 npe in rename temp
11468 NPE deleting project
11435 compiler bug: overwriting implicitely abstract method in anonymous inner class
11250 NPE in log after importing plugins
11271 Unable to delete a binary project in Java perspective
11210 ResourceDeltas are lost when merging deltas
11380 ast: missing binding for ConditionalExpression
11371 DOM/AST: node missing for super constructor call
6243 an ISourceReference API issue
11296 NPE during build

### Problem Reports Closed

3438 OpenOnSelection - should be able to locate missing method by guessing (1GL186P)
11406 ActionPerformed() method in AbstractAction not found
3221 JM - Deadlock while saving in Editor (1GAJ67W)
11201 ClassCastException during build process

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020314 - 14th March 2002
Project org.eclipse.jdt.core v_232

## What's new in this drop

- Added API `IDOMFactory.createInterface()` and `IDOMFactory.createClass()`. See 10980 for details.

### Problem Reports Fixed

11355 OpenOnSelection unable to perform in single-type import
9232 ICompilationUnit.delete() fails
11176 Organize imports misses org.eclipse.core.resources
3224 Tests - Re-enable reconciler tests (1GAKXZM)
10980 JDT / factory for new interfaces would be nice
10996 createCompilationUnit doesn't behave as described in the documentation
11125 DOM/AST: API request
11277 Difference in between outliner content and unit content
10833 Open type doesn't propose all type after a checkout
11067 Adding useful toString() method for each new DOM/AST nodes
9933 Format does not handle synchronized keyword correctly

### Problem Reports Closed

8675 DCR - Code correction could suggest new element creation
11341 incorrect outline (i see only imports)
11217 is double "; " on a return statement an error?
10031 SEF ClassCastException

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020312 - 12th March 2002
Project org.eclipse.jdt.core v_231

## What's new in this drop

- Performance improvement:
  - Search doesn't populate the Java Model any longer. Thus the memory used by a search operation can be reclaimed at the end.
  - Access to zip and jar files has been improved, which should result in better performance on a slow network.
- Added flag `IJavaElementDelta.F_FINE_GRAINED` that indicates that a fine-grained delta was computed for a given delta. Clients can use this flag to find out if a compilation unit that have a `F_CONTENT` change should assume that there are no finer grained changes (`F_FINE_GRAINED` is set) or if finer grained changes were not considered (`F_FINE_GRAINED` is not set).
- Surfacing IProblem (`org.eclipse.jdt.core.compiler.IProblem`)
  This allows some Java API to report failures in a lighter way than generating markers. Marker based API have been deprecated (note that due to some deadlock in client code, some of these API did not even produce markers, e.g. reconciling). In addition to surfacing problem descriptions, IProblem exposes all the IDs for the Java problem markers (attribute "id" on markers of type "org.eclipse.jdt.core.problem")
- Changed error reporting method for `ICompletionRequestor` to surface IProblems instead of IMarkers.

### Problem Reports Fixed

11191 Strange anonymous types in outline structure
11151 ast: IllegalArgumentException on AST creation
10538 Possible memory leak?
10616 StringIndexOutOfBoundsException opening type selection dialog
11152 Code Select - does not work with empty selection
11129 DOM/AST: Call resolveTypeBinding() on a CastExpression object throws a NullPoitnerException
3256 SearchableEnvironment - converts char[] to String, which affects performance
10984 DOM/AST: CU with syntax errors
11106 DOM/AST: do statement doesn't contain trailing semicolon
11104 DOM/AST: NumberLiteral contains leading and trailing comments
10213 SearchEngine.createJavaSearchScope((IJavaElement[]) does not work for binary elements
9240 Search finds deleted classes
11011 incorrect 'variable never used' warning
11025 extract method: incorrectly disallowed on some boolean expressions
10697 Performance - Binary model should not cache the classfile bytes
11037 DOM/AST: IllegalArgumentException when creatin AST
10635 Override methods not showing missing methods
7930 Code Assist - No completion in switch statement
10979 JDOM/add superinterface format problem
10986 DOM/AST: NPE when trying to resolve a binding
10580 type hierarchy incorrect for nested types
10935 DOM/AST: wrong length of variable declaration fragment
6111 Missing completion
10898 DOM/AST: NullPointerException
3261 Search - Memory peak during search (1GEN17L)
6667 Search: OutOfMemoryError searching wildcarded field ref
10874 DOM/AST: ClassInstanceCreation contains trailing comment
10881 DOM/AST: SwitchCase.isDefault always returns false
10865 DOM/AST; AST.resolveWellKnownType("void") returns null
10861 DOM/AST: TypeLiteral.resolveTypeBinding doesn't return class Class
10819 Incomplete task description after build with incomplete classpath
10468 DOM/AST: TypeDeclaration#isLocalTypeDeclaration doesn't consider anonymous types
10499 DOM/AST: need a way to access the IMethodBinding of a ClassInstanceCreation
10496 DOM/AST: need for a node that holds the body statements of a ClassInstanceCreation
10781 ast: incorrect position and length for AnonymousClassDeclaration
10843 DOM/AST: wrong structure for for statements
10663 ast: exception in AST converter
10759 ast: incorrect length of SimpleName (subsubnode of ArrayType)
10500 Shouldn't ignore inherited method with wrong argument types

### Problem Reports Closed

10627 Rebuild Deletes non-Class Resources
3233 JM - CreateElementInCuOperation should not save working copy (1GBEKAW)
3445 search: type hierarchy scope incorrect (1GLC8VS)
10954 IMember::getFlags semantics on interface members
3195 Unnecessary proposals in Open on selection whith syntax error (1G0EIBB)
10933 DOM/AST: position of AnonymousTypeDeclaration is [-1,0]
10815 Error message for "incomplete path" lacks details
10913 DOM/AST: resolveBinding() for static field access
10698 DOM/AST: exception when creating AST
4946 Cross-project builder efficiency issues
3213 No compile error for bad interface (1G7G6M1)
10667 NPE in self encapsulate field
10389 Editing non-Java files causes a recompile
10313 Can not create Java project from existing source (1000+ Java files)
10794 NPE from search during refactor, pull up method
10699 ast: nothing in anonymous inner classes is created

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020305 - 5th March 2002
Project org.eclipse.jdt.core v_230

## What's new in this drop

- Added API `IClassFile.getWorkingCopy(IProgressMonitor, IBufferFactory)` for consistence with `IWorkingCopy`. The returned working copy is just a wrapper on the class file's buffer. Thus only the `getBuffer()` operation is valid on this working copy.
- Added the notion of shared working copies. This allows clients to always get the same `IWorkingCopy` instance when asking for a working copy. See `IWorkingCopy.getSharedWorkingCopy(IProgressMonitor, IBufferFactory)`, `IWorkingCopy.findSharedWorkingCopy()` and `IWorkingCopy.destroy()` for more detail.
- Added option to trace use of shared working copies. To enable it, see the following line in the org.eclipse.jdt.core/.options file: `org.eclipse.jdt.core/debug/sharedworkingcopy=true`
- Added extension point to jdtcore so as to allow client plugins to register classpath variable initializers. Extension point is "org.eclipse.jdt.core.classpathVariableInitializer". (also see design notes) Note that each classpath variable, if unbound, will trigger its registered initializer exactly once per session. If unsuccessful, it will stay unbound.
- Added option to trace classpath variable initializations. To enable it, see the following line in the org.eclipse.jdt.core/.options file: `org.eclipse.jdt.core/debug/cpvariable=true`
- Added option to trace access to zip and jar files from the Java model. To enable it, see the following line in the org.eclipse.jdt.core/.options file: `org.eclipse.jdt.core/debug/zipaccess=true`
- Resurrect some code for backport 1.0 internal functionality
  - org.eclipse.jdt.internal.compiler.ConfigurableOption (all the class).
  - org.eclipse.jdt.internal.formatter.CodeFormatter (some methods) :
    - public CodeFormatter(ConfigurableOption[] settings)
    - private static Map convertConfigurableOptions(ConfigurableOption[] settings)
    - public static ConfigurableOption[] getDefaultOptions(Locale locale)
    - public static String format(String sourceString, int initialIndentationLevel, ConfigurableOption[] options)
  - org.eclipse.jdt.internal.formatter.Options.properties (all the file)

### Problem Reports Fixed

3303 Many errors when adding projects from repository in a fresh install (1GF5PU7)
5285 Compile errors on load when Java Perspective not open
7085 Build errors when adding the JUnit example project
10700 ast: resolveBinding returns null on parameter reference
10676 StringLiteral.resolveTypeBinding() return null
10679 ClassCastException when calling resolveTypeBinding() with an error
10634 Problem with compiling some java classes; class not visible
10340 NPE when selecting multiple methods to "Pull up"
10662 Casting to Buffer makes it impossible for clients to implement IBuffer
10592 ast: NPE in SingleVariableDeclaration::resolveBinding
9583 DOM : Self encapsulate field: NPE
10570 ast: CatchClause has incorrect startingPoint
10587 ast: missing node for a variable binding
9588 Invalid delta when replacing jar and proj=src=bin
10495 typo in ASTNode::MALFORMED javadoc
10472 CodeAssist - No completion between dot and number
3323 OpenOnSelection - no selection inside CodeFormatterPreferencePage.fTextListener initializer (1GGND3S)
10466 "Cannot reference a field before it is defined" - compiler bug?
10386 NPE in MatchLocator.lookupType
10378 perf problem with external JARs
9593 SelectionEngine give more results than expected
9969 CodeFormatter: Bug when formatting try/catch Block
3231 1.4 - target is now 1.2 (1GHW0DF)
9998 Performance - Better pruning meaningless AST nodes upon completion
10240 JDTCompilerAdapter doesn't understand "deprecation" from Ant
10274 DOM/AST: wrong implementation of TypeDeclaration.getFields
10241 Remaining references to com.ibm

### Problem Reports Closed

10753 Compiler barfs on c:\ubizen with invalid unicode
10749 Bug is code formatter
10701 Undefined method when compiling using JDK 1.4
10674 AST API request : method binding for ClassInstanceCreation
10583 Can not save any java file
10275 Search: reference to class not found
3437 Code Assist fails when method has unknown return type (1GL12EG)
9579 Search: declaration in hierarchy - wrong matches
10460 The Compiler can not resolve package level class
10244 DOM/AST: MethodInvocation should have resolveBinding() method
9157 My existing .class files are deleted!

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020226 - 26th February 2002
Project org.eclipse.jdt.core v_229

## What's new in this drop

- Java tooling now performs normally inside method bodies whose signature could not be resolved.
- Specified that when an `IBuffer` is created through an `IBufferFactory`, its content is set with the original element's content.

### Problem Reports Fixed

10110 Project not build since it was inconsistent
9642 Search - missing inaccurate type matches
9992 Member class declaration not found
10221 No variable name suggestion on array type
10166 Interface hides Object methods
7934 Builder always rebuilds when workbench restarted
7456 Error message with overloaded methods is confusing
10152 Computing hierarchy of IResource is slow
8809 Code assist with class folders does not work
9763 Code assist failure due to error in method signature:1GRVN5R
9985 Built in compiler will sometimes not allow Object method calls on Interfaces
10008 Internal compiler error when compiling switch statement
9912 Batch compiler doesn't put binaries in the right folder when -d is missing
6059 NPE in JavaModelStatus
9351 Copying a compilation unit onto itself destroys compilation unit
9813 VerifyError with Inner Class having private constructor
9492 Walkback while searching
9837 Inconsistent behavior when compiling from source or using binaries for constant expressions

### Problem Reports Closed

6951 DCR - Builder should ignore filtered out resources
5809 Duplicate class names in separate package imports cause compile error
9888 JAR exorter problems with META-INF in projects with no source folder
10104 Calculated serialVersionID's are incompatible with Sun's JDK

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020214 - 14th February 2002 - MILESTONE 3
Project org.eclipse.jdt.core v_228

## What's new in this drop

### Problem Reports Fixed

9479 exception on package creation (discouraged name)
5999 IType.resolveType returns multiple matches also the type is unambigious
7485 IType resolve fails
9785 Problem in IType.resolveType()
9239 search for method declaration - strange behavior

### Problem Reports Closed

5647 Search results differ when using outliner context menu vs. dialog
5239 outliner gets out of synch
5029 Internal Error saving java file
9586 Java 1.4 feature assert does not throw any exception
9504 1GRU1L3:Search reference works only in outline view and not in editor
9476 ArrayIndexOutOfBounds in JavaBuilder
3262 Strange output file deletion (1GDS2IX)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020212 - 12th February 200
Project org.eclipse.jdt.core v_227

## What's new in this drop

- Resource copy filters : A new setting allows to specify exclusion filters for resource being copied to the output folder..
  - option id: "org.eclipse.jdt.core.builder.resourceCopyExclusionFilters"
  - possible values: { "<name>[,<name>]* } where <name> is a file name pattern (only * wild-cards allowed)
  - default: ""
- Encoding support : Batch compiler can be specified the source encoding format using '-encoding myEncoding' command line option. In case of necessity, each individual file specified on the command line can be associated with a custom encoding by suffixing its name with '[myEncoding]' (if applied to a folder, then all files in it will be sharing the custom encoding). When no encoding is specified, then the platform default is used (as before). Similarily, a JavaCore option got added to control the default encoding (no support yet for per file custom encoding).
  - option id: "org.eclipse.jdt.core.encoding"
  - possible values: { "" for platform default, or any of the supported encoding name }.
  - default: ""
- Fix for 9183 required to increment the index signature version so as to trigger automatic reindexing on workspace startup (and thus add somme type references that were previously missing from the binary index files). Subsequent startups will not reindex any further (only if inconsistency is detected, e.g. signature version is different).
- The `IBufferFactory` used when creating an `IWorkingCopy` (see `ICompilationUnit.getWorkingCopy(IProgressMonitor monitor, IBufferFactory factory)`) is now remembered and will be reused if the working copy is closed then reopen.
- Old Java builder implementation got removed
- Project dependency cycle detection reenabled
- Open on selection no longer need a non-empty selection to perform (when empty it will use the token in which the selection start position is located).
- Improved progress reporting while searching all types in the workspace.

### Problem Reports Fixed

9452 IllegalArgumentException when creating an AST for TestCase.java
7390 Editing and saving read-only .java source file may cause lost of data
7926 Code Assist - No completion for class instance creation after inner class
7636 Can't do code assist after field with local class
8369 Code assist stops to work after anonymous class
9398 Compiler error with double array
9395 ClassCastException during build
9185 Severe shutdown performance problem
6167 Indexer not stoped on exit
7362 Override Methods doesn't handle unicodes
7295 Indendation in generated getters/setters of inner classes
6678 Incorrect output after Add Unimplemented Method
8758 null pointer exception in eclipse core while compiling Java code
6236 Renamed file is not excluded from project build
8696 Code assist doesn't work in initializer of anonymous inner class
6064 Open on selection shouldn't require selection.
9223 CodeAssist failure in inner type from class file.
6847 DCR - Filtering output to build directory
9309 DOM/AST: NPE when trying to resolve a binding
9308 DOM/AST: two equal hash table accesses
9101 Parse error while typing in Java editor
9031 NPE in AbstractMethodDeclaration.compilationResult during search
9084 NPE in parser during build
9008 Code assist on method declaration gives wrong throw exception
8878 Code assist provides arbitrary, invalid choice after a space
9128 NegativeArraySizeException starting workbench
9035 I got an NPE
9183 BinaryIndexer doesn't index all type references
3321 Adding missing source folder doesn't remove warning (1GGCC4P)
3219 JM - 'Cycle detected' should not be a marker attribute (1G8VTSA)
9169 Wrong code generation for comparison of string constants
8685 Exception while deleting a method
4021 jdt: Java elements and resources: error in source code (1GG87S9)
7878 On Package creation: No warning for unconventional names
9041 search: cannot create a sub-cu scope
9088 Unreachable catch block when error in referenced class's fields
3299 Autobuild produces errors when renaming source folders
9009 ClassCastException creating an invalid method

### Problem Reports Closed

3190 JM - use of "open" in java model inconsistent with core (1FW2EYQ)
3268 create(IProject) strange for normal projects (1GDVTER)
8527 Delete inner class
3037 Core error compiling a java class (1GEJK8Q)
9386 cannot import jar files into project
7976 JDT misses the new Java files created by PDE
5713 NPE when searching for references in a JAR
9177 Builder treats build errors as JavaErrors
8040 java source with $ in reference won't compile
5036 assertion fails on build
8498 deprecated methods are not displayed in the task console
3371 Assertion failed exception during build (1GK183O)
3419 asserion failed in build (1GKB9CH)
7895 Wierd state: Project not built because inconsistent.
7830 Deleting more than one method consecutively from the hierarchy view causes unexpected corruption of othe methods
9190 Removing a library from classpath gives not a remove delta
9104 copy package progress dialog has missing string
5706 Cannot add two folders w/ same name but diff projects to build path of Java project
9103 Search reports no references to SWT.Help
6418 Scrapbook: "Unexpected End Of File" expected
3191 JM - non-existing external jars will not come to life when created (1FWI5C4)
8980 Unpredictable error catching on overridden methods with less visibility
9024 Do not find reference to an interface in JAR
9040 DOM/AST: why is the left hand side of an assignment an expression

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020205 - 5th February 2002
Project org.eclipse.jdt.core v_226

## What's new in this drop

- The JavaModel no longer notifies changes for generated classfiles in the output folder, these were never supposed to be signaled.

### Problem Reports Fixed

3448 No error for package and type collision in default package
9016 DOM/AST: Problems with array.length access
9014 DOM/AST: NullPointerException when resolving System.err.println
9018 DOM/AST: why does the key of a variable binding include the type
5355 search: NPE in searchDeclarationsOfReferencedTypes
8928 Unable to find references or declarations of methods that use static inner classes in the signature
3291 Exception adding .class file to folder in package view (1GEUF3I)
8900 Search causing internal error
8812 Changing export state not propagated
8856 DOM AST: positions and bindings missing on QualifiedName
3446 type hierarchy: incorrect behavior wrt working copies (1GLDHOA)
3210 Search - method declarations within TypeHierarchy gives no matches (1G54BMR)
8145 TypeDeclaration sourceEnd contains trailing comment
8832 Sanity check error (internal error) when unused variables inside initializers
8078 Missing resource in copy CU dialog
8764 NPE while closing projects
8359 Index out of date when replacing a JAR
8773 VerifyError : A .class file exported from VAJ does not run in JDK 1.2.2 (1GPPET0)
8697 2 compiler bugs: the operator unkown operator is undefined and defined in an inherited type and an enclosing scope
8706 Compile error when compiling an anonymous class which extends java.awt.Frame
8709 Error compiling JDK1.4 classes
8340 inaccurate error message when dependent project is closed
3344 JavaElementDelta reports changed class files (1GIV8IK)
8384 Unexpected compile errors when abstract method missing return type
8789 Compiler incorrectly reports that abstract method has a body

### Problem Reports Closed

7987 Field reference search should do lookup in 1.4 mode
8863 .classpath gets overwritten if there's an XML error
7162 Java Model Exceptions in log from TypeHierarchyLifeCycle
8699 Compiler error message incomplete: Syntax error on token ''
3324 Bad compiler error (1GHF25P)
3441 Internal error renaming a class (1GL2XCW)
7841 Overriden methods inserted past the end of source

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020129 - 29th January 2002
Project org.eclipse.jdt.core v_225

## What's new in this drop

- Java compiler is JCK 1.4 compliant. When toggled in 1.4 mode (batch: -1.4 -source 1.4), the Java compiler is fully JCK 1.4 compliant as of JCK 1.4 2001-10-01 update. When in 1.3 mode (default), it is JCK 1.3a compliant.
- By default, when toggled into 1.4 mode, the batch compiler will enable assertion support (e.g. -source 1.4). It can still manually be toggled for 1.3 source level compatibility (-source 1.3).
- Added constructor `SearchEngine(IWorkingCopy[])` which takes a list of working copies that will take precedence over their original compilation units in the subsequent search operations on this search engine.
  Note that this functionality is still under development and some parts may not work as expected. Feedback is welcome.
- New feature to achieve problems corrections : org.eclipse.jdt.core.CorrectionEngine. Correction results are answered through a requestor (org.eclipse.jdt.core.ICorrectionRequestor).
- JavaCore will no longer add indirectly prereq'ed project amongst project references.
- New JDOM AST API available (also see design note). This API has not yet reached full stability, and feedback is very welcome.

### Problem Reports Fixed

8641 Can't find references in hierarchy in binary projects
8659 Unexpected changes in project references (.vcm-meta)
8358 Search: doesn't find reference although there are
6799 Duplicate type collisions
8414 Incorrect "unused variable" warning?
8484 Internal error searching for write access to a variable
8536 Bug on "Open type hierarchy"
8575 Variable name code completion should handle arrays
8530 Internal error using assertions (1.4 feature)
8531 VerifyError in code containing assertions

### Problem Reports Closed

7509 1GQ6DUC: WSWB:WIN2000 - Ctrl-space Code Completion does not work
8060 Hierarchy only shows Object when opening type in binary project
3408 JCK 1.4 - NAME - qualified AmbiguousName and an ExpressionName (1GK7M9B)
8584 Invalid syntax error generated by compiler

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020124 - 24th January 2002 - MILESTONE 2
Project org.eclipse.jdt.core v_224

## What's new in this drop

### Problem Reports Fixed

11354 Unable to edit Java code
8016 getter/setter outliner reconciling broken
8352 No hierarchy when using HierachyType
8042 ClassCastException hovering in java editor
8216 Incomplete super type hierarchy for binaries
8125 'Could not uniquely map the type name' message opening type

### Problem Reports Closed

7221 IllegalArgumentException renaming package
5341 Error message shouldn't expose exception class
8038 Null Pointer Exception Adding Unimplemented

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020123 - 23rd January 2002
Project org.eclipse.jdt.core v_223

## What's new in this drop

- Added workaround for 7764 UI Dead Lock - IDE frozen

### Problem Reports Fixed

3200 JavaBuilder - Build progress message could be shortened
8087 NPE when hierarchy verbose on and hierarchy on a region

### Problem Reports Closed

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020122 - 22nd January 2002
Project org.eclipse.jdt.core v_222

## What's new in this drop

- The selection engine now only selects identifier between selection start and selection end. Previous behaviour was to select identifier between selection start and identifier end. (e.g. if you select File in FileInput, now the selection engine select the class File and not FileInput)
- Fix for 6839 required to increment the index signature version so as to trigger automatic reindexing on workspace startup (and thus get rid of undesired anonymous type entries in the index files). Subsequent startups will not reindex any further (only if inconsistency is detected, e.g. signature version is different).

### Problem Reports Fixed

7993 NPE when creating type hierarchy
3417 JCK 1.4 - BINC - the new method is a static (respectively instance) method. (1GK7WCP)
3416 JCK 1.4 - BINC - the new method is less accessible than the old one (1GK7VXD)
3415 JCK 1.4 - BINC - the new field is a static (respectively instance) field (1GK7VSN)
3414 JCK 1.4 - BINC - the new field is less accessible than the old one (1GK7VMD)
3413 JCK 1.4 - BINC - detection of an IncompatibleClassChangeError (1GK7VCA)
3412 JCK 1.4 - BINC - Invoke overriding class methods (1GK7UGQ)
3410 JCK 1.4 - BINC - Adding a String field that has the same name as a String field of a superclass (1GK7MHO)
7920 JavaProject.canonicalizedPath
7597 PackageFragmentRoot which are archives loose associated resource
7827 null returned from getOriginal(IJavaElement workingCopyElement) for IMPORT_CONTAINER
7144 Hierarchy incorrect when using binary projects
3411 JCK 1.4 - BINC - Overriding instance and class methods (1GK7U6C)
3418 JCK 1.4 - EXPR - a NullPointerException is raised in run time (1GK7WHA)
7441 Open a type is extremely slow
7616 Unnecessary indexing when project is opened
3229 OpenOnSelection - strange behaviour of code resolve (1GAVL08)
6953 No code assist proposals for interface constructor
7583 DOMNode#getChild(String) needs to handle children with null names
7584 Comments on IDOMMethod#getReturnType()
3247 SelectionEngine moves selection to enclosing token (1GCSD8D)

### Problem Reports Closed

7956 No reference found to BlockScope.analysisIndex
3283 OpenOnSelection - Code resolve doesn't work in some situations (1GEI5QT)
5453 DCR: Code Assist for anonymous types
7617 NPE in Builder with duplicated type names
6466 Code Formatter

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020115 - 15th January 2002
Project org.eclipse.jdt.core v_221

## What's new in this drop

- The compiler will now follow JLS 8.6 with respect to anonymous class constructors (i.e. allow them to throw any exceptions).
- The compiler now enforces that interface methods be compatible with Object ones.
- The batch compiler will no longer create package directory structure anymore when the command line argument '-d' `<destination>` is omitted (compliant with standard batch compilers).
- A type hierarchy that misses a super type is not rooted at Object any longer, but the subtype (of the missing type) will be a root (this is the behavior of VA/Java and VAME.)
- Adding a type that was missing from a hierarchy will update the hierarchy correctly.
- New API on ICompletionRequestor for suggest anonymous type declaration:
`void acceptAnonymousType(`
`char[] superTypePackageName,`
`char[] superTypeName,`
`char[][] parameterPackageNames,`
`char[][] parameterNames,`
`char[][] parameterNames,`
`char[] completionName,`
`int modifiers,`
`int completionStart,`
`int completionEnd);`

### Problem Reports Fixed

7625 No typehierarchy in working copy
7595 New builder performs intempestive full build on method body changes
7528 IlegalArgumentException in path canonicalisation
7034 code assist performance problem in scrapbook
7119 Content Assist does not complete some code
7000 Switch and Try statement doesn't include trailing }
6932 Increment statement in for loop contains trailing comments
6342 Code assist on Intreface-'Constructors' incomplete
7344 Search - write acces give wrong result
7455 Build problems when instance variable name matches constructor parameter name and assignment to this.name in try block
6839 AllTypesSearchEngine returns anonymous classes
7445 char/string concat bug
3192 Invalid type hierarchy when missing type(s) in hierarchy (1GF5RN4)
3304 Hierarchy not updated when changing classpath (1GF5QSW)
7422 Missing project references on some imported Java projects
5067 CodeAssist - no variable name suggestion for base type
7363 Rebuild Project action is not compiling all Java source files
7325 Build collisions should be non-fatal?
7324 Ambiguous multiple problem descriptions when collision of build files
3385 JCK 1.4 - INTF - illegal method declaration for interface (1GK2AWS)
3318 JDOM - IDomNode redefines clone() with different signature (1GFVU2V)
6101 Unexpected error in inner class
7333 typo in type name: ResetSateForCodeGenerationVisitor
7354 Compatibility with javac when no output directory is specified
6473 JavaConventions should use IWorkspace validate methods
7129 Problems with replacing a project
3386 JCK 1.4 - EXCP - checked exception in variable initializer of anonymous class (1GK7B5L)
3367 JCK 1.4 - ICLS - An instance initializer in an anonymous class may throw any exception (1GK7LYF)
7184 Built in compiler does not allow anonymous class initializers to throw exceptions
6504 Type hierarchy: Subtypes in jar of another project not found
3334 Types hierarchy view does not show all subclasses. (1GI901Q)
6866 Code-Assist (ctrl+space) to slow with jre-src
7071 ArrayStoreException getting hoverhelp in Java editor
7165 erroneous warning of unused variables

### Problem Reports Closed

3217 JM - deleting default package (1G8417Z)
7375 new classes with funny names don't appear in package view
7302 Need visibility in search results
7305 interface methods are marked abstract
7290 Project size limitation
6232 Build problems: Internal error: null when compiling JDK source code
7380 Wrong scope for traverse methods
7137 Invalid type not flagged by compiler
6924 ArrayIndexOutOfBoundsException when setting the build path.

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20020108 - 8th January 2002
Project org.eclipse.jdt.core v_220a

## What's new in this drop

- Added new compiler option to toggle compliance level (can be either "1.3" or "1.4" - 1.3 being the default), and it will affect the behavior of the compiler with respect to JLS 8.1.5 (inherited member shadows enclosing one). Option is located on `JavaCore#getOptions()` and named `"org.eclipse.jdt.core.compiler.compliance"` Accordingly, the batch compiler accepts an extra command line argument "-1.3" or "-1.4" (1.3 compliance being the default).

### Problem Reports Fixed

3330 JCK 1.4 - illegal simple name imports (1GHW0G1)
7070 moved classes lost!
6785 NPE in IType.resolve
6779 searchDeclarationsOfReferencedTyped - missing exception types
7035 New builder - builder does not close all JARs
7033 Stale packages view after moving compilation units
6927 Static inner class won't compile (doesn't match JDK behavior)
7030 IllegalArgumentException renaming project
7029 Renaming a Java project doesn't refresh the packages view
7027 project gone after renaming in the navigator
7026 walkback on rename project - could not reproduce
6889 No typehierarchy for inner types
3343 Missing java.lang.Object should produce a more prominent compiler error
6948 New builder - builder does not reuse opened JARs
3314 Resources not appearing in Java perspective or Jar export wizard (1GFL0QT)
6890 META-INF hidden
6993 JavaModel inconsistencies with units outside classpath
3360 Code assist does not work in inner classes (1GJOVT6)
6893 LocalTypeDeclaration includes preceeding comment even if there are statements in between
3372 Markers for build path not updated on (re-) build
5413 incorrect class source range
6429 declaration source start incorrect on local variable
6433 declaration source start incorrect on local variable #2
3235 PackageFragmentRoot existency check need to be revisited (1GCUNO7)
6865 open on selection in BuildNotifier only finds contents of rt.jar
6037 JarPackageFragmentRoot.getUnderlyingResource() always returns null
6750 Batch compiler - Classpath handling is too strict
3409 JCK 1.4 - STMT - null literal in throw statement (1GK7MEQ)
4915 JCK 1.4 - need a major compiler switch for 1.3 / 1.4 mode
6678 Incorrect output after Add Unimplemented Method
3361 JCK 1.4 - ICLS - field from outer class and inherited public field in nested class (1GK7LAA)
3350 JCK 1.4 - ICLS - static class from outer and class from superclass in top-level nested class (1GK7DVJ)
3351 JCK 1.4 - ICLS - static class from outer and protected static class from superclass in nested class (1GK7DZV)
3352 JCK 1.4 - ICLS - static class from outer and public static class from superclass in nested class (1GK7EB9)
3362 JCK 1.4 - ICLS - field from outer class and inherited field in nested class (1GK7LCX)
3363 JCK 1.4 - ICLS - An inherited variable that shadows a name from an enclosing non-package scope (1GK7LHR)
3364 JCK 1.4 - ICLS - An inherited method that shadows a name from an enclosing non-package scope (1GK7LKV)
3365 JCK 1.4 - ICLS - An inherited class that shadows a name from an enclosing non-package scope (1GK7LTA)
3366 JCK 1.4 - ICLS - An inherited interface that shadows a name from an enclosing non-package scope (1GK7LW2)
3375 JCK 1.4 - ICLS - class from outer and protected class from superclass in top-level nested class (1GK7FLC)
3376 JCK 1.4 - ICLS - class from outer and public class from superclass in top-level nested class (1GK7FOT)
3377 JCK 1.4 - ICLS - class from outer and class from superclass in top-level nested class (1GK7FTA)
3378 JCK 1.4 - ICLS - class from outer and protected static class from superclass in nested class (1GK7FX7)
3379 JCK 1.4 - ICLS - class from outer and public static class from superclass in nested class (1GK7G2A)
3380 JCK 1.4 - ICLS - class from outer and static class from superclass in nested class (1GK7G5A)
3381 JCK 1.4 - ICLS - class from outer and protected class from superclass in nested class (1GK7G8E)
3382 JCK 1.4 - ICLS - class from outer and public class from superclass in nested class (1GK7GC1)
3383 JCK 1.4 - ICLS - class from outer and class from superclass in nested class (1GK7GQA)
3384 JCK 1.4 - ICLS - static class from outer and public static class from superclass in top-level nested class. (1GK7CTV)
3387 JCK 1.4 - ICLS - static field from outer class and inherited public field in top-level nested class (1GK7H0B)
3388 JCK 1.4 - ICLS - static class from outer and protected static class from superclass in top-level nested class (1GK7BGP)
3389 JCK 1.4 - ICLS - static class from outer and static class from superclass in top-level nested class (1GK7D2P)
3390 JCK 1.4 - ICLS - static class from outer and protected class from superclass in top-level nested class (1GK7D7Q)
3391 JCK 1.4 - ICLS - static class from outer and public class from superclass in top-level nested class (1GK7DBD)
3392 JCK 1.4 - ICLS - static class from outer and static class from superclass in nested class (1GK7ERE)
3393 JCK 1.4 - ICLS - static class from outer and protected class from superclass in nested class (1GK7EVB)
3394 JCK 1.4 - ICLS - static class from outer and public class from superclass in nested class (1GK7EZB)
3395 JCK 1.4 - ICLS - static class from outer and class from superclass in nested class (1GK7F4S)
3396 JCK 1.4 - ICLS - class from outer and protected static class from superclass in top-level nested class (1GK7F8L)
3397 JCK 1.4 - ICLS - class from outer and public static class from superclass in top-level nested class (1GK7FCN)
3398 JCK 1.4 - ICLS - class from outer and static class from superclass in top-level nested class (1GK7FHB)
3399 JCK 1.4 - ICLS - static field from outer class and inherited field in top-level nested class (1GK7H2Z)
3400 JCK 1.4 - ICLS - static field from outer class and inherited protected field in top-level nested class (1GK7GW6)
3401 JCK 1.4 - ICLS - field from outer class and inherited field in top-level nested class (1GK7HEF)
3402 JCK 1.4 - ICLS - static field from outer class and inherited protected field in nested class (1GK7HH1)
3403 JCK 1.4 - ICLS - field from outer class and inherited protected field in top-level nested class (1GK7H5X)
3404 JCK 1.4 - ICLS - field from outer class and inherited public field in top-level nested class (1GK7HBJ)
3405 JCK 1.4 - ICLS - static field from outer class and inherited public field in nested class (1GK7HKE)
3406 JCK 1.4 - ICLS - static field from outer class and inherited field in nested class (1GK7HMN)
3407 JCK 1.4 - ICLS - field from outer class and inherited protected field in nested class (1GK7L79)
6061 unreachable code/unused temp ?
6443 Incremental java builder doesn't handle folder create/delete nicely
5317 Reparenting class should refresh hierarchy
6740 Problems with deleting project
6491 Non-java resource folder doesn't appear under pkg fragment root
3245 sub folders with dot not visible in packages view (1GCOH17)
6806 NullPointerException moving enpty cu out of default package

### Problem Reports Closed

7065 NPE when saving a Java source
6956 incorrect compiler error reported on extract method
7072 Protected member in superclass not visible in subclass
7066 Subclass can't see protected inner class of superclass
3284 Project doesn't always rebuild after changing the Java build path
6957 CCE in AnonymousLocalTypeDeclaration::traverse
6958 NPE in DeltaProcessor
6900 Rebuild project fails with error "1000
4382 NullPointerException in JavaBuilder
3199 Missing classpath variables
6848 Index out of range exception with New builder
4913 null argument in IncrementalImageBuilder.getBuilderType
6760 package names truncated in compilation dialog
3295 Errors from missing reference to a jar do not go away
3450 Bug in JavaSearchScope (1GLE1GC)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011218 - 18th December 2001 - MILESTONE 1
Project org.eclipse.jdt.core v_219a

## What's new in this drop

### Problem Reports Fixed

6117 CodeFormatter - impossible to set indentation level and position mapping w/o deprecated methods
6719 LocalTypeDeclaration::traverse

### Problem Reports Closed

5432 compiler syntax error is incorrect

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011211 - 11th December 2001
Project org.eclipse.jdt.core v_218

## What's new in this drop

- Java element deltas are batched. If the java model operation modifies a resource, then the java element deltas are merged and fired during the resource delta processing. If the java model operation doesn't modify any resource (e.g. IWorkingCopy.reconcile()), then the java element delta is fired right away.

### Problem Reports Fixed

3215 JM - Creating a new class sends out many notifications (1GD2GT0)
6695 Changing Java preference in build 20011206 throws a NullPointerException in org.eclipse.jdt.internal.core.DeltaProcessor.initializeRoots
6761 NullPointerException during replace
3290 JavaBuilder - Old class files remain after change of output location
3188 JavaBuilder - Deleting source doesn't delete binary folders (1FVPTTK)
3185 JavaBuilder - Errors don't disappear
3189 JavaBuilder - Missing libraries results in insufficient dependency info
3204 ImageBuilder should show error count in the progress
3227 JCL dev - Builder did not refresh problems in exception hierarchy
3228 Discarding rt.jar from build path triggers too many recompilation
3232 Incremental builder unable to handle efficiently missing rt.jar scenario
3234 Incremental builder does not notice addition of java.lang.Object inside same project
3241 Build doesn't honor cancel
3260 NPE when doing incremental project build
3278 JavaBuilder - Problem Count rarely updated
3287 Built state does not remember old pkg fragment roots
3301 Incremental build doesn't detect disappearance of field
3305 Incremental build doesn't detect abstract method to implements
3311 performance: task list still does not scale at all
3312 Internal errors in image builder due to duplicate package fragment
3317 Fullbuild after startup
3322 NullPointerException during build in StateImpl.getSourceElementEntries
3326 Incremental build doesn't work if bin deleted
3370 Incremental compiler is compiling project when it should not
3422 NPE in Java builder during catchup
3429 Incremental compilation bug on namespace change in private local class
3444 Build problems: Marker set on Folder?
5007 Project classpath references do not follow class folders
5109 Adding project doesn't fix build errors
5320 NPE during catchup
5641 NPE on rebuild when replacing internal jar
6538 searchDeclarationsOf* incorrect
6690 CodeAssist finds types outside the classpath
6687 Wrong JavaModel refresh after drag and drop outside folder with dot in name
6693 AbstractImageBuilder.compile throws an ArrayIndexOutOfBoundsException on line 166 in build 20011206
6670 Code Assist: Cannot resolve in method body
6674 Cannot add unimplemented methods
6629 Open On Selection does not work on Linux
5542 Too many deltas are fired on each JavaModel operation
3269 Updating the Java packages view on project creation (1GDW0U9)
3202 DCR - JM - Merge Java Element Deltas with Resource Deltas (1G2B60Z)
6621 NPE in Delta Processor
3368 JCK 1.4 - INTF - The field of protected interface is used in other package (1GK7M25)
6596 Java compiler can generate invalid bytecode
6586 NullPointerException when resource modification done before java model is open
6542 extract method: incorrect error message

### Problem Reports Closed

6645 Build/Rebuild does not recompile code
6669 Search doesn't find reference to a field that is only used in an initialization
5385 search: name searchDeclarationsOfSentMessages is not good
3183 JM - Builders and nested operations using Java model can get inconsistent results (1FUBV90)
3250 JavaProject.retrieveResource picks first removed child delta (1GCV7PQ)
6378 ClassCastException in inner class emulation
6677 \u in comment gives Invalid unicode error

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011206 - 06th December 2001
Project org.eclipse.jdt.core v_217

## What's new in this drop

### Problem Reports Fixed

6564 New builder - Incremental recompilation detected package problems incorrectly
6563 Package view does not refresh ok when adding both package and unit at once

### Problem Reports Closed

3242 TypeRef.getType does not work for inner types (1GCFUNT)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011204 - 4th December 2001
Project org.eclipse.jdt.core v_216c

## What's new in this drop

- New incremental builder implementation enabled by default (can reenable the old implementation by changing the builder extension in the plugin.xml)
- Delta processing improvement:
  - No longer creates unnecessary Java elements when traversing the resource delta.
  - Handles changes in binary folder libraries.
  - Projects that share libraries are notified individually.
  - Doesn't notify empty deltas any longer.
- Source folder resource copying no longer perfom any copies as soon as one source folder coincidates with the output location.
- Open on selection is more fault-tolerant: will now try to locate a selected method for which argument types are incorrect.
- Compiler no longer rejects correct code with respect to access to protected members defined in enclosing types (was only accepting a subset of correct scenarii).

### Problem Reports Fixed

6528: InvocationTargetException trying to search
6494: New builder: Invalid error found (The declared package does not match the expected package)
6461: NewBuilder - doesn't detect incorrectly located compilation units
6456: Invalid error when compiling access to protected member inside innerclass
3358: Performance: indexer doing too much work? (1GJLDN7)
5471: CodeFormatter mapped positions broken for multi-line comments
6431: ArrayIndexOutOfBoundsException in the SourceIndexer requestor
6422: Resource copy should not occur as soon as one source folder overlap the binary output
6416: Code resolve doesn't work on message send when parameters are not correct
5705: Wrong positions for ClassCastLiteral

### Problem Reports Closed

6423: Search - does not find declarations of method "to*String"
3246: CodeCompletion - No completion on member access on anonymous class (1GD3OGA)
5454: Code Assist adds qualified code inside inner classes
5837: ArrayIndexOutOfBoundsException in index merging

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011127 - 27th November 2001
Project org.eclipse.jdt.core v_215a

## What's new in this drop

- Better highlighting of multi-line message sending
- Code assist only qualifies implicit members when necessary
- New API for setting both classpath and output location at the same time (allowing to avoid classpath validation failures in case there is no way to change both independantly):
`IJavaProject.setRawClasspath(IClasspathEntry[] newClasspath, IPath newOutputLocation, IProgressMonitor monitor)`

### Problem Reports Fixed

6339 Assertion failed in SourceType
5618 Uncaught CompletionNodeFound exception doing code assist
6294 Exception during setting the classpath
6302 AssertionFailure in open on selection
6094 Search - does not find references to JavaProject.setProject(...)
3320" Search - Match through super type not found if in different project (1GGAOFT)
6158" Search - Prefix and postfix expression not found as write reference
4974: Set classpath / output location should be one operation
6176: Eclipse tools index out of bounds
6160: Index out of bounds in update references
6151: ArrayIndexOutOfBoundsException in ObjectSet
5943: internal error in setting buildpath (name collsion)
5471: CodeFormatter mapped positions broken for multi-line comments
5907: Indexer errors when disk full
5884: Code assist should only fully qualify if needed
5514: Select a declaration does not work in unsaved working copies
5414: ArrayIndexOutOfBoundsException in Signature
5384: search engine: behavior different than expected
6104: Unoptimal debugger highlight for multi-line message expression

### Problem Reports Closed

6210: Creation failed error when creating a source folder
3425: JavaCore.create(String handle) looses information (1GLA0QG)
6127: Reference by local class not found when searching for interface refs
4990: Error starting Eclipse
3471: Leading '/' in src page of Java wizard is misleading (1G842TH)
3619: inconsistent search for method declarations (1GCZZS1)
5557: Incorrect hierarchy shown (not rooted at Object)
6100: Bug in ObjectSet.Enumeration.nextElement

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011120 - 20th November 2001
Project org.eclipse.jdt.core v_213

## What's new in this drop

- CodeAssist no longer find synthetic completions.
- Reduced startup time of Java perspective
- CodeAssist option added to force full qualification of implicit field/method references (see JavaCore option: "org.eclipse.jdt.core.codeComplete.forceImplicitQualification").

### Problem Reports Fixed

5982: content assist displays accessors
5955: NPE in LookupEnvironment
5923: Search for "length" field refs finds [].length
5916: Search - too many matches for refs to NameLookup.findPackageFragmentRoot
5957: Internal error in RecoveredMethod.add
5972: Incremental builder (new) recompiling dependents of Parser for no apparent reason
5940: Instance initializer in anon inner class generates errors
5913: Performance - creating tons of classfile elements at startup
5862: search : too many matches on search with OrPattern
6070: New Builder: Builder order problem
5852: Project references not updated according to buildpath
5471: CodeFormatter mapped positions broken for multi-line comments
5563: Write reference on declaration not reported

### Problem Reports Closed

3257: IMethod.getParameterNames for ClassFiles should use names from source (1GDGN3G)
3245: sub folders with dot not visible in packages view (1GCOH17)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011113 - 13th November 2001
Project org.eclipse.jdt.core v_211b

## What's new in this drop

### Problem Reports Fixed

5821: Refactor Rename renames local variable instead of member in case of name clash
5003: Review JavaBuilder cancelation handling
5790: IJavaProject.hasBuildState() fails with new builder
5794: Polymorphic search doesn't work in dependent projects
5781: NPE using new image builder
5834: Incremental build recompiled unrelated project

### Problem Reports Closed

5215: search: missing field reference

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011112 - 12th November 2001
Project org.eclipse.jdt.core v_210_01

## What's new in this drop

- Project references are maintained by the JavaCore, in parallel with build path.
- Resurrected deprecated APIs from 0.9 which were discarded previously.
- ICodeCompletion reverted to 1.0 version, and got deprecated. Use ICompletionRequestor instead.
- Cross-project incremental recompilation in presence of structural changes in produced binaries.

### Problem Reports Fixed

5362: Deeper than necessary JavaElementDelta when package added
5525: ICodeCompletionRequestor isn't 1.0 compatible
5616: NPE when compiling invalid code defining a array of strings
5217: java search scope: missing enclosing project
5527: Unexpected inaccurate matches for #close() declarations
5522: Type hierarchy - missing subtypes of JavaElement
5508: JDT cannot support periods in the folders above the package name
5541: No refresh when adding a compilation unit inside a dot named source folder
5532: Incremental compile missed a return type change
5515: AbortCompilation during polymorphic search
5275: Cross-project recompilation Defect 186249 - OTI PR# 1GLEYT1
5267: Dependent Projects not compiled when project is saved
5425: Exception on CodeAssist
3194: DCR - JM - Buffer contents is duplicated (1G03HCP)
5430: Must resurrect 0.9 deprecated APIs
4923: IJavaProject.getPackageFragmentRoots returns roots from other projects
3308: Projects not build in correct order after load (1GF60TN)
3435: keeping the project references and required project in synch (1GL0L34)
5203: Project indexing does not restrain to source files on the classpath
3293: search does not work in inner class (1GEUQHJ)
3249: Error message is confusing: using token instead of identifier (1GCTDYM)
5214: TVT: Apostrophe shows up multiple times in Java error messages in some translations (italian)
5263: TVT: Compiler error messages are hard for translators to understand
3251: Types not included in code assist list for import (1GD06W9)
5277: Code assist on assert method do an AbortException
5070: search: missing interface method reference
5069: search: method reference in super missing
5068: search: missing method reference

### Problem Reports Closed

5526: NullPointerException searching declarations of #close()
5498: Java Compile - code does not compile correctly in JDT, but does with javac
5493: Adding project references doesn't update the classpath
5426: CodeAssist returns empty completion
1690: Local variables not always displayed when in scope (1GJ8PX4)
4368: Wrong match in Java Search
3238: CodeAssist - no completion if cursor at string beginning (1GI3BYO)
3271: Unable to delete attached internal source jar (1GDX215)
3209: DCR - JM -Invalid references to IPath.getDevice() potentially breaking on Linux (1G4U1R7)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011025 - 25th October 2001
Project org.eclipse.jdt.core v_206

## What's new in this drop

- JavaModel is no longer performing smart classpath updates when Java package fragment roots are either moved or removed.

### Problem Reports Fixed

3568: no hoverhelp over constructor referrences (1GAJ0KP)
5218: AccSuper is not set properly
5200: SetClasspathOperation must close root only when root is removed
3449: CodeAssist - two type with same name must be qualified (1GLDN3Z)
4973: Rename package removes first letter of import statements
3279: Severe - JM - Source found, even though sourcepath is false (1GELAVB)
3434: Deleting a project from the ws removes it from the buildpath! (1GKZNBS)
5021: Refactoring trashed my code
5136: ArrayIndexOutOfBoundsException when a field declaration is an anonymous class
3440: Classfile comparator should be able to ignore order (1GL2I7E)
3439: Classfile comparator should be able to ignore synthetics (1GL2I3N)
3442: NPE in SourceElementParser (1GL496I)

### Problem Reports Closed

3369: Classpath gets out of sync (1GJU853)
3281: change java project binary output create new package (1GEHK07)
3298: Incorrect compile error on valid case statement (1GEYWET)
3562: Outliner bug for initializers (1G93CS3)
3447: search: could automatically narrow down scope (1GLDJVN)
3288: CodeAssist - Code assist doesn't work in some methods (1GELEBH)
5073: delete does not work on default package
3443: Unused argument/variable warnings shown twice (1GL4OW7)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011018 - 18th October 2001
Project org.eclipse.jdt.core v_205

## What's new in this drop

- CodeAssist provides variable name suggestions.
(breaking) API Changes on `ICompletionRequestor`
+ Added API for suggest variable name:
`void acceptVariableName(`
`char[] typePackageName,`
`char[] typeName,`
`char[] name,`
`char[] completionName,`
`int completionStart,`
`int completionEnd);`
- Helper method for computing a resolved and expanded path (all exports from prerequisites) which was introduced in 204, got removed. This is not an API change, it never made it out officially.
- `IJavaProject.getExpandedClasspath(boolean)`

`SearchEngine.createJavaSearchScope(IResource[])` has been deprecated. Use `SearchEngine.createJavaSearchScope(IJavaElement[])` instead. The rational is that `createJavaSearchScope(IResource[])` was not well defined for projects, and it could not define a search scope for java elements that didn't have a corresponding resource (e.g. external jars). This deprecated API's behavior has also reverted to the 1.0 state for backward compatibility. The specification of `createJavaSearchScope(IJavaElement[])` is as follows:

- If an element is an `IJavaProject`, then the project's source folders, its jars (external and internal) and its references projects (with their source folders and jars, recursively) will be included.
- If an element is an `IPackageFragmentRoot`, then only the package fragments of this package fragment root will be included.
- If an element is an `IPackageFragment`, then only the compilation unit and class files of this package fragment will be included. Subpackages will NOT be included.

### Problem Reports Fixed

5065: NullPointerException in Code Assist
4921: Serach does not find types in internal jar
4917: Latest build fails updating TypeHierarchy
3296: CodeAssist - should filter out duplicates if any (1GEWDL7)
3325: Too much codeassist match on interface (1GH0GV1)
3424: DCR: code assist support for variable name suggestions (1GKM6OQ)
3282: JCK 1.4 - DASG - assigned variable before catch block after return statement (1GK2AHX)
3452: NPE doing Display from Binary (1GLEG5K)
3374: SearchPatter.createPattern(...) doesn't work with unicodes (1GJYBRY)
3309: DCR - JM - could ICompilationUnit::getType throw JME? (1GF9AL9)
3310: Smoke 124: Compile errors introduced with rename refactoring (1GFBK2G)
3436: NPW in TypeHierarchy (1GL0L8D)
4919: Cannot duplicate local variable in finally block
4943: Verification error
4385: QualifiedAllocationExpression.sourceEnd incorrect if type is an AnonymousLocalTypeDeclaration
3230: Search - Too many type references for query ending with * (1GAZVGI)

### Problem Reports Closed

3174: Open-on-selection doesn't work on MouseAdapter (1GF69TH)
3337: Open on selection failed with double message (1GIFA80)
3207: JM - Smart save when empty CU (1G4EVHM)
1672: Cannot evaluate classes in a sealed jar (1GHU6YK)
3220: Formatter tests refer to hardcoded path on disk (1G9R5G4)
3258: exception doing import assist (1GDIJ9D)
3240: need to find method declarations in anonymous inner types (1GCBPRI)
3254: Indexer - Should nest index source retrieval in IWorkspaceRunnable (1GD7J6F)
3225: IJavaProject.findPackageFragment strange semantic (1GAOLWQ)
3218: No interface to polymorphically acess ICompilationUnit (1G8D2ZP)
3205: Problems with IJavaModel.findPackageFragment (1G456DO)
3197: DCR - OpenOnSelection - Code resolve doesn't work on declarations (1G0UX9V)
3177: 64kb method should be a configurable problem (1FJHGVF)

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 20011011 - October 11th, 2001
Project org.eclipse.jdt.core v_204

## What's new in this drop

- Classpath entries (except for source folders) can be tagged as exported upon creation. When exported, an entry is contributed to dependent projects along with its output location.
- Added APIs:
Testing status of a given entry
+ IClasspathEntry.isExported()

Creating entries with export flag
+ JavaCore.newProjectEntry(IPath, boolean)
+ JavaCore.newLibraryEntry(IPath, IPath, IPath, boolean)
+ JavaCore.newVariableEntry(IPath, boolean)

Helper method computing a resolved and expanded path (all exports from prerequisites)
+ IJavaProject.getExpandedClasspath(boolean)

- CodeAssist inserts qualification on field/method references in case of ambiguities.
- CodeAssist provides parameter names on method completions.
API Changes on ICompletionRequestor
+ Added API for answering method declaration completions:
void acceptMethodDeclaration(
char[] declaringTypePackageName,
char[] declaringTypeName,
char[] selector,
char[][] parameterPackageNames,
char[][] parameterTypeNames,
char[][] parameterNames,
char[] returnTypePackageName,
char[] returnTypeName,
char[] completionName,
int modifiers,
int completionStart,
int completionEnd);
+ Added parameterNames to normal method results API:
void acceptMethod(
char[] declaringTypePackageName,
char[] declaringTypeName,
char[] selector,
char[][] parameterPackageNames,
char[][] parameterTypeNames,
char[][] parameterNames,<<<<<<<<<<<<<<<< ADDED
char[] returnTypePackageName,
char[] returnTypeName,
char[] completionName,
int modifiers,
int completionStart,
int completionEnd);
- CodeAssist optionally performs visibility checks (see JavaCore option: "org.eclipse.jdt.core.codeComplete.visibilityCheck").
- Search for field read and field write references. Two new constants have been added
on IJavaSearchConstants to be used when creating a field reference search pattern:
- READ_REFERENCES: the search results contain *only* read access to a field.
- WRITE_REFERENCES: the search results contain *only* write access to a field.
Note that if REFERENCES is used, then search results contain both read and write
accesss to a field.
- OpenOnSelection can now locate selected declarations which have a corresponding
Java element (i.e. no local declaration is found), and is more tolerant of
incorrect code.

## Problem Reports Fixed

3430 usability: parameter hints (1GKYXK5)
3431 Unreachable code in JCore (1GL2V6K)
3175 JCK1.3a - ICLS - Comparing current instance against enclosing instance inside of anonymous class. (1GLDSBS)
1GLBOJZ: ITPJCORE:WIN2000 - UnaryExpression doesn't store expression type in bit mask
1GDS7IP: ITPJCORE:WIN2000 - VerifyError related to a local index computation
1GLABQ7: ITPJCORE:WIN2000 - JavaCore.create(String) throws an unexpected exception
1GL0PGV: ITPJCORE:WINNT - Batch compiler leaving JARs open
5268 ITPJCORE:ALL - VerifyError when running app (1GL4QKI)
1GLBP65: ITPJCORE:WIN2000 - search: type refs - incorrect match
1GKXCOM: ITPJCORE:WIN2000 - ClassCastException during inner class emulation
1GD07GK: ITPJUI:WIN98 - Code assist should qualify methods if needed.
1GL1HF8: ITPJCORE:WIN2000 - Missing implementation in the compiler compiling invalid code
1GL13OT: ITPJCORE:ALL - INameLookup should be removed
1GL1I9F: ITPJCORE:WIN2000 - Wrong source mapping for binary methods with parameters with identical simple names
1G4CIP0: ITPJUI:WIN - Source for binaries doesn't work for anonymous inner classes
1GD79XM: ITPJCORE:WINNT - Search - search for field references - not all found
1GLA60W: ITPJCORE:WINNT - CodeAssist - should not propose declarations of method already locally implemented
1GLAEZB: ITPJCORE:WINNT - CodeAssist does not disambiguate method references
1GL4F3J: ITPJCORE:WINNT - Completion on declaration should also provide thrown exceptions
1GL11J6: ITPJCORE:WIN2000 - search: missing field references (nested types)
1GL12XE: ITPJCORE:WIN2000 - search: missing field references in inner class
1GL0X82: ITPJCORE:ALL - ClassCastException setting args on class file
1GKAQJS: ITPJCORE:WIN2000 - search: incorrect results for nested types
1GKZ8VZ: ITPJCORE:WINNT - Search - did not find references to member constructor
1GKYS7Y: ITPJCORE:WINNT - Main not found
1GELSDQ: ITPJUI:WINNT - JDOM: IType.createMethod does not insert nicely for inner types
1GF67VL: ITPJUI:WIN98 - DCR - CodeCompletion - Code-assist for listener methods
1GFK8YT: ITPJUI:ALL - Rename CU A.B.java to AB.java fails (NPE)
1GD06J6: ITPJUI:WIN98 - Code assist should qualify fields if needed.
1FZWGMG: ITPCOM:WIN98 - DCR - CodeAssist - code assist should provide method signature completions
1GHVOQE: ITPJCORE:WINNT - Ambiguous completion in CodeAssist
1G8DEAB: ITPJUI:WINNT - DCR: code assist super methods when defining method
1GGNNDZ: ITPJCORE:WINNT - OpenOnSelection - non visible target is equivalent to no target
1GE14NN: ITPJUI:WINNT - Unable to find/search for .class files
1GJYFUO: ITPDUI:ALL - Evaluation hangs, evaluation thread is suspended
1FWG453: ITPJCORE:WIN98 - OpenOnSelection - fails for default constructors
1GDQD37: ITPJUI:WIN2000 - OpenOnSelection - Open on selection failure
1GGZ2R7: ITPJUI:WIN2000 - Search for method refs failed
1GKNXX6: ITPJCORE:WINNT - OpenOnSelection - no selection if targeting member type in default package
1GE34EE: ITPJUI:WIN2000 - OpenOnSelection - initial selection wrong
1GKEG73: ITPJCORE:WIN2000 - search (136): missing field declaration
1GKB9YH: ITPJCORE:WIN2000 - search for field refs - incorrect results
1GJL6EJ: ITPJCORE:WINNT - JavaConventions.validateClasspath: Compares against variable name
1GDQEAS: ITPJUI:ALL - Indexer - delete unused indexes on Java core plug-in shutdown
1GKM4M9: ITPJCORE:WINNT - DCR: code select should work on declarations
1G2NZVT: ITPJUI:WIN2000 - DCR - OpenOnSelection - Code resolve doesn't work for declarations

### Problem Reports Closed

3223 Search from editor's context menu doesn't work (1GAJCD8)
3433 search: missing field occurrecnces (1GKZ8J6)
3176 JCK1.3a - STMT - Single declaration in try block (1GLDSH9)
1GL0MN9: ITPJCORE:WIN2000 - search: not consistent results for nested types
1GL9UMH: ITPJCORE:WIN2000 - search: missing type occurrences
1GKYXK5: ITPJUI:WIN2000 - usability: parameter hints
1GEV78E: ITPJUI:WIN2000 - Code assist: private superclass methods show up, but others don't
1GDKKTS: ITPJUI:WINNT - CodeCompletion - import assist shows invisible types
1G7317O: ITPJCORE:WIN2000 - DCR - CodeAssist - code assist shows invisible members
1GKK930: ITPJCORE:WINNT - No code assist for Inner type
1GIIDGX: ITPJUI:WINNT - open on type: does not work on some types
1GKOFO6: ITPJCORE:WINNT - Internal error searching for class references
1GK96A0: ITPJCORE:WINNT - NPE during search operation
1GK9B5Q: ITPJCORE:WINNT - Class reference search broken
1GBOFK5: ITPJUI:ALL - "References to" on methods in jars
1GKECWC: ITPJCORE:WINNT - Organize Imports fails: Typerefs not complete
1GKCH3N: ITPJCORE:WIN2000 - search: method refs - super call not found
1GKB475: ITPJCORE:WINNT - StringIndexOutOfBoundsException on searchfor methods
1GJL6V0: ITPJCORE:WINNT - JavaConventions.validateClasspath: IStatus usage
1GKM1MU: ITPJCORE:WINNT - Classpath validation: Overlapping accepted
1GJL7RS: ITPJCORE:WINNT - JavaConventions.validateClasspath: nested sourcefolders
1GK9NB0: ITPJCORE:WIN2000 - Another core dump - sorry
1GJYG33: ITPJUI:WIN2000 - Core dump in run time workbench in Search
1GK9S59: ITPJUI:WIN2000 - Internal error when synchronizing
1GL2TZY: ITPJUI:WIN2000 - Code Completion should only show visible items
1GKRLZ4: ITPJCORE:WIN2000 - Compiler overzealous with commas
1GF98R4: ITPJUI:WINNT - JM - why is a file A.B.java seen as a compilation unit?
1G98XR7: ITPJCORE:WIN2000 - Feature Request for JavaDoc CodeAssist

# Eclipse Platform Build Notes
Java Development Tooling Core

Eclipse SDK Build 0.202 - Spetember 27th, 2001
Project org.eclipse.jdt.core v_202

## What's new in this drop

- New AST node for empty statements (org.eclipse.jdt.internal.compiler.ast.EmptyStatement)
i.e. 2 more APIs on the AST visitor. Note: this was not an official API
- ISourceElementRequestor notifies enter/exit initializers instead of just acceptInitializer. Note: this was not an official API
- Search in inner-classes now works. Indexes are recomputed automatically on start-up.
- Removed CodeAssist option for hungry mode (org.eclipse.jdt.core.codeComplete.entireWordReplacement)
Client code can decide whether using inferred end position (hungry behavior) or original cursor location (insert behavior)
based on the keystroke (enter/insert?).
- org.eclipse.jdt.core.search.IJavaSearchResultCollector now clearly states that
the order of the search result is unspecified.

## Problem reports fixed

1GK2A45: ITPJCORE:WIN2000 - JCK 1.4 - possibly assigned variable after assignment expression when true
1GK29Q8: ITPJCORE:WIN2000 - JCK 1.4 - possibly assigned value of a final instance variable after a constant boolean expression when false
1G52F7P: ITPJCORE:WINNT - Search - finds bogus references to class
1G4TNX1: ITPJCORE:WINNT - Search - No search anonymous results in inner classes
1GHW0AZ: ITPJCORE:WINNT - JCK 1.4 - unreachable empty statements
1GK2BLM: ITPJCORE:WIN2000 - JCK 1.4 - definitely assigned value after the boolean operator ? : when true
1GKB28A: ITPJCORE:WIN2000 - Compiler accepts incorrect code
1FL4T1Q: LFCOM:WINNT - JCK 1.4 - VerifyError due to an illegal jump
1GK2B6D: ITPJCORE:WIN2000 - JCK 1.4 - definitely assigned value before the second operand of the boolean operator &&
1GK2AOF: ITPJCORE:WIN2000 - JCK 1.4 - assigned variable before finally block after return statement
1GK6WD3: ITPJCORE:WIN2000 - search:no fully qualified references are found
1GK7231: ITPJCORE:WIN2000 - typos in comments
1GK77HA: ITPJCORE:WINNT - Search - missing base type references
1GJY2XN: ITPJUI:WIN2000 - rename type: error when with reference
1GK1I2J: ITPJCORE:WIN2000 - Broken SourceEnd in ForStatement and WhileStatement
1GK1HWY: ITPJCORE:WIN2000 - Broken sourceEnd in for Assignment and CompoundAssignment
1GIIBC3: ITPJCORE:WINNT - search for method references - missing matches
1GGNOTF: ITPJCORE:WINNT - Search doesn't find method referenced in anonymous inner class
1GK1GJE: ITPJCORE:ALL - Search - StringOutBoundsException when searching references in JAR

### Problem Reports Closed

1GJY3KG: ITPJUI:WIN2000 - NPE in jdt.internal.core.ClassFileInfo
1GK90H4: ITPJCORE:WIN2000 - search: missing package reference
1GK8TXE: ITPJCORE:WIN2000 - search: missing field reference
1GK7K17: ITPJCORE:WIN2000 - search: missing type reference
1GKCJIL: ITPJCORE:WIN2000 - build exception in 135
1GK6WP9: ITPJCORE:WIN2000 - seach: missing type reference
1GJZSBE: ITPJCORE:WINNT - ArrayIndexOutOfBoundsException during rebuild
1GK7E6S: ITPJCORE:WIN2000 - search: StringIndexOufOfBound
1GIT857: ITPJCORE:WIN2000 - Performance - Ctrl+S triggers five parser runs
1GEHCYL: ITPUI:WINNT - Minor: Colon at wrong place in build dialog
1FLUBRR: JRIDE:WINNT - Problems: instantiating inner classes
1FLUOJI: JRIDE:WINNT - Problems: vague error message with illegal constructor invocation
1FLZUG5: JRIDE:WINNT - Problems: invalid expression as statement is not reported
1FLZV4M: JRIDE:WINNT - Problems: invalid hexa literal number not reported
1FLZYES: JRIDE:WINNT - Problems: the interface cannot define an initializer is not reported
1FQVTI1: LFCOM:WINNT - Compiler - No implicit conversion should not generate aconstnull
1FUZYXT: ITPJCORE:WINNT - JM - Source for Binaries issue
1FX0LZ0: ITPCOM:ALL - Request for comments preceeding imports & package decls
1FW8ENP: ITPJUI:WIN98 - JDOM - Deleting import statements from Outline obliterates intervening comments
1G4PWC7: ITPJCORE:WINNT - Search - No matches with class files
1G83ZKL: ITPJUI:WINNT - Compiler - unclear error message for a reserved word used as an identifier
1GF5W1S: ITPJUI:WIN2000 - ClassCastException in LookupEnvironment
1GKF01S: ITPJCORE:WINNT - Severe: internal error during search
1GDVFRX: ITPJUI:WIN2000 - CodeCompletion - eats the following word
1GF67JM: ITPJUI:WIN98 - CodeCompletion - Code-assist consumes next token
1GCSHAC: ITPJCORE:Inconsistent codeassist behavior
1GCNBTL: ITPJCORE:ALL - DCR - JM - Provide a way to read JavaCore default options from the plugin.xml file
1GAJBOU: ITPJUI:WINNT - Code Assist shows matches after ()
1FW8NV6: ITPJCORE:ALL - DCR - JM - Need API for compiler options

# Eclipse Platform Build Notes
Java Development Tooling Core

Build 0.200 - September 13th, 2001
Project org.eclipse.jdt.core v_200

## What is new in this drop

- JCK1.3a compliant.
- Added 2 new APIs on JavaConventions for classpath validation.

- IJavaModelStatus validateClasspath(IJavaProject project, IClasspathEntry[] classpath, IPath outputLocation)
- IJavaModelStatus validateClasspathEntry(IJavaProject project, IClasspathEntry entry, boolean checkSourceAttachment)

- Ant Eclipse compiler task added (org.eclipse.jdt.core.ant.Jdtcom)
- Assertions support enabled: by default the compiler is 1.3 compliant, but it can optionally be turned into source 1.4 mode cf. JavaCore options.
- More options are surfaced on JavaCore. See JavaCore.getDefaultOptions() for description.

- ...internal...ConfigurableOption has disappeared.
- Evaluation in binaries is functional

- Search for references now finds results in binaries. Indexes in old workspaces are recomputed when restarted which may result in longer startup times.

## Problem Reports Fixed

1GEKKUO: ITPJCORE:ALL - JM - Util.readContentsAsBytes(InputStream) doesn't allow for size hint
1GBRPSJ: ITPJCORE:Options - should surface the code formatter options on JavaCore
1GJU3YV: ITPJCORE:ALL - ArrayIndexOutOfBoundsException in scanner
1GJL1R5: ITPJCORE:ALL - NPE in ClassFile.getSourceRange
1GH49XR: ITPJUI:WIN2000 - Organize Imports inserts bogus import
1GJU3O8: ITPJCORE:WINNT - type hierarchy: NPE
1GJIYKP: ITPJCORE:WINNT - type hierarchy - contains unrelated types
1GITFQR: IVJIDT:WIN2000 - Wrong byte code generation, Inconsistent stack height 1 != 0 error
1GIHUQP: ITPJCORE:WINNT - search for static field should be more accurate
1GIT66X: ITPJCORE:WINNT - ClassCastException when calling CodeAssist
1GJA0WG: ITPJCORE:WINNT - AbortCompilationUnit when doing a Search
1GH49HW: ITPJUI:WINNT - Search functionality is misleading when viewing source from jar
1GFXPE5: ITPJUI:ALL - Search for method references broken
1GFM3X3: ITPJUI:WINNT - Wrong code formatter default for keeping else on same line
1GHSM7B: ITPJUI:ALL - formatting of anonymous classes
1GGPVHN: ITPJUI:WIN2000 - Not getting hover Javadoc for ISelection
1GE2LO2: ITPJCORE:WIN2000 - SourceStart and SourceEnd of synchronized statement
1GIUTIZ: ITPJCORE:WIN2000 - AST: case statement doesn't cover case keyword
1GITCCY: ITPJCORE:WIN2000 - AST: strange LocalDeclaration.declarationSourceEnd
1GIRQFW: ITPJCORE:WIN2000 - AST: wrong source end if subnode is of type AnnonymousTypeDeclaration
1GIRHRP: ITPJCORE:WIN2000 - AST: wrong sourceStart and sourceEnd in SynchronizedStatement
1GHUAUO: ITPJCORE:ALL - Renaming an element in a working copy corrupts the working copy
1GHUAM1: ITPJCORE:ALL - NPE when renaming an element in a working copy
1GHDA2V: ITPJCORE:WINNT - ClassCastException when doing a search
1GFY02B: ITPJUI:ALL - Delete a method and saving introduces extra lines
1GFOFMD: ITPJUI:WIN2000 - New class should have space between package and class decls
1GI3R1I: ITPJCORE:WIN2000 - Compilation error evaluating super expression in debugger
1GII07V: ITPJCORE:WIN2000 - CompilationUnitDeclaration.traverse doesn't call visitor.endVisit
1GIR345: ITPJCORE:ALL - Indexer: NegativeArraySizeException
1GIRC23: ITPJCORE:ALL - CodeFormatter brace on new line problem
1GIT8SA: ITPJCORE:WIN2000 - AST: wrong sourceEnd if action is Block
1GIUQVL: ITPJCORE:WINNT - IClassPathEntry: java doc incorrect
1GIVGMH: ITPJUI:ALL - EC: Javadoc hoverhelp incorrectly uses first of multiple comments
1GIYKSR: ITPJCORE:WIN2000 - Ast: FieldDeclaration.traverse implemeted differently
1GI3ND5: ITPJCORE:WINNT - Potential optimization during IB problem generation
1GFBVZH: ITPUI:WIN2000 - ArrayIndexOutOfBoundsException: Java editor
1GI509E: ITPJCORE:WINNT - IJavaProject.getNonJavaResources returns java and class files
1GI2WAW: ITPJCORE:WINNT - Too many results for default package
1GHQZ9H: ITPJUI:ALL - Walkback doing a search
1GGYT3S: ITPJCORE:WINNT - javaconventions::validatePackageName and default package
1GF9856: ITPJCORE:WINNT - JM - JavaConventions::validateCompilationUnitName
1GF822P: ITPJCORE:WIN2000 - NegativeArraySizeException in Parser
1GI6T4Y: ITPJCORE:WINNT - NPE in JavaModeManager retrieving workspace options
1GE4ILR: ITPJCORE:ALL - Eval - Evaluation in Binary Project fails
1GI3LLC: ITPJCORE:ALL - Incorrect formatting for the new keyword
1GHU6O5: ITPJCORE:WINNT - RMIC test fail
1GHH6O7: ITPJCORE:ALL - Need to tune the exception analysis for AssertStatement
1GHUW7T: ITPJCORE:WIN2000 - Build Problem
1GI3IG9: ITPJCORE:ALL - internal compiler error involving bogus method/field declaration
1GHU4PK: ITPJCORE:WINNT - NoSuchMethodError when running program
1GHONAX: ITPJCORE:WIN2000 - Compiler uses different name lookup for refactoring
1GEJYAJ: ITPJCORE:WIN2000 - Compiler - Binding of QualifiedNameReference is null
1GHFHWR: ITPJCORE:ALL - Assertions: CodeAssist and Selection need to be updated
1GHFHXG: ITPJCORE:ALL - Assertions: Add optional warning on assert identifier
1GCZ9VM: ITPJCORE:WIN2000 - DCR - Compiler - Batch compiler should be API
1GHO6QR: ITPJCORE:WINNT - Code Assist - no method completion when return type is secondary one
1GH0AU7: ITPJCORE:ALL - Eval - VerifyError in scrapbook page
1GH2R62: ITPJCORE:WIN2000 - Typo in progress message
1GGYL32: ITPJCORE:ALL - Default supertypes are not visible when qualified
1GDFJK0: IVJIDT:WIN2000 - Using 'synchronized' produces invalid exception table values in class, causes "Illegal exception table range" exception, VAJ 3.5+
1GGAK6G: ITPJCORE:ALL - Incorrect javadoc comment in JavaElement
1GF9L3K: ITPDUI:ALL - Eval - Private array resolution failure
1GF8KHX: ITPJUI:ALL - Invalid project build path should be warning, not error
1GF7JIH: ITPJCORE:ALL - Exception when removing network drive
1GEYBL9: ITPJUI:WINNT - Adding source folders on CP is very confusing
1GEJAOT: ITPJUI:WINNT - JRE Source attachment set to path to does not exist
1GEHZNB: ITPJUI:WINNT - smoke 114: formatter inserts extra tab in first line
1GCZZT4: ITPJCORE:Fault-tolerance - missing constructor invocation could still answer the allocated type
1GAU96P: ITPJCORE:WINNT - DCR - JM - JavaProject should provide a class path validation method
1G7A1TL: ITPJCORE:WINNT - DCR - JM - Rules for classpath not specified
1FVVWZT: ITPJCORE:ALL - JM - IBinaryType should implement getSourceFileName()