diff --git a/org.eclipse.jdt.core/notes/R21_buildnotes_jdt-core.html b/org.eclipse.jdt.core/notes/R21_buildnotes_jdt-core.html
new file mode 100644
index 0000000..cfaf7b3
--- /dev/null
+++ b/org.eclipse.jdt.core/notes/R21_buildnotes_jdt-core.html
@@ -0,0 +1,3306 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="Author" content="IBM">
+   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
+   <title>JDT/Core Release Notes</title>
+   <link rel="stylesheet" href="../jdt_core_style.css" charset="iso-8859-1" type="text/css">
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align="left" width="72%" class="title1">
+      <font size="+3"><b>jdt core - build notes 2.1 stream</b></font>
+	</td>
+  </tr>
+  <tr>
+	  <td align="left" width="72%" class="title2">
+	  	  <font size="-2" color="#8080ff">Java development tools core</font>
+	  </td>
+  </tr>
+	<tr><td>&nbsp;</td></tr>
+  <tr>
+  	<td class="title3">
+	  <font size="-1">
+	  Here are the build notes for the Eclipse JDT/Core plug-in project 
+	  <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/jdt-core-home/main.html"><b>org.eclipse.jdt.core</b></a>, 
+	  describing <a href="http://bugs.eclipse.org/bugs" target=new>bug</a> resolution and substantial changes in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core"><b>HEAD</b></a> branch. 
+	  This present document covers all changes since Release 2.0, changes which occurred up to Release 2.0 can be found
+	  in <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.jdt.core/notes/R20_buildnotes_jdt-core.html">build notes R2.0</a>.
+	  </font>
+	</td>
+  </tr>
+</table>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 27th March 2003
+<br>Project org.eclipse.jdt.core v_311 - 2.1 RELEASE (R2_1)
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35731">35731</a>
+Unable to build problem
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35754">35754</a>
+NPE in Scope.getTypeOrPackage
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35298">35298</a>
+NPE: Internal compiler error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31497">31497</a>
+Internal compiler error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35476">35476</a>
+Null pointer exception in org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34962">34962</a>
+NPE in Scope.getTypeOrPackage
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35651">35651</a>
+"Unused private types, methods or fields" should recognize serialVersionUID.
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 26th March 2003
+<br>Project org.eclipse.jdt.core v_310
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24240">24240</a>
+DOC - JavaConventions.validateIdentifier: must NOT have the same spelling as ...
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35658">35658</a>
+Cannot resolve Inner Class reference
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 25th March 2003
+<br>Project org.eclipse.jdt.core v_309
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35654">35654</a>
+spec bug in CompilationUnitSorter.sort
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35561">35561</a>
+No source found if attached file contains 2 potential root paths
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35352">35352</a>
+NPE when attaching source
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35456">35456</a>
+The Eclipse compiler generates classes that throw a VerifyError
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35473">35473</a>
+NPE when exiting Eclipse
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35510">35510</a>
+Assigning code to a library that is within a jarfile
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35642">35642</a>
+NPE in index manager during shutdown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35608">35608</a>
+NPE on shutdown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35437">35437</a>
+can't call protected methods from derived classes in other pkg
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35396">35396</a>
+Compiler error in RC2
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 20th March 2003
+<br>Project org.eclipse.jdt.core v_308 - 2.1 RELEASE CANDIDATE 3a
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35306">35306</a>
+Index update request can be incorrectly handled
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 19th March 2003
+<br>Project org.eclipse.jdt.core v_307 - 2.1 RELEASE CANDIDATE 3
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34040">34040</a>
+It takes a minute to expand a project in Package explorer
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 18th March 2003
+<br>Project org.eclipse.jdt.core v_306 
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35237">35237</a>
+Ant adapter should say where to look for the .log file
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35132">35132</a>
+Need to reindex jar not on classpath not detected 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35131">35131</a>
+Optimize source attachment query when no source attachment available 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35128">35128</a>
+Problems with packages named "java"
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34214">34214</a>
+createPackageDeclaration on ICompilationUnit
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35098">35098</a>
+Delete compiled class files when deleting source file
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35087">35087</a>
+NPE while importing plug-ins
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34850">34850</a>
+Need better control over deprecation messages
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34322">34322</a>
+SDK hangs while building on IBM1.3.1SR2
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30418">30418</a>
+Inner classes cause compilation errors with asserts 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34789">34789</a>
+Search for references does not show subclassed methods 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33885">33885</a>
+packages with javax in their name don't import properly
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34992">34992</a>
+TODO as a substring in a comment generates a task 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34708">34708</a>
+unreliable full build/refresh using linked source folders
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35093">35093</a>
+Not only changes in working copy should refresh type hierarcy. 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34851">34851</a>
+Rename Class operation hangs 
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 13th March 2003
+<br>Project org.eclipse.jdt.core v_305
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34845">34845</a>
+asserts do not need to be NLS'ed
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34658">34658</a>
+Save All failed with unhelpful error message.
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34802">34802</a>
+instanceof produce InternalCompilerError on MacOSX with JDK1.4.1
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34734">34734</a>
+internal compiler error ArrayIndexOutOfBound w/ 1.4.1 release
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34706">34706</a>
+Internal compiler error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34907">34907</a>
+ArrayIndexOutOfBoundsException after installing Java 1.4.1_01
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34029">34029</a>
+"False-positive" deprecated warning
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34813">34813</a>
+NPE from builder
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 11th March 2003
+<br>Project org.eclipse.jdt.core v_304
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33927">33927</a>
+Leak in Java Editor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33950">33950</a>
+Slow performance when changing code in a much referenced project
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34000">34000</a>
+JDK Compliance doesn't match javac generation from an IBM or SUN JDK
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34078">34078</a>
+Hierarchy: 27% of time spent reporting progress 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33998">33998</a>
+unexpected NullPointerException 
+   
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34566">34566</a>
+can't get assert to work with mac os x java 1.4.1
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34337">34337</a>
+[RC2] Searches freezes ?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33412">33412</a>
+GB18030: Can't set JRE in a path contains GB18030 characters
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34292">34292</a>
+[RC2] OutOfMemory compiling
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34130">34130</a>
+Debug statements on console
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34301">34301</a>
+Java compiler doesn't dected always unreported exception
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32927">32927</a>
+Exception while playing with type hierarchy 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34059">34059</a>
+When adding a library that is stored in a directory containing a "(" or ")" the classes are  *not* reachable for Code Assist.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33900">33900</a>
+NPE setting output directory of a source folder
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 6th March 2003
+<br>Project org.eclipse.jdt.core v_303 - 2.1 RELEASE CANDIDATE 2
+<h2>
+What's new in this drop</h2>
+<ul>
+<li><code>IJavaProject.isOnClasspath(...)</code> no longer throws any exception, but rather consistently return <code>false</code>
+in these circumstances. Indeed, it is difficult for clients to work with predicates that throw exceptions. 
+Although this change creates a source incompatibility, the change is binary compatible with 2.0 and within the original 
+spirit of the original API contract. Include in 2.1 readme.
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33990">33990</a>
+.class file time-stamps out of sync with .java files
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32665">32665</a>
+Closing element trace should hide children 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32634">32634</a>
+Improve readability of compiling progress message
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33949">33949</a>
+DOM: assert statement has wrong length
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33695">33695</a>
+project build path broken 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33475">33475</a>
+Build path seems to be lost every time Eclipse restarts 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33785">33785</a>
+Open on selection fails 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33800">33800</a>
+search: reporting too many method occurrences 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33806">33806</a>
+Code assist failure: assignment of double in for loop hides previous variables
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33754">33754</a>
+IJavaProject.isOnClasspath should answer false for working copies outside the classpath
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33918">33918</a>
+Libraries are not presented in the Package Explorer (I030227)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33843">33843</a>
+Compiler incorrectly generating static method calls
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33625">33625</a>
+Searching for field references with SearchEngine returns some incorrect results
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31610">31610</a>
+IDE does hang-up
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 4th March 2003
+<br>Project org.eclipse.jdt.core v_302a
+<h2>
+What's new in this drop</h2>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33757">33757</a>
+Problem not detected when opening a working copy 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33753">33753</a>
+Missing resource messages could be improved
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33748">33748</a>
+Cannot open working copy on .java file in simple project 
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 4th March 2003
+<br>Project org.eclipse.jdt.core v_302
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Generalization of working copy deltas: the creation and destruction of any working copy (regular or shared) 
+	now fires an <code>ElementChangedEvent</code> as well indicating that the working copy has been 
+	<code>ADDED</code> or <code>REMOVED</code>. 
+	Until now, only shared working copies were providing such delta notifications.
+      <br>See: 
+      <ul>
+      <li><code>IWorkingCopy.getWorkingCopy()</code></li>
+      <li><code>IWorkingCopy.getWorkingCopy(IProgressMonitor, IBufferFactory, IProblemRequestor)</code></li>
+      <li><code>IWorkingCopy.destroy()</code></li>
+      </ul>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31799">31799</a>
+Getting squigglies in Java files not on classpath
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31858">31858</a>
+NPE in log 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33371">33371</a>
+Rename method dialog: Error message should quote name 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33686">33686</a>
+Missing extension point schemas
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32981">32981</a>
+Cancel Extract Interface refactoring does not cleanup working copies 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33692">33692</a>
+Cleanup in the batch compiler default options
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33653">33653</a>
+Relevance - should privilege type not needing qualification
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33039">33039</a>
+Quick Fix: IAE n invocation
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32588">32588</a>
+Error saving changed source files; all files in project deleted
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33560">33560</a>
+Workspace shows temporary problems also the compiler doesn't
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31765">31765</a>
+private recursive methods not marked as unused
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33231">33231</a>
+Deadlock performing CVS decoration while JRE initializers are invoked
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33571">33571</a>
+SearchEngine.searchAllTypeNames: NPE when passing null as progress monitor 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33035">33035</a>
+OutOfMemoryException while searching for references 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33445">33445</a>
+CodeAssist - Relevance is not correct for local class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33462">33462</a>
+NPE during shutdown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33424">33424</a>
+No completion available in local type constructor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33225">33225</a>
+Override methods... inserts methods incorrectly if class body is as {}
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33207">33207</a>
+Reject output folder that coincidate with source folder if not equal
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33621">33621</a>
+ICompilationUnit.getElementAt(int) returns strange things when parameter is in a field declaration inside anonymous and local classes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33696">33696</a>
+Java source exclusion filter stopped working in RC1
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32250">32250</a>
+Reporting unused private methods could be improved
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33610">33610</a>
+Deltas sent while in operation executed with JavaCore.run
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33573">33573</a>
+NPE in IndexManager on shutdown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33527">33527</a>
+Inexact match searching in java.math.BigDecimal 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33505">33505</a>
+Compiler fails on allowed inner class code
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33461">33461</a>
+NPE upon shutdown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33466">33466</a>
+NPE on shutdown from IndexManager
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33475">33475</a>
+Build path seems to be lost every time Eclipse restarts
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 27th February 2003
+<br>Project org.eclipse.jdt.core v_301
+<h2>
+What's new in this drop</h2>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33321">33321</a>
+NPE in IndexManager shutdown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31764">31764</a>
+CompletionEngine doesn't feed errors to completion requestor 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32488">32488</a>
+Request to add/remove source folder to index should not look at active job 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32392">32392</a>
+NPE in SourceMapper 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32701">32701</a>
+Disassembler doesn't show actual modifiers for member types
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32919">32919</a>
+Hierarchy views progress bar is useless 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32973">32973</a>
+Codeassist relevance should privilege prefix match over need for qualification 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32629">32629</a>
+DeltaProcessor walking some binary output 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32612">32612</a>
+Saved index file names leaking names?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32376">32376</a>
+Signature.getSimpleName/Qualifier should not create an own char-array 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32628">32628</a>  
+Too much time finding out there is no source during search 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32974">32974</a>
+Invalid classpath error on ..classpath edition
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32986">32986</a>
+Stack overflow, infinate recursion in compiler 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32607">32607</a>
+Removing outer folder removes nested folder's cus from index 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32937">32937</a>
+Kind not set for empty fine-grained delta 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32909">32909</a>
+compiler error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32690">32690</a>
+Classpath error are not detected after a Check out
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32738">32738</a>
+TVT: Externalized Strings to be removed from .properties file 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32957">32957</a>
+StackOverFlowError renaming class 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32323">32323</a>
+CVS information on class-Files lost during "rebuild project"
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32563">32563</a>
+IAE in org.eclipse.jdt.core.Signature.toCharArray (M5) 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32900">32900</a>
+Java out of memory problem
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25848">25848</a>
+RedHat Linux LANG=en_US.UTF-8  causes some files *NOT* to be compiled
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32579">32579</a>
+abstract protected method can't be overridden
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32545">32545</a>
+Cannot override a method that's accessible in the superclass, but inaccessible in the super-superclass
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32179">32179</a>
+Problems searching for references to selected text
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 21st February 2003
+<br>Project org.eclipse.jdt.core v_300 - 2.1 RELEASE CANDIDATE 1
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>In 1.4 compliant mode, the compiler will allow unterminated line comment (i.e. with no trailing line separator), as a consequence
+of the JLS revisal. Thus removed temporary (and unused) 2.1 API :
+<code>ToolFactory.createScanner(boolean tokenizeComments, boolean tokenizeWhiteSpace, boolean assertMode, boolean recordLineSeparator, <b>boolean strictComment</b>)</code>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32342">32342</a>
+The field type Class_A is defined in an inherited type and an enclosing scope
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32476">32476</a>
+Spec now allows line comment to end with EOF
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32339">32339</a>
+Cannot find declaration of SIGNATURE in Java text search
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 20th February 2003
+<br>Project org.eclipse.jdt.core v_299
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Added helper method to extract problem marker arguments: <code>CorrectionEngine.getProblemArguments(IMarker problemMarker)</code>
+<li>Added 2 settings to disable classpath enhancements which could affect 2.0 clients.
+<pre>
+* JAVACORE / Enabling Usage of Classpath Exclusion Patterns
+*    When set to "disabled", no entry on a project classpath can be associated with
+*    an exclusion pattern.
+*     - option id:         "org.eclipse.jdt.core.classpath.exclusionPatterns"
+*     - possible values:   { "enabled", "disabled" }
+*     - default:           "enabled"
+* 
+* JAVACORE / Enabling Usage of Classpath Multiple Output Locations
+*    When set to "disabled", no entry on a project classpath can be associated with
+*    a specific output location, preventing thus usage of multiple output locations.
+*     - option id:         "org.eclipse.jdt.core.classpath.multipleOutputLocations"
+*     - possible values:   { "enabled", "disabled" }
+*     - default:           "enabled"
+</pre>
+<li>Removed temporary 2.1 API :
+    <ul>
+     <li><code>IPackageFragmentRoot.computeSourceAttachmentRootPath(IPath sourceAttachmentPath)</code>
+     </li>
+     <li><code>IJavaModelMarker.UNBOUND_CONTAINER</code>, use classpath problem marker ID instead (<code>IJavaModelStatusConstants.CP_CONTAINER_PATH_UNBOUND</code>).
+     </li>
+     <li><code>IJavaModelMarker.UNBOUND_VARIABLE</code>, use classpath problem marker ID instead (<code>IJavaModelStatusConstants.CP_VARIABLE_PATH_UNBOUND</code>).
+     </li>
+    </ul>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29578">29578</a>
+Issues with migrating shared data
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32040">32040</a>
+Multiple output folders fooling Java builder
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32217">32217</a>
+Missing JavaCore in JDT/Core project index
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32338">32338</a>
+Auto generated comments of quickfix method generation for unnamed package class is wrong
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32271">32271</a>
+Type Hierarchy Progress monitor improvements 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32267">32267</a>
+TypeHierarchy. Does not set progress monitor to done when cancelled 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32218">32218</a>
+Inexact matches found when should be exact 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31016">31016</a>
+builder exception found in log
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32225">32225</a>
+incorrect delta after deleting 2 fields 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32219">32219</a>
+JavaModel operations fail with ArrayIndexOutOfBoundsException if array empty
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32182">32182</a>
+NPE performing search 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27994">27994</a>
+Code Assist replace mode inconsistent 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32041">32041</a>
+Multiple output folders fooling Java Model 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32196">32196</a>
+Patch: correctly detect misisng .rsc file
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32111">32111</a>
+ArrayIndexOutOfBoundsException during delete of members
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32100">32100</a>
+when superpackage package empty deleting a subpackage deletes superpackage
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31646">31646</a>
+No proposal using code assist in field initializer
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32227">32227</a>
+Serialization incompatibility with Sun's 1.4 compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28426">28426</a>
+Content Assist displays x(String arg0, String arg1) should be x(String str, String delim)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32164">32164</a>
+Serialization methods with private or arbitrary access modifiers should be ignored by "unused private members" compiler check.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32097">32097</a>
+Regression - attached source not found when in a subdirecory of archive
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 18th February 2003
+<br>Project org.eclipse.jdt.core v_298
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Fix for bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31997">31997</a>
+     requires the index format to be changed. Indexes will be automatically regenerated upon
+     subsequent search queries (accounting for indexing notification in search progress dialogs).
+</li>
+<li>Unused parameter diagnosis will now ignore parameters in an abstract method,
+a main method, an implementation of an abstract method or a method overriding a
+concrete one. Additional settings got added for enabling the diagnosis of the latter
+two scenarii.
+<pre>
+* COMPILER / Reporting Unused Parameter if Implementing Abstract Method
+*    When enabled, the compiler will signal unused parameters in abstract method implementations.
+*    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedParameter".
+*     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract"
+*     - possible values:   { "enabled", "disabled" }
+*     - default:           "disabled"
+*
+* COMPILER / Reporting Unused Parameter if Overriding Concrete Method
+*    When enabled, the compiler will signal unused parameters in methods overriding concrete ones.
+*    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedParameter".
+*     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete"
+*     - possible values:   { "enabled", "disabled" }
+*     - default:           "disabled"
+</pre>
+</li>
+<li><b>Code completion enhancement:</b>
+   <ul>
+   <li>Relevance of a proposal is higher if the proposal is a variable name and this name contains a prefix.</li>
+   <li>Relevance of a proposal is higher if the proposal is a variable name and this name contains a suffix.</li>
+   </ul>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32107">32107</a>
+Index signature change isn't honoured any longer
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31997">31997</a>
+Refactoring d.n. work for projects with brackets in name. 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31417">31417</a>
+Where has the "Root Path" field gone? [doc] 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32000">32000</a>
+IJavaModel.contains() returns true for resources copied into bin folder
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31947">31947</a>
+NPE on shutdown in BlocksIndexInput.close()
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31985">31985</a>
+NPE searching non-qualified and case insensitive type ref 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28637">28637</a>
+[Preferences] Import Preferences: Console Message: Content is not allowed in Prolog 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31748">31748</a>
+[search] search for reference is broken 2.1 M5 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31990">31990</a>
+Working copy operations should not take workspace lock 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31811">31811</a>
+VerifyError with huge switch statement
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5783">5783</a>
+Problem counts are not accumulated
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31652">31652</a>
+NamingConvention.suggestXXNames: Put the most relevant first
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31628">31628</a>
+Redundant import need a warning (matching package declaration)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31867">31867</a>
+No unused import diagnosis on duplicate import
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31495">31495</a>
+Should writeObject/readObject be a compiler warning?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31538">31538</a>
+serialVersionUID being flagged as an "unused" field
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31757">31757</a>
+Folder with invalid pkg name should be non-Java resource 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25204">25204</a>
+Eclipse compiler option: Unused parameters (i.e. never read)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27251">27251</a>
+Compiler preferences: Unused parameters - ignore main
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31383">31383</a>
+Strange rendering of of link resources when link points to Eclipse workspace 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31756">31756</a>
+Code assist: fails inside an array which inside a function call 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31248">31248</a>
+Java Compiler progress monitor tells about probelms found
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29790">29790</a>
+OOM Exception in search cause IDE freeze
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32083">32083</a>
+overridden methods that change visibility cause compiler error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32044">32044</a>
+Pre auto build notification fired when closing or opening a file
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31903">31903</a>
+Null pointer exception loading from respository
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31968">31968</a>
+Notifier loose nested levels
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31942">31942</a>
+Bug with Selection Statement switch()
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31916">31916</a>
+M5 Crashing
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31923">31923</a>
+Source folder specific compiler settings
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31917">31917</a>
+Unused private method warning doesn't know about read/writeObject
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8452">8452</a>
+Wrong position in FieldReference
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12797">12797</a>
+Can't add directory pointing to class-files to project classpath
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11023">11023</a>
+Filter code assist choices based on context
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7293">7293</a>
+Scrubbing Output Directory Can Cause Havoc
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6096">6096</a>
+Exception using code assist after package rename
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5043">5043</a>
+Feature Request: source folders in other projects
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6488">6488</a>
+Classpath Variables (allow plugins to reserve some)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31809">31809</a>
+Eclipse reports error in task view - but it's no error!
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28319">28319</a>
+Unused parameter should be limited to current method/class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31243">31243</a>
+Warn of unused parameters: Should not warn when method overrides
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28139">28139</a>
+Highlight unused method parameters that are not inherited
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31380">31380</a>
+NPE setting classpath
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 13th February 2003
+<br>Project org.eclipse.jdt.core v_297
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>To help fixing bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31135 ">31135</a>,
+      added new flag <code>F_REORDER</code> on <code>IJavaElementDelta</code>. This flag is 
+      positioned if a member in a compilation unit has changed its position relatively to its siblings.
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31476">31476</a>
+CU is on build path also it is located in a excluded folder 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31303">31303</a>
+copy of read-only package doesn't preserve read-only flag
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24045">24045</a>
+Error deleting parent folder of source folder 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31653">31653</a>
+typos in javadoc of NamingConventions 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30623">30623</a>
+Strange java delta when creating a new class 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31446">31446</a>
+Cannot cancel 'Cleaning of output foder'
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30757">30757</a>
+Out of memory exception during hierarchy scoped search 
+   
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30485">30485</a>
+ArrayOutOfBoundsException during shutdown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30609">30609</a>
+Output folder scrubbing
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31591">31591</a>
+abstract method in base class, defined in a subclass results in compile error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31605">31605</a>
+Single line comment on the last line of a file produces a syntax error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31626">31626</a>
+getJavadoc() on TypeDeclaration returning incorrect comment
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 11th February 2003
+<br>Project org.eclipse.jdt.core v_296
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31377">31377</a>
+NullPointerException on binary import 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31441">31441</a>
+Match in jar missing searching for references 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31398">31398</a>
+M5 compilation problems with package abstract methods
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31230">31230</a>
+Code assist on variable names: uses prefix and suffix together
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31440">31440</a>
+Classpath container initializer getDescription should also take a project in argument
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31242">31242</a>
+exception names should use Local Var suffix/prefix, not Method Param
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31168">31168</a>
+Trying to open Java-source file with Java editor fails with I/O Exception.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31261">31261</a>
+Strange behavior when there is more errors than max errors per compilation unit
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31450">31450</a>
+Compiler bug with overriding protected abstract methods, where a parent class has package-private abstract method
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31475">31475</a>
+class must implement the inherited abstract method, but cannot override it
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30720">30720</a>
+linked resources and exclusion filters: compiler markers not flushed
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31467">31467</a>
+spurious "Incompatible conditional operand types" on ?: when assigning to abstract
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30800">30800</a>
+Search - doesn't find declaration of field with unicode name 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31225">31225</a>
+Source attachment not found
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31148">31148</a>
+freezes when editing a java file and adding while(st.hasMoreTokes())
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30731">30731</a>
+Class move refactoring changes the unlinked projects in the same workplace
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 6th February 2003
+<br>Project org.eclipse.jdt.core v_295 - 2.1 MILESTONE-5 (aka 2.1 RELEASE CANDIDATE 0)
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Added API <code>ClasspathContainerInitializer.getDescription(IPath containerPath)</code> so as to improve readability
+of our messages involving classpath containers (e.g. unbound container classpath problems). Default implementation answers
+the original container path.
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30946">30946</a>
+Deadlock in code parser
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30999">30999</a>
+Hang/Deadlock while inserting brace
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30949">30949</a>
+When compiled from eclipse, unhandled exceptions in try - finally block are not detected.
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 5th February 2003
+<br>Project org.eclipse.jdt.core v_294
+<h2>
+What's new in this drop</h2>
+<ul>
+<li> Classpath problem markers generated for unbound variable or container will have an extra attribute
+(respectively IJavaModelMarker.UNBOUND_VARIABLE or IJavaModelMarker.UNBOUND_CONTAINER) which value is
+the unbound variable or container names. This allows clients to recognize these problems, and contribute 
+suitable recovery actions for these.
+</li>
+<li> Project cycles can now be built as soon as the compiler severity for circular
+dependencies is lowered to a warning (see Preferences&gt;Java&gt;Compiler&gt;Other&gt;Circular dependencies&gt;Warning).
+</li>
+<li> Surfaced compiler options for reporting usage of char[] in String concatenations (default is still warning).
+<pre>
+* COMPILER / Reporting Usage of char[] Expressions in String Concatenations
+*    When enabled, the compiler will issue an error or a warning whenever a char[] expression
+*    is used in String concatenations (e.g. "hello" + new char[]{'w','o','r','l','d'}).
+*     - option id:         "org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion"
+*     - possible values:   { "error", "warning", "ignore" }
+*     - default:           "warning"
+</pre>
+</li>
+<li>Added API <code>IJavaModel.contains()</code> to find out if an <code>IResource</code> is visible in
+     the Java model.
+</li>
+<li> 2.1 API Change in org.eclipse.jdt.core.NamingConventions: deprecated 'suggestSetterName' methods removed.
+	<ul>
+	<li><code>suggestSetterName(IJavaProject,char[],int,char[][])</code>
+	</li>
+	<li><code>suggestSetterName(IJavaProject,String,int,String[])</code>
+	</li>
+	</ul>
+</li>
+<li>Added API for sorting the members of types in a compilation.
+  <ul>
+    <li><code>org.eclipse.jdt.core.util.CompilationUnitSorter</code>
+    <pre>
+public static final String RELATIVE_ORDER = "relativeOrder";
+public static void sort(ICompilationUnit compilationUnit,
+	int[] positions,
+	Comparator comparator,
+	int options,
+	IProgressMonitor monitor) throws JavaModelException;
+    </pre>
+    </li>
+  </ul>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30947">30947</a>
+CodeAssist - top level types are not proposed if type is qualified with package
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30907">30907</a>
+Code assist doesn't work in first case statement of a switch statement
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30920">30920</a>
+Stack overflow when container resolved to null
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30855">30855</a>
+Wron error message when nesting source folder in class folder 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30857">30857</a>
+IPackageFragmentRoot: copy removes source folders from classpath 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22756">22756</a>
+Reference search does not respect package fragments scope 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30860">30860</a>
+CodeAssist - Relevance is not correct for member exception
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30856">30856</a>
+1.4 compliant mode should consider abstract method matches
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30825">30825</a>
+Missing REORDERED_IN_CLASSPATH notifications 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26909">26909</a>
+NPE opening type hierarchy for binary type
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29832">29832</a>
+Bogus quickfixes after removing/adding core plugins 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30699">30699</a>
+External JAR: no refresh in JavaModel if full build occurred before 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30697">30697</a>
+Classpath marker update could trigger automatic refresh for external JARs 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30805">30805</a>
+Abstract non-visible method diagnosis fooled by intermediate declarations
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14597">14597</a>
+rearrange source code
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30417">30417</a>
+ICodeFormatter format method should specify that the positions are sorted from the lowest to the biggest
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30709">30709</a>
+Return value of IPackageFragementRoot.getElementName() has changed
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30705">30705</a>
+Simple name should consider member types before toplevel types
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30704">30704</a>
+01e0f should be accepted as valid floating point literal
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30511">30511</a>
+IPackageFragmentRoot:move ignores FORCE flag 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30516">30516</a>
+typo in javadoc of IPackageFragmentRoot:isArchive 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30506">30506</a>
+IPackageFragmentRoot:delete does not handle external jars 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20614">20614</a>
+Failure compiling a project with cyclic dependencies
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30227">30227</a>
+compilerAdapter jar should not be include in the repo
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30274">30274</a>
+Need method to figure out if an IResource is visible through the Java Model 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27027">27027</a>
+ClassCastException from codeassist
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30503">30503</a>
+IPackageFragmentRoot:move, copy should accept null as sibling 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30496">30496</a>
+CU/classfile name validation shouldn't scan if suffix isn't the proper one
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30471">30471</a>
+AST.parseCompilationUnit(IClassFile, boolean) throws IAE even if class file has source
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30487">30487</a>
+NPE during shutdown in path canonicalization
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26912">26912</a>
+'null == null' fooling blank final analysis
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30280">30280</a>
+NullPointerException at org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.resolveType(QualifiedAllocationExpression.java:225)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30393">30393</a>
+Its back: Core Exception [code 380] The resource tree is locked for modifications 
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5347">5347</a>
+class files not updated 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9838">9838</a>
+Wrong diagnosis compiling inner classes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30600">30600</a>
+incorrect code assist after 'throw new'
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30799">30799</a>
+Core dump with J2SDK 1.4.1_01 in java.util.zip.ZipFile.getNextEntry
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30739">30739</a>
+\u4100 is rejected as an identifier character
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30782">30782</a>
+Can't rename a package to the same name with different case
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30522">30522</a>
+IPackageFragmentRoot: move, copy updateClasspath semantics 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30567">30567</a>
+GB18030: Class name, method name, variable name can not contain GB18030 character in some version of Eclipse for Linux.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30629">30629</a>
+search: no occurrences to type found if type in default package in nested source folder 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27770">27770</a>
+Rebuild all doesn't follow project dependencies
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24832">24832</a>
+Recurency between projects
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27750">27750</a>
+[startup] starting javacore takes 13% of empty worspace startup
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22710">22710</a>
+simple save takes 40 seconds
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30470">30470</a>
+IJavaModelStatus.getMessage not the same as getString 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30465">30465</a>
+PDE binary project import fills log with core exceptions
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28224">28224</a>
+Invalid "Unused Imports" warning when importing inner classes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27583">27583</a>
+reconciling allocates megabytes of memory in seconds of typing
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 28th January 2003
+<br>Project org.eclipse.jdt.core v_293
+<h2>
+What's new in this drop</h2>
+<ul>
+<li> By default, JDT/Core will consider a default task tag "TODO" (with normal priority). In the past, default was no task reported. 
+<li> Added APIs to save/restore type hierarchies. Note that the client still has to register as a <code>ITypeHierarchyChangedListener</code> once
+restoration has occurred.
+  <ul>
+     <li> <code>ITypeHierarchy.store(OutputStream, IProgressMonitor)</code> for saving a type hierarchy.
+	 </li>
+     <li> <code>IType.load(InputStream, IProgressMonitor)</code> for restoring a previously saved hierarchy.
+	 </li>
+  </ul>
+</li> 
+<li> Added APIs to manipulate package fragment roots:
+	<ul>
+	<li><code>IPackageFragmentRoot.copy(IPath, int, boolean, IClasspathEntry, IProgressMonitor)</code>
+	</li>
+	<li><code>IPackageFragmentRoot.delete(int, boolean, IProgressMonitor)</code>
+	</li>
+	<li><code>IPackageFragmentRoot.move(IPath, int, boolean, IClasspathEntry, IProgressMonitor)</code>
+	</li>
+	</ul>
+	Note that these APIs are very close to the corresponding <code>IResource</code> APIs except that
+	they filter out nested source folders, and that they update the project's classpaths if specified.
+</li>
+<li> Extended compiler optional warning for interface methods incompatible with Object
+non public methods to scenario where thrown exceptions are not compatible (problem ID:
+<code>IProblem.IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod</code>).
+This problem is optional, and its severity is also controlled by the <code>JavaCore</code>
+preference <code>"org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod"</code>.
+</li>
+<li> 2.1 API Change in org.eclipse.jdt.core.NamingConventions: a new boolean parameter 'isBoolean' added. The value of this parameter is <code>true</code> if the field's type is boolean.
+	<ul>
+	<li><code>suggestSetterName(IJavaProject,char[],int,char[][])</code> become <code>suggestSetterName(IJavaProject,char[],int,boolean,char[][])</code>
+	</li>
+	<li><code>suggestSetterName(IJavaProject,String,int,String[])</code> become <code>suggestSetterName(IJavaProject,String,int,boolean,String[])</code>
+	</li>
+	</ul>
+	Previous APIs got deprecated, and will be removed before 2.1.
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22049">22049</a>
+Hierarchy View slow to calculate hierarchy [type hierarchy]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29411">29411</a>
+Projects rebuilt after restart of Eclipse
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30282">30282</a>
+TODO task message shouldn't be multiline
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30102">30102</a>
+NamingConvention: Tests fail 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30113">30113</a>
+Wrong positions in the outliner for a field that follows an initializer 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30224">30224</a>
+No JavaElement delta when renaming non-Java project 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30108">30108</a>
+not clear what 'modifiers' in NamingConventions means 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30099">30099</a>
+NamingConvention.suggestArgumentNames: No guess returned 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27291">27291</a>
+[Dialogs] Error dialog looks bad if status message is null 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28666">28666</a>
+Unclear error message for invalid output folder 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29366">29366</a>
+Search reporting invalid inaccurate match 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29864">29864</a>
+Unable to restore working set item - cannot instantiate item: org.eclipse.jdt.ui.PersistableJavaElementFactory 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28044">28044</a>
+weird errors not reported anywhere but in text and overview ruler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30013">30013</a>
+Project compiler setting workspace | project do not persist
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29151">29151</a>
+NPE in Surround with try/catch block [refactoring]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29969">29969</a>
+CodeAssist: too much proposals just after 'switch'
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29955">29955</a>
+Should not report incompatible throws clause for interface if Object non public ref method
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29894">29894</a>
+Path matching failure (CharOperation)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29761">29761</a>
+Regular expression pattern in exclusion filter is too greedy in M4
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29761">29803</a>
+Source path exclusion filter not relative source folder
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23134">23134</a>
+Odd behavior from code formatter
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30357">30357</a>
+Incompatibility of serialization with sun jdk
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30370">30370</a>
+Warning "import never used" in spite of use by a javadoc @link
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30209">30209</a>
+JDT compiler bytecode incompatibility with JDK bytecode  results in serialization error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27497">27497</a>
+Compile only on class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28263">28263</a>
+Better specification of source folders
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30232">30232</a>
+NullPointerException in compilation unit
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30160">30160</a>
+CodeAssist - no completion behind jProject
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29862">29862</a>
+GB18030:Could not set a GB18030 character as workbench classpath variable.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29863">29863</a>
+GB18030: Could not create a class variable whose name contains a GB18030 character
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27616">27616</a>
+[Compiler] stack overflow while editing
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23299">23299</a>
+Enhance Code completion
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29239">29239</a>  
+Refactoring throws exception if .project or .classpath read-only in 2.1 M4 
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 21st January 2003
+<br>Project org.eclipse.jdt.core v_292a
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29872">29872</a>
+ImportOrganizeTest failing due to file missing from index 
+      
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 21st January 2003
+<br>Project org.eclipse.jdt.core v_292
+<h2>
+What's new in this drop</h2>
+<ul>
+<li> New compiler setting got added to control severity of incompatible interface method with Object non public method.
+This used to be reported incorrectly as an error by our compiler (e.g. <code>interface I { int clone(); }</code>), and
+is now an optional problem (default severity is WARNING). Corresponding problem ID is: <code>IProblem.IncompatibleReturnTypeForNonInheritedInterfaceMethod</code>.
+<pre>
+* COMPILER / Reporting Interface Method not Compatible with non-Inherited Methods
+*    When enabled, the compiler will issue an error or a warning whenever an interface
+*    defines a method incompatible with a non-inherited Object one.
+*     - option id:         "org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod"
+*     - possible values:   { "error", "warning", "ignore" }
+*     - default:           "warning"
+</pre>
+</li>
+<li> New compiler problems got added to report declarations of unused private members (field/method/type). A JavaCore setting
+got added to control the severity of these new problems (default severity is IGNORE). Note that currently only a valid local usage 
+is considered as a true usage (e.g. if a message send targets this method, but cannot see it, then the target method will still be 
+reported as unused). Corresponding problem IDs are: <code>IProblem.UnusedPrivateMethod</code>, <code>IProblem.UnusedPrivateField</code>, 
+<code>IProblem.UnusedPrivateType</code> and <code>IProblem.UnusedPrivateConstructor</code>.
+<pre>
+* COMPILER / Reporting Unused Private Members
+*    When enabled, the compiler will issue an error or a warning whenever a private 
+*    method or field is declared but never used within the same unit.
+*     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedPrivateMember"
+*     - possible values:   { "error", "warning", "ignore" }
+*     - default:           "ignore"
+</pre>
+</li>
+<li>CodeAssist now answers keyword completions. Note that there was already an API for these: <code>ICompletionRequestor#acceptKeyword(char[] keywordName, int completionStart, int completionEnd, int relevance)</code>
+which wasn't invoked until now. There is currently no way to distinguish in between a 'synchronized' keyword used as a modifier or as a statement.
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26363">26363</a>
+[ast/dom] type bindings that return null for superclass
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22381">22381</a>
+Show unused fields and variables [refactoring] [search]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19063">19063</a>
+code assist proposals for keywords
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29771">29771</a>
+No reference found to IResource.getLocation when no case sensitive
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28236">28236</a>
+Search for refs to class in hierarchy matches class outside hierarchy 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28951">28951</a>
+Source attachment rootpath field missing in UI 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29536">29536</a>
+Check use of IResource.getLocation 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29337">29337</a>
+Poor wording in task message "This method overrides deprecated..."
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29601">29601</a>
+TypeHierarchy: Avoid to use 'isInterface' / 'isClass' 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29540">29540</a>
+Search Engine return extra results 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29524">29524</a>
+Search for declaration via patterns adds '"*" 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26260">26260</a>
+task markers: limitting the number of problems per CU limits the number of tasks/markers (in general) per CU
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29306">29306</a>
+Can't get content of CU not on classpath 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3331">3331</a>
+DCR: Code Formatter should offer cast without space (1GI74GZ)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29690">29690</a>
+Locked Resource Tree (JavaModelException) 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29585">29585</a>
+Core Exception as resource tree is locked initializing classpath container 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29487">29487</a>
+Internal compiler error: final field set in loop (in constructor)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29546">29546</a>
+Project rebuild cannot write over .class files
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29636">29636</a>
+First anonymous type should be named X$1
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29638">29638</a>
+No field initializations on Object
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27413">27413</a>
+Should we reject that code?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29211">29211</a>
+Should check the visibility of the array type before accessing its length field
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29213">29213</a>
+Should check the visibility of the array type before calling a method
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29621">29621</a>
+Wrong Delta When Adding to Filtered Folder 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29637">29637</a>
+Default debug attributes don't match with javac
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29538">29538</a>
+External jar not indexed
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28489">28489</a>
+PackageFragmentRoot.fullExclusionPatternChars() could be optimized for non-source roots 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29298">29298</a>
+Simplify AST creation for an IClassFile (minor)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29374">29374</a>
+Excluded folder on project not returned by Java Model 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27485">27485</a>
+SearchEngine returns wrong java element when searching in an archive that is included by two distinct java projects. 
+ 
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5997">5997</a>
+Code assist does not know about synchronized keyword
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3196">3196</a>
+DCR - CodeAssist - code assist doesn't assist for keywords (1G0FUQF)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23300">23300</a>
+Context sensitive Code Completion
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29541">29541</a>
+Scrubbing wipes out entire build directory
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28393">28393</a>
+Duplicate 'missing require project' marker
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25976">25976</a>
+Bug in code formatter: can't be called twice in a row...
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25896">25896</a>
+weird formatting of import declarations
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26426">26426</a>
+Add preference to sort method in the source file.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25875">25875</a>
+import splitting behavior
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23992">23992</a>
+Adding partial compilation for JAVA
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19501">19501</a>
+Found NPE in log
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13029">13029</a>
+"Build" sometimes builds files that have not changed
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13008">13008</a>
+Move a Java file, errors remain
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11572">11572</a>
+Cannot refresh a jar file
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8720">8720</a>
+include an external directory of classes in Java build path
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3359">3359</a>
+Get rid of source attachment root (1GJON3Q)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28073">28073</a>
+[startup] on startup, jCore loads launching plugins which loads debug plugins
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29652">29652</a>
+Can't attach source to some ZIP files
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29229">29229</a>
+Internal compiler error 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28801">28801</a>
+Internal compiler error 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18239">18239</a>
+Startup takes too long with java editor open
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28819">28819</a>
+Nullpointer exception when building
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28820">28820</a>
+NullPointerException in compiler in M4
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28953">28953</a>
+internal compiler error: NullPointerException in file with inner class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28954">28954</a>
+Internal compiler error -- assert statements in inner class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28980">28980</a>
+Null-pointer exception on nested class assert 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29267">29267</a>
+NullPointerExc. occured when building project 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29088">29088</a>
+Internal compiler error compiling code in M4 edition of eclipse
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29031">29031</a>
+Internal compiler error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5520">5520</a>
+Class files which are source not shown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3531">3531</a>
+NewClass(Interface)Wizard - shows not-visible types (1G4GNH3)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23033">23033</a>
+[Tasks] Create seperate setting for stopping build on a circular dependency error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28076">28076</a>
+NPE during quick shutdown
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29144">29144</a>
+Missing code implementation in the compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29527">29527</a>
+Organize imports fails on included code
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29501">29501</a>
+Uninitialized variable warning does not analyze the program thoroughly enough
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29394">29394</a>
+suboptimal handling closing/opening projects in autobuild
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29009">29009</a>
+ClassCircularityError in RequiredPluginsInitializer
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 15th January 2003
+<br>Project org.eclipse.jdt.core v_291a
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29516">29516</a>
+SearchEngine regressions in 20030114 
+      
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 14th January 2003
+<br>Project org.eclipse.jdt.core v_291
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28545">28545</a>
+JavaProject.exists() returns true if project doesn't have Java nature 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29404">29404</a>
+JavaCore.create(IProject) returns != null for non Java Projects. 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28752">28752</a>
+J Search resports non-existent Java element 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22783">22783</a>
+Unexpected null in compiler error message
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29365">29365</a>
+Syntax error inside method body is fooling NLS string detection
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29277">29277</a>
+ToolFactory.createDefaultClassFileReader: Retrieving of classfile location
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29376">29376</a>
+Remove 65k limit on static data
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29176">29176</a>  
+[DOM/AST] Statement.get/setLeadingComment should be deleted 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29274">29274</a>
+Surface non-java projects as model non-java resources 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28531">28531</a>
+Classpath Entry: Output folder can not be set to project 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28824">28824</a>
+Quick Fix: Type Mismatch -&gt; Cast bug [quick fix]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28599">28599</a>
+validateClasspath rendering of paths 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29079">29079</a>
+Buildpath validation: No check that output folder is inside project 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29159">29159</a>
+DeltaProcessor walks removed project 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28822">28822</a>
+ClassCastException in ProblemBinding 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28596">28596</a>
+Default output folder cause of validation error even if not used 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28672">28672</a>
+Batch compiler should support argument expansion
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28617">28617</a>
+Qualified super reference cannot be surrounded with parentheses.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27298">27298</a>
+Must return result error could be more accurate
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28869">28869</a>
+Parse error with final local vars without immediate assignment
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682">28682</a>
+org.eclipse.jdt.core.dom.ForStatement's body position is incorrect
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28622">28622</a>
+Check deprecation should handle unicodes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28559">28559</a>
+@deprecated has to be at the beginning of the comment line
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20844">20844</a>
+Indexing space usage
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26820">26820</a>
+Out of Memory indexing new plugins
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27289">27289</a>
+ClassCircularityError forces ClassNotFoundException's
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27401">27401</a>
+[startup] Review JavaCore.startup()
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28557">28557</a>
+Deprecation is not checked when subclassing a deprecated member type
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28615">28615</a>
+Cannot optimize out -0.0 in array initializers
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28750">28750</a>
+Compiler crashes with M4
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27241">27241</a>
+Missing code generation for the qualifier of a static method invocation
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3173">3173</a>
+Constant field code generation (1FEWXZW)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28583">28583</a>
+Missing one unit in package view 
+   
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3297">3297</a>
+DCR - JM - Packages view empty (1GEWRYI)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28934">28934</a>
+Using assert keyword in methods of nested classes causes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25980">25980</a>
+NullPointerException during Refactor/Move operation 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29343">29343</a>
+[M4] Scribbling on missing return statement needs to go on a diet
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29197">29197</a>
+NullPointerException when compiling Class with an assert in a method of an inner class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29082">29082</a>
+Can't access Inner class static field through an instance
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28675">28675</a>
+NPE in indexer
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28908">28908</a>
+ClassCastException in JavaProject.computePackageFragmentRoots
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27430">27430</a>
+Java model hangs onto many ClassFile objects
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29030">29030</a>
+Compiler Bug -- incorrect visibility of protected constructors
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28830">28830</a>
+Flexible projects cannot share output directory
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 17th December 2002 - 2.1 MILESTONE-4
+<br>Project org.eclipse.jdt.core v_290
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Added new JavaCore options
+	<ul>
+	<li>CODEASSIST / Define the Prefixes for Field Name<br>
+		When the prefixes is non empty, completion for field name will begin with
+		one of the proposed prefixes.<br>
+		<ul>
+		<li>option id: "org.eclipse.jdt.core.codeComplete.fieldPrefixes"</li>
+		<li>possible values: { "&lt;prefix&gt;[,&lt;prefix&gt;]*" } where &lt;prefix&gt; is a String without any wild-card</li>
+		<li>default: ""</li>
+	 	</ul>
+	</li>
+	<li>CODEASSIST / Define the Prefixes for Static Field Name<br>
+		When the prefixes is non empty, completion for static field name will begin with
+		one of the proposed prefixes.<br>
+		<ul>
+		<li>option id: "org.eclipse.jdt.core.codeComplete.staticFieldPrefixes"</li>
+		<li>possible values: { "&lt;prefix&gt;[,&lt;prefix&gt;]*" } where &lt;prefix&gt; is a String without any wild-card</li>
+		<li>default: ""</li>
+	 	</ul>
+	</li>
+	<li>CODEASSIST / Define the Prefixes for Local Variable Name<br>
+		When the prefixes is non empty, completion for local variable name will begin with
+		one of the proposed prefixes.<br>
+		<ul>
+		<li>option id: "org.eclipse.jdt.core.codeComplete.localPrefixes"</li>
+		<li>possible values: { "&lt;prefix&gt;[,&lt;prefix&gt;]*" } where &lt;prefix&gt; is a String without any wild-card</li>
+		<li>default: ""</li>
+	 	</ul>
+	</li>
+	<li>CODEASSIST / Define the Prefixes for Argument Name<br>
+		When the prefixes is non empty, completion for argument name will begin with
+		one of the proposed prefixes.<br>
+		<ul>
+		<li>option id: "org.eclipse.jdt.core.codeComplete.argumentPrefixes"</li>
+		<li>possible values: { "&lt;prefix&gt;[,&lt;prefix&gt;]*" } where &lt;prefix&gt; is a String without any wild-card</li>
+		<li>default: ""</li>
+	 	</ul>
+	</li>
+	<li>CODEASSIST / Define the Suffixes for Field Name<br>
+		When the suffixes is non empty, completion for field name will end with
+		one of the proposed suffixes.<br>
+		<ul>
+		<li>option id: "org.eclipse.jdt.core.codeComplete.fieldSuffixes"</li>
+		<li>possible values: { "&lt;suffix&gt;[,&lt;suffix&gt;]*" } where &lt;suffix&gt; is a String without any wild-card </li>
+		<li>default: ""</li>
+	 	</ul>
+	</li>
+	<li>ODEASSIST / Define the Suffixes for Static Field Name<br>
+		When the suffixes is non empty, completion for static field name will end with
+		one of the proposed suffixes.<br>
+		<ul>
+		<li>option id: "org.eclipse.jdt.core.codeComplete.staticFieldSuffixes"</li>
+		<li>possible values: { "&lt;suffix&gt;[,&lt;suffix&gt;]*" } where &lt;suffix&gt; is a String without any wild-card </li>
+		<li>default: ""</li>
+	 	</ul>
+	</li>
+	<li>CODEASSIST / Define the Suffixes for Local Variable Name<br>
+		When the suffixes is non empty, completion for local variable name will end with
+		one of the proposed suffixes.<br>
+		<ul>
+		<li>option id: "org.eclipse.jdt.core.codeComplete.localSuffixes"</li>
+		<li>possible values: { "&lt;suffix&gt;[,&lt;suffix&gt;]*" } where &lt;suffix&gt; is a String without any wild-card </li>
+		<li>default: ""</li>
+	 	</ul>
+	</li>
+	<li>CODEASSIST / Define the Suffixes for Argument Name<br>
+		When the suffixes is non empty, completion for argument name will end with
+		one of the proposed suffixes.<br>
+		<ul>
+		<li>option id: "org.eclipse.jdt.core.codeComplete.argumentSuffixes"</li>
+		<li>possible values: { "&lt;suffix&gt;[,&lt;suffix&gt;]*" } where &lt;suffix&gt; is a String without any wild-card </li>
+		<li>default: ""</li>
+	 	</ul>
+	</li>
+	</ul>
+</li>
+<li>New API class : org.eclipse.jdt.core.NamingConventions<br>
+This class provides methods for computing Java-specific names.
+<pre>
+package org.eclipse.jdt.core;
+public final class NamingConventions {
+	public static char[] removePrefixAndSuffixForArgumentName(IJavaProject javaProject, char[] argumentName) {...}
+	public static String removePrefixAndSuffixForArgumentName(IJavaProject javaProject, String argumentName) {...}
+	public static char[] removePrefixAndSuffixForFieldName(IJavaProject javaProject, char[] fieldName, int modifiers) {...}
+	public static String removePrefixAndSuffixForFieldName(IJavaProject javaProject, String fieldName, int modifiers) {...}
+	public static char[] removePrefixAndSuffixForLocalVariableName(IJavaProject javaProject, char[] localName) {...}
+	public static String removePrefixAndSuffixForLocalVariableName(IJavaProject javaProject, String localName) {...}
+	public static char[][] suggestArgumentNames(IJavaProject javaProject, char[] packageName, char[] qualifiedTypeName, int dim, char[][] excludedNames) {...}
+	public static String[] suggestArgumentNames(IJavaProject javaProject, String packageName, String qualifiedTypeName, int dim, String[] excludedNames) {...}
+	public static char[][] suggestFieldNames(IJavaProject javaProject, char[] packageName, char[] qualifiedTypeName, int dim, int modifiers, char[][] excludedNames) {...}
+	public static String[] suggestFieldNames(IJavaProject javaProject, String packageName, String qualifiedTypeName, int dim, int modifiers, String[] excludedNames) {...}
+	public static char[][] suggestLocalVariableNames(IJavaProject javaProject, char[] packageName, char[] qualifiedTypeName, int dim, char[][] excludedNames) {...}
+	public static String[] suggestLocalVariableNames(IJavaProject javaProject, String packageName, String qualifiedTypeName, int dim, String[] excludedNames) {...}
+	public static char[] suggestGetterName(IJavaProject project, char[] fieldName, int modifiers, boolean isBoolean, char[][] excludedNames) {...}
+	public static String suggestGetterName(IJavaProject project, String fieldName, int modifiers, boolean isBoolean, String[] excludedNames) {...}
+	public static char[] suggestSetterName(IJavaProject project, char[] fieldName, int modifiers, char[][] excludedNames) {...}
+	public static String suggestSetterName(IJavaProject project, String fieldName, int modifiers, String[] excludedNames) {...}
+}
+</pre>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28434">28434</a>
+Open Type broken when workspace has build path problems 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28326">28326</a>
+"Open Type" dialog could not open selected type 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28476">28476</a>
+JRE container description wrong
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28447">28447</a>
+Unreadable error message from build class path validation 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23210">23210</a>
+Member variable name proposal
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9511">9511</a>
+Exclude files and whole packages from build
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27925">27925</a>
+Openable.hasChildren is slow 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28246">28246</a>
+Class files written to custom output and default output
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27275">27275</a>
+Random craches with corupt jar in library path
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28357">28357</a>
+NPE on importing plugins
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 16th December 2002
+<br>Project org.eclipse.jdt.core v_289
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28316">28316</a>
+Missing references to constructor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28104">28104</a>
+33 Parsers and 35 Scanners created when opening a type hiearchy 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28298">28298</a>
+SANITY CHECK error when compiling a specific switch statement
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28296">28296</a>
+parser gives cast expression an incorrect length
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28000">28000</a>
+Too many deltas on startup, when resolving cp variables/containers
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 13th December 2002
+<br>Project org.eclipse.jdt.core v_288
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28109">28109</a>
+Excluding a source file doesn't remove its Java problems
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28115">28115</a>
+Ubiquitous resource in the JavaModel 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28064">28064</a>
+Stack overflow in java editor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28150">28150</a>  
+ClassCastException in completion
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22139">22139</a>
+Array initializer used inline causes syntax error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27941">27941</a>  
+ClassCastException in CompletionParser
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27284">27284</a>  
+misspelled variable name proposals for array with type name ending in 'y'
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27852">27852</a>  
+We should not reject a class named java if it is in the unnamed package
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28208">28208</a>
+IClasspathEntry.getExclusionPattern: String[] would be better
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28114">28114</a>
+Missing type if defined in nested source folder
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27371">27371</a>
+code assist / auto inserting "()" broken
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28087">28087</a>
+on build, findMarkers called 3 times for each project
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27992">27992</a>
+Incremental compile time = complete build time
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28095">28095</a>
+JDTCompilerAdapter references old Main constructor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23231">23231</a>  
+[resources] Ability to hide resources from the builders
+  
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 11th December 2002
+<br>Project org.eclipse.jdt.core v_287a
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28069">28069</a>
+JDTCompilerAdapter and compiler.batch.Main out of sync in I20021210 build
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 10th December 2002 
+<br>Project org.eclipse.jdt.core v_287
+<h2>
+What's new in this drop</h2>
+<ul> 
+<li>Added API <code>IJavaProject.isOnClasspath(IResource)</code> that returns whether a given resource is on the 
+     classpath of the project and whether it is excluded.
+</li>
+<li>Added mechanism to allow generic container user to request updating definitions held by
+container initializers, onto <code>org.eclipse.jdt.core.ClasspathContainerInitializer</code>:
+
+<pre>
+/**
+ * Returns <code>true</code> if this container initializer can be requested to perform updates 
+ * on its own container values. If so, then an update request will be performed using
+ * <code>ClasspathContainerInitializer#requestClasspathContainerUpdate</code>/
+ * 
+ * @param containerPath - the path of the container which requires to be updated
+ * @param project - the project for which the container is to be updated
+ * @return boolean - returns <code>true</code> if the container can be updated
+ * @since 2.1
+ */
+public boolean canUpdateClasspathContainer(IPath containerPath, IJavaProject project) {
+	// By default, classpath container initializers do not accept updating containers
+   	return false; 
+}</pre>
+<pre>
+/**
+ * Request a registered container definition to be updated according to a container suggestion. The container suggestion 
+ * only acts as a place-holder to pass along the information to update the matching container definition(s) held by the 
+ * container initializer. In particular, it is not expected to store the container suggestion as is, but rather adjust 
+ * the actual container definition based on suggested changes.
+ * 
+ * IMPORTANT: In reaction to receiving an update request, a container initializer will update the corresponding
+ * container definition (after reconciling changes) at its earliest convenience, using 
+ * <code>JavaCore#setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[], IProgressMonitor)</code>. 
+ * Until it does so, the update will not be reflected in the Java Model.
+ * 
+ * In order to anticipate whether the container initializer allows to update its containers, the predicate
+ * <code>JavaCore#canUpdateClasspathContainer</code> should be used.
+ * 
+ * @param containerPath - the path of the container which requires to be updated
+ * @param project - the project for which the container is to be updated
+ * @param containerSuggestion - a suggestion to update the corresponding container definition
+ * @throws CoreException when <code>JavaCore#setClasspathContainer</code> would throw any.
+ * @see JavaCore#setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[], IProgressMonitor)
+ * @see ClasspathContainerInitializer#canUpdateClasspathContainer(IPath, IJavaProject)
+ * @since 2.1
+ */
+public void requestClasspathContainerUpdate(IPath containerPath, IJavaProject project, IClasspathContainer containerSuggestion) throws CoreException {
+	// By default, classpath container initializers do not accept updating containers
+}</pre>
+</li>
+<li>Added helper method to <code>org.eclipse.jdt.core.JavaCore</code> so as to retrieve a registered 
+classpath container initializer:
+<pre>/**
+ * Helper method finding the classpath container initializer registered for a given classpath container ID 
+ * or <code>null</code> if none was found while iterating over the contributions to extension point to
+ * the extension point "org.eclipse.jdt.core.classpathContainerInitializer".
+ * 
+ * A containerID is the first segment of any container path, used to identify the registered container initializer.
+ * 
+ * @return ClasspathContainerInitializer - the registered classpath container initializer or <code>null</code> if 
+ * none was found.
+ * @since 2.1
+ */
+public static ClasspathContainerInitializer getClasspathContainerInitializer(String containerID)</pre>
+</li>
+</ul> 
+ 
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27890">27890</a>
+Batch compiler option -nowarn or -warn:none doesn't remove the warning for conversion from char[] to String
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27670">27670</a>
+ClasspathEntry.rootID allocates a lot of throw-away objects
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27595">27595</a>
+Add isOnClasspath(IResource) as API 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27652">27652</a>
+DCR - Need a way to request container initializers to update their container definitions
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27555">27555</a>
+[startup] PackageFragmentRoot - source attached too early (?) 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27861">27861</a>
+VerifyError not being caught in jdt core tests
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27914">27914</a>
+Infinite loop setting breakpoint
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27853">27853</a>
+Incorrect invalid unicode
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27840">27840</a>
+Computing non-java resources on a project should not create a NameLookup 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27690">27690</a>
+SourceElementParser doesn't parse local declarations even if it is requested
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5295">5295</a>
+Segmented view misses field comment
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27714">27714</a>
+JavaElement.newNotPresentException 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27735">27735</a>
+CodeAssist - No completion for type
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27370">27370</a>
+code assist not working with "new .."
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27658">27658</a>
+Infinite loop when checking cycle
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27683">27683</a>
+Index should be saved right after a project was indexed 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27330">27330</a>
+Signeture should reuse Scanner object 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27294">27294</a>
+Performance - getTypeSignature should not rescan element names 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26604">26604</a>
+Forward references unilaterally dissallowed
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27532">27532</a>
+Rebuild sometimes introduces invalid errors
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27597">27597</a>
+Ant adapter on a 1.4 JVM sets the target to be 1.4
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27494">27494</a>
+Source folder output folder shown in Package explorer 
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27783">27783</a>
+Build output folder should not always be in the project subdirectories
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27600">27600</a>
+NPE while searching
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26602">26602</a>
+Incremental compile/build produces invalid header classes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25752">25752</a>
+References list displays nulls for package name parts 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26967">26967</a>
+Upon exit always receive "JVM Terminated message"
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27748">27748</a>
+JUnit import fails
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27660">27660</a>
+Stack overflow causes startup crash 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27236">27236</a>
+search: references to constructors - a subclass constructor reported 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27603">27603</a>
+NPE in AbstractImageBuilder
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27448">27448</a>
+using SearchEngine the constructors, inner classes or packages are not found 
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 3rd December 2002 
+<br>Project org.eclipse.jdt.core v_286
+<h2>
+What's new in this drop</h2>
+<ul> 
+<li><b>Code completion enhancement:</b>
+   <ul>
+   <li>Relevance of a proposal is higher if the proposal is after an operator and the type of
+   proposal is compatible with the operator.
+   <br>In the following example <code>var1</code> is more relevant than <code>var2</code>.<pre>
+   public class X {
+      int var1;
+      Object var2;
+      void foo() {
+         int i = 1 + var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   </ul>
+</li>
+</ul> 
+ 
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27487">27487</a>
+Builder doesn't handle move to nested source folder
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27499">27499</a>
+Bogus ClasspathVariableInitializer is found in JavaModel 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22039">22039</a>
+Provide facility to exclude files from compilation
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26251">26251</a>
+project compiler settings : some are not set
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25538">25538</a>
+Conflict of classfolder and outputfolder not reported 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27310">27310</a>
+CompilationUnit#lineNumber(..) doc seems flawed
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27235">27235</a>  
+Bug with assignement with no effect mask
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25928">25928</a>
+Cannot nest entries in Java Build Path - Request for Feature Removal 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26806">26806</a>
+Source build path should allow subdirectories of directories already on path
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27322">27322</a>
+ClassCastException during code assist
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27247">27247</a>  
+Missing generation for the qualifier in 1.4 mode
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22407">22407</a>  
+Can't set Java project build output folder to different project
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27250">27250</a>  
+Walkback asking for a full rebuild
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27173">27173</a>  
+API: add methodInvocation.resolveMethodBinding 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24123">24123</a>
+Support for multiple output dirs
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27151">27151</a>
+NPE searching in hierarchy 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24308">24308</a>
+Performance - Optimization of search in hierarchy 
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27204">27204</a>
+AST.lineNumber(position) is not working, if the class didn't have a new line at the end of file.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27374">27374</a>
+project specific JRE settings
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27295">27295</a>
+Relevance of member type in type cast should be higher 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27254">27254</a>
+Inexact matches found when search references to UnconditionalFlowContext#maxFieldCount 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26938">26938</a>
+Build Project-command removes all from build-dir
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 26th November 2002 
+<br>Project org.eclipse.jdt.core v_285
+<h2>
+What's new in this drop</h2>
+<ul> 
+<li><b>Source attachment enhancements:</b> 
+	<ul>
+	<li><b>Source folder attachment:</b> The source attachment mechanism got generalized to all binary 
+		  package fragment root. In the past, only archives did support to carry a source attachment, in the 
+		  form of a source archive. Now, both binary folder or archive can be associated with sources, which 
+		  can be either a source archive or a source folder. In particular, mixed modes are supported (binary 
+		  archive associated to source folder and reciprocally). For more details, see 
+		  <code>IPackageFragmentRoot.attachSource(IPath, IPath, IProgressMonitor)</code> and 
+		  <code>JavaCore.newLibraryEntry(...)</code>.
+	</li>
+	<li><b>Automatic root path detection:</b> If null is specified as the root path (see 
+		  <code>JavaCore.newLibraryEntry(...)</code> and <code>IPackageFragmentRoot.attachSource(...)</code>), 
+		  then the Java Model will do its best to compute this root path automatically. The underlying algorithm 
+		  finds the first .java file, parses it, and extract the package declaration to compute the root path.
+	</li>
+	<li><b>Root path detection:</b> The new API 
+		  <code>IPackageFragmentRoot.computeSourceAttachmentRootPath(IPath sourceAttachmentPath)</code> 
+		  allows to detect the root path for a given source attachment and package fragment root.
+	</li>
+	</ul>
+</li>
+<li><b>Code completion enhancement:</b>
+   <ul>
+   <li>Relevance of a proposal is lesser if the proposal is in a variable initializer and the proposal is the variable.
+   <br>In the following example <code>var2</code> is less relevant than <code>var1</code>.<pre>
+   public class X {
+      int var1;
+      int var2 = var&lt;cursor&gt;
+   }</pre>
+   </li>
+   <li>Relevance of a proposal is lesser if the proposal is static and the qualified expression is non-static.
+   <br>In the following example <code>var2</code> is more relevant than <code>var1</code>.<pre>
+   public class X {
+      static int var1;
+      int var2;
+      void foo() {
+         this.var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   <li>Relevance of a proposal is higher if the completion is not qualified or is a local variable.
+   <br>In the following example the field <code>var2</code> and the parameter <code>var1</code> are more relevant
+   than field <code>var1</code>.<pre>
+   public class X {
+      int var1;
+      int var2;
+      void foo(int var1) {
+         var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   <li>Relevance of a proposal is higher if the proposal is equals to the current token.
+   <br>In the following example the field <code>var</code> is more relevant than field <code>varPlus</code>.<pre>
+   public class X {
+      int var;
+      int varPlus;
+      void foo() {
+         var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   </ul>
+</li>
+</ul> 
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24916">24916</a>
+quick fix: does not handle additional dimentions sometimes [quick fix]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26903">26903</a>
+VerifyError when casting null to an array type 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27002">27002</a>
+Scanner  allocates new ArrayList(10) everytime it's created
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26912">26912</a>
+'null == null' fooling blank final analysis
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26817">26817</a>
+Class File Editor shows words translated which shouldn't be 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26452">26452</a>
+Wrong automatically generated import statements 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26881">26881</a>
+Yoyo in the debugger again
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26753">26753</a>
+Suspicious yoyo behavior when stepping through if condition
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25148">25148</a>
+Can't have different case package names
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26883">26883</a>
+Should report unitialized blank final field
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20932">20932</a>
+Cannot add a source directory as the source of a JAR file. 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8719">8719</a>
+DCR - Attac h Java Source: allow un-jarred source tree? 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6912">6912</a>
+Attach Source Requires JAR/ZIP 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26255">26255</a>
+project compiler settings : cannot go back to worspace settings
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26841">26841</a>
+Compiler - Does not detect non-visible member type in import
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26784">26784</a>
+problem M3 sourcebuild, linux/gtk - build error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26706">26706</a>
+Cannot create project with comma characters in project path 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26195">26195</a>
+JDT compiler doesn't report recursive constructor invocation
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26747">26747</a>
+IllegalArgumentException reading build state
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3243">3243</a>
+SourceAttachment - automatic computation of the package root does not work (1GCMTLP) 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26785">26785</a>
+Unreachable empty blocks should be reported in 1.4 compliant mode
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26664">26664</a>
+deprecated interfaces are not allways recognized
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26759">26759</a>
+Cast Compiler Error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26134">26134</a>
+JACKS - VerifyError running invalid code
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26253">26253</a>
+task tags: two tags on one line creates one task for first tag
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26677">26677</a>
+Code Assist - expected type must be qualified.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23542">23542</a>
+CodeAssist proposal should offer non-qualified ones first
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25890">25890</a>
+code assist displays static members on non-static expressions
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26025">26025</a>
+Search should not use a file based name environment 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26138">26138</a>
+JACKS - The null literal should not be considered as a constant expression
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26585">26585</a>
+Wrong code generation in conditional expression
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26588">26588</a>
+Code Assist - variable must be less relevant in initialization
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26142">26142</a>
+JACKS: Must reject invalid character after class definition
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26141">26141</a>
+JACKS: Should report unterminated comment
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26129">26129</a>
+JACKS: VerifyError, because opcode jsr_w not used
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25888">25888</a>
+Open on selection fails on private binary inner class contructor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23126">23126</a>
+allow selecting directories when attaching source to jar's 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22145">22145</a>
+Attach source directory in addition to archive file [build path] 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26459">26459</a>  
+Unused NonVoidMethodRequestor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26122">26122</a>  
+JACKS: VerifyError when affecting final local in anonymous class header
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26124">26124</a>  
+JACKS - Compile error not reported when break; used in a labeled statement
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24934">24934</a>
+Move top level doesn't optimize the imports[refactoring] 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25250">25250</a>
+Scrapbook shows wrong error message
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26580">26580</a>
+java element deltas not sent out? 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21837">21837</a>
+Eclipse hangs trying to set a breakpoint 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25406">25406</a>
+Package name change disallowed  because of case insensitivity
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26885">26885</a>
+binary representation wrongly flagged as error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26526">26526</a>
+Inner class imports flagged as errors
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26652">26652</a>
+Encountered  "case statement must be constant" error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23076">23076</a>
+compilation does not create class files!!!
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24015">24015</a>
+CVS synchronize with outgoing changes only causes Java rebuild
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25478">25478</a>
+Unresolvable import statements Problem Marker malfunctioning
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26658">26658</a>
+No deprecation warning
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26132">26132</a>
+JACKS - Blank final instance must be assigned before the end of constructor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26340">26340</a>
+Using javadoc comments to generate and manage bookmarks.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9020">9020</a>
+More intelligent code assist.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25962">25962</a>
+Output classes is scrubbed due to error in compiling a source.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26166">26166</a>
+compile single file
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25684">25684</a>
+SelectionEngine to be made API?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26454">26454</a>  
+DCR: IScanner.setSourceReader
+  
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 14th November 2002 - 2.1 MILESTONE-3
+<br>Project org.eclipse.jdt.core v_284
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26259">26259</a>  
+Errors reported on save which go aways on rebuild
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 13th November 2002
+<br>Project org.eclipse.jdt.core v_283
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26128">26128</a>  
+packages don't appear in package explorer view 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26044">26044</a>
+Unexpected full builds
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26098">26098</a>
+Wrong line number attribute.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24517">24517</a>
+type view does not notice when jar disappears 
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26063">26063</a>  
+MacOS X: Error saving files
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 12th November 2002
+<br>Project org.eclipse.jdt.core v_282b
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>In case someone deletes the .classpath and no corresponding classpath exists in memory,
+      a default .classpath is not automatically created any longer but a marker is created on the
+      project preventing this project from being built.
+      This covers the following scenarii:
+      <ul>
+      <li>Someone checks in a .project file with the Java nature but doesn't check in the .classpath file.
+            When the project is checked out, a marker is created indicating the .classpath file could not 
+            be read.</li>
+      <li>Someone shuts down the workbench, deletes the .classpath and restart the workspace.
+            When attempting to built the project,  a marker is created indicating the .classpath file could 
+            not be read and the project is not built.</li>
+       <li>The Java nature is added to a project without a .classpath file. A marker is created indicating 
+       		the .classpath file could not be read.
+      </ul>
+</li>
+<li><b>Selectivity API</b> - Source folders can be associated with filters allowing to exclude
+specified portions of the resource tree rooted at this source entry's path. Exclusion patterns 
+are expressed using the Ant file pattern syntax (i.e. **, *, ? wild-cards; where ** can stand for
+one or many folder names).
+   <ul>
+   <li>Added <code>JavaCore.newSourceEntry(IPath path, <b>IPath[] exclusionPatterns</b>)</code>
+   </li>
+   <li>Added <code>IClasspathEntry.getExclusionPatterns()</code>
+   </li>
+   </ul>
+   Full implementation will be available by 2.1 milestone-4.
+</li>
+<li><b>Multiple output folder API</b> - Source folders can be associated with a specific output
+location. The project output location is now corresponding to a default output location.
+   <ul>
+   <li>Added <code>JavaCore.newSourceEntry(IPath path, IPath[] exclusionPatterns, <b>IPath specificOutputLocation</b>)</code>
+   </li>
+   <li>Added <code>IClasspathEntry.getOutputLocation()</code>
+   </li>
+   </ul>
+   Full implementation will be available by 2.1 milestone-4.
+</li>
+<li>The Java builder now iterates over the resource tree, allowing to take advantage of forthcoming 
+workspace structure enhancements (in particular: linked folders). As a consequence, the Java builder
+will only consider the resources officially reflected in the resource tree (as opposed to existing 
+underlying files not yet reflected when the resource tree is out of sync).
+Note that the build state format has changed to reflect this evolution, as a consequence, if reusing an existing
+workspace, the first build action will have to be a rebuild-all projects, since incrementally it will
+not be able to re-read old build states associated with prerequisite projects (and an incremental build
+cannot tell the build manager a full rebuild is necessary). 
+</li>
+<li>An option allows to control whether the Java builder should clean the output folder(s). Since
+options can be specified on a per project basis, each individual project can be toggled for cleaning
+the output folder or not (default is to clean). Also, "scrubbing" output folder got renamed into 
+"cleaning" output folder. 
+<pre>
+* BUILDER / Cleaning Output Folder(s)
+*    Indicate whether the JavaBuilder is allowed to clean the output folders
+*    when performing full build operations.
+*     - option id:       "org.eclipse.jdt.core.builder.cleanOutputFolder"
+*     - possible values: { "clean", "ignore" }
+*     - default:         "clean"
+</pre>
+</li>
+<li>Integrated patch from Genady Beriozkin for bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25092">25092</a>.
+The compiler will now optionally diagnose assignments having no effect (e.g. x = x).
+Added the following option to control this behavior.
+<pre>
+* COMPILER / Reporting Assignment with no effect
+*    When enabled, the compiler will issue an error or a warning whenever an assignment
+*    has no effect (e.g 'x = x').
+*     - option id:         "org.eclipse.jdt.core.compiler.problem.noEffectAssignment"
+*     - possible values:   { "error", "warning", "ignore" }
+*     - default:           "warning"
+</pre>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26053">26053</a>
+builder out of order in I-20021112
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25859">25859</a>
+Error doing Java Search 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25092">25092</a>  
+Detect/Warn on possible user typos
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25894">25894</a>  
+Memory leak - Global ThisReference is leaking bindings
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25885">25885</a>  
+Code Assist - exact expected type should be more relevant than subtype
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25184">25184</a>  
+Operations on cu outside classpath should fail 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25876">25876</a>  
+Code Assist - void method are proposed in assignment
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23586">23586</a>  
+Creating a new project deletes files in the parent folder 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25815">25815</a>
+Code Assist does not propose member type.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25820">25820</a>
+NPE in Code Assist
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25811">25811</a>
+Code Assist for variable name suggestion is not perfect.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24010">24010</a>
+IType::resolveType returns null for inner types
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25735">25735</a>
+Non-NLS strings are not reported properly when the ending tag is missing
+  
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22509">22509</a>  
+Unable to start some Java application
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21864">21864</a>  
+Associate package hierarchy with top-level source directory
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12957">12957</a>  
+Copied resources out of synch
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24276">24276</a>  
+javadoc - Imports marked as unused when they are really necessary.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18320">18320</a>  
+Compiler Warning/Error/Ignore when Assigning to a Parameter
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25994">25994</a>  
+Marker for "static method should be accessed in a static way"
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25995">25995</a>  
+Marker for "static method should be accessed in a static way"
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25582">25582</a>  
+Cannot specify java source path for resource !
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25665">25665</a>  
+AST adds implicit super call (PR 22306 needed on 2.0.2 stream)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25304">25304</a>  
+Code assist and parameter assistance.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24783">24783</a>  
+method parameter name code completion 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25872">25872</a>  
+Eclipse considers the Unicode char '\u000A' an invalid character constant.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25255">25255</a>  
+ICompilationUnit::getUnderlyingResource throws an exception 
+   
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 5th November 2002
+<br>Project org.eclipse.jdt.core v_281
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Code completion enhancement:
+   <ul>
+   <li>Relevance of a proposal is higher if the proposal is in a variable initializer and its type is compatible with the variable type.
+   <br>In the following example <code>var2</code> is more relevant than <code>var1</code>.<pre>
+   public class X {
+      Object var1;
+      int var2;
+      void foo() {
+         int i = var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   <li>Relevance of a proposal is higher if the proposal is on the right hand side of an assignment and its type is compatible with the left hand side type.
+   <br>In the following example <code>var2</code> is more relevant than <code>var1</code>.<pre>
+   public class X {
+      Object var1;
+      int var2;
+      void foo() {
+         int i;
+         i = var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   </ul>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24626">24626</a>
+codeSelect - does not work in catch clause
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25688">25688</a>
+Non NLS strings improperly reported when the line separator is \r only
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25687">25687</a>
+codeSelect - fails with inner class as method parameter
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25605">25605</a>
+[API] someJavaProject.getRequiredProjectNames(); API should specify that the array is returned in ClassPath order 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25358">25358</a>
+Creating a new Java class - Browse for parent 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25495">25495</a>
+Ant compiler adapter should treat bogus imports as errors
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21957">21957</a>  
+'refactor rename' allows subpackage name to start with a space 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25591">25591</a>  
+ClassCastException in CompletionEngine
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25539">25539</a>  
+Unexpected inaccurate search results 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25578">25578</a>
+Abstract method declaration completion should be more relevant
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25221">25221</a>
+Code assist after new keyword
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25347">25347</a>
+Deprecation-Flag in Ant doesn't work with Eclipse Compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25551">25551</a>
+Ant javac adapter always reports build successful even if there are compiler errors
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24939">24939</a>  
+Code Assist doesn't find protected constructor for anonymous class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3717">3717</a>  
+Smoke 114: Progress reporting when switching to different default VM (1GEHXMV) 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24565">24565</a>
+CodeAssist proposing twice the same method
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25520">25520</a>
+Possible problem in JavaProject#findPackageFragmentRoots(IClasspathEntry)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24518">24518</a>
+Public flag not set for interface method 
+     
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18212">18212</a>  
+Java Build Paths no updated correctly when checking out multiple projects 
+   
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 29th October 2002
+<br>Project org.eclipse.jdt.core v_280
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>In 1.4 compliant mode, the compiler will report errors for unterminated line comments (i.e. not closed with a line break). For backward compatibility reason,
+the stricter check isn't performed in 1.3 compliant mode. See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23096">23096</a> for further details.
+Also note that from now on, the trailing line break is part of the line comment source range.
+</li>
+<li>The API setLeadingComment(String) on org.eclipse.jdt.core.dom.Statement class has been updated to reflect the changes made for <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23096">23096</a>.
+This API strictly fits to the JLS. It doesn't use the compliance mode settings. So a line comment needs to be closed with a line break in
+order to be valid.
+See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25206">25206</a> for further details.</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22358">22358</a>
+[api] Would like CharOperation made API
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23207">23207</a>  
+Flags.isDeprecated(IMethod.getFlags()) doesn't work 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23984">23984</a>
+validateEdit not called when changing .classpath
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25439">25439</a>
+toString() on IBinding subclasses
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25347">25347</a>
+Deprecation-Flag in Ant doesn't work with Eclipse Compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25396">25396</a>
+NPE importing external plug-ins
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25433">25433</a>
+#findPackageFragmentRoots(IClasspathEntry)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25377">25377</a>
+Error location is not correct for empty array initializer
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25174">25174</a>
+Wrong code generation of the eclipse java compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25298">25298</a>
+One out of two non-externalized strings reported
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25188">25188</a>
+Debugger won't stop on method first statement breakpoint
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25233">25233</a>
+NPE in CompletionParser.buildMoreCompletionContext
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25206">25206</a>
+DOM/AST: Statement.setLeadingComment specification is inconsistent with the JLS
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25229">25229</a>
+Compiler should not reject innerclass scenario
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25183">25183</a>
+AST: ITypeBinding of interface returns constructor
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24833">24833</a>
+TODO: not detected if there is only a comment in .java file
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24744">24744</a>
+TODO: Task not found if comment after last closing brace
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23096">23096</a>
+Compiler does not report end of line comment error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24559">24559</a>
+TODO: items disappear when there is a syntax error in a method body
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13907">13907</a>
+Scanner does not report whitespace tokens at end of input
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25185">25185</a>
+ClassFormatError compiling a method with a compilation problem
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25124">25124</a>
+AST: IllegalArgumentException on creation
+  
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23208">23208</a>  
+The javadoc shown by Eclipse is different from what javadoc produces
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25464">25464</a>  
+NPE during import plugins
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25170">25170</a>  
+opening .java files from outside of classpath is much slower then other files 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23307">23307</a>
+Refactoring and Search are applied only on open files
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20985">20985</a>
+[GM1] REGRESSION: eclipse wants to import class already imported
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24906">24906</a>
+new non-nls strings not noticed on typing
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25378">25378</a>
+Switching from jdk1.3.1 to jdk1.4.1 leaves me without CVS support
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22304">22304</a>
+JavaModel: inner Node Constructor shows syntetic argument
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25373">25373</a>
+options now with 'Map'
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25297">25297</a>
+AST: DCR: Allow subclasses of ASTNode
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20751">20751</a>
+[F3] Discrepency between light bulbs and compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25163">25163</a>
+AST DCR: Parameter names in IMethodBinding
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25103">25103</a>
+Formatter indentation
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 23rd October 2002
+<br>Project org.eclipse.jdt.core v_279a
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25197">25197</a>  
+NPE importing external plugins  
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 22nd October 2002
+<br>Project org.eclipse.jdt.core v_279
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>By default, the compiler will produce warnings for unused imports and non-static references to static members.
+</li>
+<li>Code completion enhancement:
+   <ul>
+   <li>Relevance of a proposal is higher if the proposal is in a return statement and its type is compatible with the return type.
+   <br>In the following example <code>var2</code> is more relevant than <code>var1</code>.<pre>
+   public class X {
+      Object var1;
+      int var2;
+      int foo() {
+         return var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   <li>Relevance of a proposal is higher if the proposal is in a cast statement and its type is in the hierachy of the cast type.
+   <br>In the following example <code>var2</code> is more relevant than <code>var1</code>.<pre>
+   public class X {
+      Object var1;
+      int var2;
+      long foo() {
+         return (int)var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   <li>Relevance of a proposal is higher if the proposal is an argument of a sent message and its type is compatible with the parameter type.
+   <br>In the following example <code>var2</code> is more relevant than <code>var1</code>.<pre>
+   public class X {
+      Object var1;
+      int var2;
+      void foo(int i) {
+         foo(var&lt;cursor&gt;
+      }
+   }</pre>
+   </li>
+   </ul>
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25040">25040</a>  
+getPackageFragmentRoots(CP entry) implementation doesn't match spec  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25041">25041</a>  
+IJavaElement#getUnderlyingResource - should fail if element doesn't exist  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24505">24505</a>  
+Refactoring an empty package makes it disappears  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24775">24775</a>  
+Wrong delta when replacing binary project with source project  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25018">25018</a>
+parseCompilationUnit(..) does not report a compile error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24773">24773</a>
+CompilationUnit.getProblems: not all problems?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24747">24747</a>
+incorrect compile error message
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24974">24974</a>
+Broken link in JDT Plugin-in Developer's Guide
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24691">24691</a>  
+Missing interface makes hierarchy incomplete  
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24213">24213</a>  
+[M1] dependency checking too conservative
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24671">24671</a>  
+Attaching source to JAR triggers build
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25039">25039</a>  
+Non-existing package fragment roots should not be openable  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23311">23311</a>  
+Need a way to include external JARs in the indexer
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24956">24956</a>  
+Compiler misdiagnoses exception sequence
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24019">24019</a>  
+Jar Refresh Problem
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 15th October 2002 - 2.1 MILESTONE-2
+<br>Project org.eclipse.jdt.core v_278
+<h2>
+What's new in this drop</h2>
+<ul>
+<li> Added soft dependency on plug-in "org.eclipse.team.core" to account for fileTypes contribution
+</li>
+ <li> JavaCore option added for specifying the task priorities (default is <code>""</code> meaning 
+ tasks have normal priority).
+<pre>
+ * COMPILER / Define the Automatic Task Priorities
+ *    In parallel with the Automatic Task Tags, this list defines the priorities (high, normal or low)
+ *    of the task markers issued by the compiler.
+ *    If the default is specified, the priority of each task marker is "NORMAL".
+ *     - option id:			"org.eclipse.jdt.core.compiler.taskPriorities"
+ *     - possible values:	{ "priority[,priority]*" } where priority is one of "HIGH", "NORMAL" or "LOW"
+ *     - default:			""
+</pre>	 
+ </li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23272">23272</a>  
+Plugin dependence problem
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24741">24741</a>  
+Search does not find patterned type reference in binary project  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23812">23812</a>  
+Configurable (TODO) Markers priority in takslist  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22840">22840</a>  
+Refactor-&gt;Move doesn't update Local History  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24685">24685</a>  
+Inner package fragments gets deleted - model out of synch  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24498">24498</a>  
+Duplicate entries on classpath cause CP marker to no longer refresh  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24630">24630</a>
+NPE in MethodBinding
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622">24622</a>
+ast: problems with missing ParenthesizedExpression nodes #2
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24529">24529</a>
+compiler must accept empty source files
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502">24502</a>
+AST: No binding for type accesses to a non-visible type
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24511">24511</a>
+AST: Resolve on non-visible import
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501">24501</a>
+AST: No binding for fields accesses of non-visible fields
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24500">24500</a>
+AST: No binding for field instance access in constructor invocation
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24499">24499</a>  
+AST: No binding for instance access in constructor invocation
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17104">17104</a>  
+Compiler does not complain but "Quick Fix" ??? complains  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21893">21893</a>
+IType::isMember works the other way round
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22581">22581</a>
+Ignore unreachable code for unread variables
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21175">21175</a>  
+Incorrectly identified: Catch block is hidden by another one in the same try statement
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23523">23523</a>  
+Ouliner not updated after catch-up from repository  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24230">24230</a>  
+search: does not find a references to constructor in anonymous type creations nodes  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24522">24522</a>  
+New Class Dialog: No interface method stubs generated for nested class  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24567">24567</a>  
+problem with hierarchy in working copy  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21901">21901</a>
+JavaCore.setClasspathContainer is not generic enough
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24623">24623</a>
+AST: No method body when abstract modifier is existing
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24558">24558</a>
+compiler error, method declaration in interface -&gt; NullPointerException
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24621">24621</a>
+Cannot specified JRE for each project separely ...
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24600">24600</a>
+ECLIPSE_HOME not set
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14194">14194</a>
+Java source files shouldn't show errors when in src dir, but not java resource
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24514">24514</a>
+dependency analyzer is broken
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24400">24400</a>
+Compiler bug or java 'feature' ?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24243">24243</a>
+Heuristic to differ between internal JAR and external JAR.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23769">23769</a>
+java.lang.OutOfMemoryError
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 8th October 2002
+<br>Project org.eclipse.jdt.core v_277
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Search for constructor references now finds implicit constructor calls. Indexes in old workspaces are recomputed when restarted which may result in longer startup times. 
+</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449">24449</a>
+AST: Resolve on field access
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453">24453</a>
+ast: problems with missing ParenthesizedExpression nodes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23112">23112</a>  
+search: need a way to search for references to the implicit non-arg constructor  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24440">24440</a>
+NPE when complete qualified allocation expression
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24406">24406</a>
+AST: Resolve on method invocation
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24376">24376</a>  
+Attempt to change resource while tree locked during container initialization
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24346">24346</a>  
+Method declaration not found in field initializer  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13939">13939</a>
+DBCS: no error message to DBCS whitespace in java source
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23829">23829</a>  
+IType::resolveType incorrectly returns null  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22541">22541</a>  
+JDT core test suites should be on dev.eclipse.org  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=2857">2857</a>  
+Renaming .java class with errors to .txt leaves errors in Task list (1GK06R3)  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24245">24245</a>  
+IJavaSearchScope.enclosingProjectsAndJars doc misleading, hard to use  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24140">24140</a>  
+Searching for references to a private field within heirarchy seems very slow  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24268">24268</a>
+DOM: NPE in NaiveASTFlattener#visit(SwitchCase node)
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23644">23644</a>  
+hierarchy: getAllSuperTypes does not include all superinterfaces?  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23593">23593</a>  
+search: strange method reference match found  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8489">8489</a>
+space instead of tab
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24370">24370</a>  
+SerialUID
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24205">24205</a>  
+TypeHierarchy omits subtypes  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24375">24375</a>
+Casting of primitive final fields to its own type causes VerifyError
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22548">22548</a>
+IndexOutOfBoundsException during jdt indexing
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24347">24347</a>
+AST: Resolve on type name qualifier
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23211">23211</a>  
+Bug with search/reference !  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22894">22894</a>  
+Improperly formed ICompilationUnit?  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24324">24324</a>  
+AST: IVariableBinding.getModifiers not same as in source
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23930">23930</a>
+Eclipse crash when a rebuild project !???
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21905">21905</a>
+Class file editor should indicate that .class file is missing debug attributes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21741">21741</a>
+Error while Build and doesn't allow to create ServerProject also
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22376">22376</a>
+Parent of JarEntryFile
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24274">24274</a>
+ArrayIndexOutOfBoundsException from source mapper  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23677">23677</a>
+java.lang.OutOfMemoryError when setting class path
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24233">24233</a>
+Impossible to compile projects - followinf of BUG 22509
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24233">24233</a>
+Installed JRE detection doesnt work correctly
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 1st October 2002
+<br>Project org.eclipse.jdt.core v_276
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Registered classpath variable initializers are now taking precedence on values persisted during previous session. This allows
+initializers to rebind their variables when restarting a workspace, and thus fix up their values. </li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23594">23594</a>  
+code resolve: incorrectly resolving method invocation
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21763">21763</a>  
+Problem in Java search [search]  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22846">22846</a>  
+Cannot add in a new classpath entry  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20197">20197</a>  
+Classpath Variables pref page does not refresh with latest variables [build path]  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24134">24134</a>
+JDTCompilertAdapter doesn't throw BuildException on compile error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24001">24001</a>
+Classpath variable/container initializer should activate 
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23656">23656</a>  
+hierarchy: type hierarchy on interfaces does not contain Object  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23890">23890</a>  
+Changing Package Declarations triggers full project rebuild
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24172">24172</a>  
+Strange behavior with wrong package declaration
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24093">24093</a>
+NPE in Java Builder
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22445">22445</a>
+Compiler inconsistent with javac when code returns from inside a finally {} block
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24189">24189</a>
+need a way to  verify that a string can be a type name
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23925">23925</a>
+Class path vars missing
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24210">24210</a>
+NPE renaming project
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24164">24164</a>
+Cannot use a specif rt.jar for a specific Java project
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23989">23989</a>
+Build Path page reports cycle even if there is none
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22754">22754</a>
+JRE-Settings independent for each project
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 26th September 2002
+<br>Project org.eclipse.jdt.core v_275
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24083">24083</a>
+NPE accessing JavaProject preferences
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 24th September 2002
+<br>Project org.eclipse.jdt.core v_274
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Added new API findDeclaringNode(String) on CompilationUnit. This new method should be used to retrieve ASTNode
+declared in another compilation unit. See javadoc for further details or bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23734">23734</a>.
+</li>
+<li> New APIs added onto IJavaProject to enable project custom options. Project custom options are persisted into a file ".jprefs" 
+located inside the project metadata JDT/Core plugin location. Project can be specified custom options, and inherit global ones from JavaCore.
+At this point, it is unclear whether we will attempt to share these custom properties (like .classpath file).
+	<ul>
+		<li>
+<pre>
+	/**
+	 * Helper method for returning one option value only. Equivalent to <code>(String)this.getOptions(inheritJavaCoreOptions).get(optionName)</code>
+	 * Note that it may answer <code>null</code> if this option does not exist, or if there is no custom value for it.
+	 * 
+	 * For a complete description of the configurable options, see <code>JavaCore#getDefaultOptions</code>.
+	 * 
+	 * @param optionName the name of an option
+	 * @param inheritJavaCoreOptions - boolean indicating whether JavaCore options should be inherited as well
+	 * @return the String value of a given option
+	 * @see JavaCore#getDefaultOptions
+	 * @since 2.1
+	 */
+	String getOption(String optionName, boolean inheritJavaCoreOptions);
+</pre>		
+		</li>
+		<li>
+<pre>
+	/**
+	 * Returns the table of the current custom options for this project. Projects remember their custom options,
+	 * i.e. only the options different from the the JavaCore global options for the workspace.
+	 * A boolean argument allows to directly merge the project options with global ones from <code>JavaCore</code>.
+	 * 
+	 * For a complete description of the configurable options, see <code>JavaCore#getDefaultOptions</code>.
+	 * 
+	 * 
+	 * @param inheritJavaCoreOptions - boolean indicating whether JavaCore options should be inherited as well
+	 * @return table of current settings of all options 
+	 *   (key type: <code>String</code>; value type: <code>String</code>)
+	 * @see JavaCore#getDefaultOptions
+	 * @since 2.1
+	 */
+	Map getOptions(boolean inheritJavaCoreOptions);
+</pre>
+		</li>		
+		<li>
+<pre>
+	/**
+	 * Sets the project custom options. All and only the options explicitly included in the given table 
+	 * are remembered; all previous option settings are forgotten, including ones not explicitly
+	 * mentioned.
+	 * 
+	 * For a complete description of the configurable options, see <code>JavaCore#getDefaultOptions</code>.
+	 * 
+	 * 
+	 * @param newOptions the new options (key type: <code>String</code>; value type: <code>String</code>),
+	 *   or <code>null</code> to flush all custom options (clients will automatically get the global JavaCore options).
+	 * @see JavaCore#getDefaultOptions
+	 * @since 2.1
+	 */
+	void setOptions(Map newOptions);
+</pre>
+		</li>		
+	</ul>
+</li>
+	<li>Added <code>JavaCore.run(IWorkspaceRunnable, IProgressMonitor)</code> that allows batching
+		  of java model operations. Only one Java element changed event is reported at the end of the batch.
+		  For example the following code snippet notifies listeners twice:
+	<pre>
+	ICompilationUnit unit = ...;
+	unit.createType("class B {}", null, false, monitor);
+	unit.getType("A").createField("int i;", null, false, monitor);
+	</pre>
+		  To be notified only once, use the following:
+	<pre>
+	JavaCore.run(
+		new IWorkspaceRunnable() {
+			public void run(IProgressMonitor monitor) throws CoreException {
+				ICompilationUnit unit = ...;
+				unit.createType("class B {}", null, false, monitor);
+				unit.getType("A").createField("int i;", null, false, monitor);
+			}
+		},
+		monitor);
+	</pre>
+	</li>
+</ul>
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23977">23977</a>
+.classpath corruption
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23734">23734</a>
+AST: CompilationUnit.findDeclaringNode only finds bindings from its own ast
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23979">23979</a>
+Build Path page reports cycle even if there is none
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20881">20881</a>
+"organize imports" does not find an import statement "add import" does. [code manipulation]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7091">7091</a>
+turn off the debug info on a project by project basis
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19663">19663</a>
+Java|Compiler|Other|Filtered resources needs to be project/team specific
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14062">14062</a>
+JDK Compliance against a project
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22289">22289</a>
+To have file encoding by project
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7395">7395</a>
+Set the compiler options per project instead of per workspace
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23894">23894</a>
+Extra (TODO) Markers : There is no todo task when there is no error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23162">23162</a>
+DOM: clients should be able to control if bindings are available even if AST is modified
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23901">23901</a>
+CCE in DefaultBindingResolver
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23597">23597</a>
+cannot resolve a call to a protected superclass method
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23573">23573</a>
+AST: clone &amp; source locations
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22618">22618</a>
+incorrect warning about unread vars
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3239">3239</a>
+CodeFormatter: need to be able to set linedelimiter used (1GC0LFK)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22979">22979</a>
+using IScanner inside comments
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23550">23550</a>
+Micro-java, embedded java
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23833">23833</a>  
+Java source attachment does not work
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23402">23402</a>  
+Cancel on compile has no effect
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23635">23635</a>  
+Compilation Errors Inconsistent
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21520">21520</a>  
+'Errors during build: org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding' error
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22148">22148</a>  
+Qlfd. vs. unqlfd. Name from IField.getTypeSignature  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21475">21475</a>
+No source for classes without debug information [general issue]
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 19th September 2002 - 2.1 MILESTONE-1
+<br>Project org.eclipse.jdt.core v_273a
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23558">23558</a>  
+Extremly slow startup  
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23788">23788</a>  
+Java compiler doesn't properly flag invalid protected access (for javac 1.4 compatibility)
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 16th September 2002
+<br>Project org.eclipse.jdt.core v_273
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>The source lookup for .class files inside jar files has been improved. Before it worked only if the .class files
+had a source file attribute. This was too limiting in case of the usage of a library which has not been compiled in
+debug mode. Now in case there is no such source file attribute, an heuristic is used to create the proper entry. We
+assume that a class named A in a package p has been compiled from a class A.java in a folder p. For .class files
+that correspond to member or local classes the source mapping is using the top level class name in which the class is defined.
+The only limitiation that still exists is that it is not possible to retrieve the source for secondary types (types
+that are defined in a file which doesn't have the same name). See bug <A HREF="http://dev.eclipse.org/bugs/show_bug.cgi?id=21475">21475</a>
+for further details.</li>
+</ul>
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21475">21475</a>
+Attaching Source-Code to a library which is not compiled with debug info
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23466">23466</a>
+Compiler violates JLS 8.3.2
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21022">21022</a>
+warning on imports while typing and warning on unused imports is on
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23329">23329</a>  
+search: incorrect range for type references in brackets  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23284">23284</a>
+AST: SingleVariableDeclaration needs extra dimensions?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23464">23464</a>
+ast: (Super)ConstructorInvocation should be wrapped in ExpressionStatement
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22560">22560</a>
+"Add return type" correction could be smarter [quick fix]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23492">23492</a>
+[DOM/AST] lazy init should not count as a modification
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23292">23292</a>  
+Must restart Eclipse after debug of source in .zip is updated  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22306">22306</a>
+AST: Constructor contains syntetic SuperConstructorCall
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22832">22832</a>
+select does not work when caret is at the begining of an identifier
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23242">23242</a>
+Bad line number info when multiple statements on same line
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23362">23362</a>
+DOM: incorrect length for InfixExpression.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23357">23357</a>  
+Build not triggered on build path change
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21954">21954</a>  
+compile / debug VM mismatch
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23558">23558</a>  
+Extremly slow startup
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21952">21952</a>  
+Circular Dependencies Message - Error vs. Warning Message  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23375">23375</a>  
+cycle detection algorithm is O(pow(n - 1, n - 1))
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22900">22900</a>
+import of a.b.C fails if package a exists
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 10th September 2002
+<br>Project org.eclipse.jdt.core v_272
+<h2>
+What's new in this drop</h2>
+<ul>
+  <li>JavaCore option added for the error level (warning or error) of incomplete classpath or projects involved
+        in a cycle.
+        <pre>
+* JAVACORE / Reporting Incomplete Classpath
+*    An entry on the classpath doesn't exist or is not visible (e.g. a referenced project is closed).
+*     - option id:			"org.eclipse.jdt.core.incompleteClasspath"
+*     - possible values:	{ "error", "warning"}
+*     - default:			"error"
+* 
+* JAVACORE / Reporting Classpath Cycle
+*    A project is involved in a cycle.
+*     - option id:			"org.eclipse.jdt.core.circularClasspath"
+*     - possible values:	{ "error", "warning" }
+*     - default:			"error"
+        </pre>
+  </li>
+<li>New option -bootclasspath is added for the batch compiler. This option allows you to override the location of bootstrap
+class files. If omitted, the batch compiler will retrieve the libraries used by its JVM. So there is no more need to specify the
+rt.jar file using the -classpath option. The batch compiler also retrieves the contents of the property "java.class.path" if no 
+-classpath option is specified.
+</li>
+<li> Deprecation warning inside deprecated code are now ignored by default. A new JavaCore option
+allows to report them all.
+<pre>
+*	COMPILER / Reporting Deprecation Inside Deprecated Code
+*		When enabled, the compiler will signal use of deprecated API inside deprecated code.
+*     The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.deprecation".
+*     		- option id:		"org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode"
+*     		- possible values:	{ "enabled", "disabled" }
+*     		- default:			"disabled"
+</pre>
+</li>
+<li> Compiler can now optionally collect tasks from the source code. Occurrences of
+a given task tag are looked for inside any type of comments, and reported as custom task markers
+(<code>"org.eclipse.jdt.core.task"</code>).
+ <ul>
+ <li> New problem ID got created: <code>org.eclipse.jdt.core.compiler.IProblem#Task</code>. Note that
+ clients of <code>IProblemRequestor</code> will get detected tasks as warnings with this new ID, they
+ can be filtered out if needed.
+ </li>
+ <li> JavaCore option added for specifying the task tag values (default is <code>""</code> meaning no
+ task is detected).
+<pre>
+* COMPILER / Define the Automatic Task Tags
+*    When the tag is non empty, the compiler will issue a task marker whenever it encounters
+*    one of the corresponding tag inside any comment in Java source code.
+*    Generated task messages will include the tag, and range until the next line separator or comment ending, and will be trimmed.
+*     - option id:			"org.eclipse.jdt.core.taskTags"
+*     - possible values:	{ "&lt;tag&gt;[,&lt;tag&gt;]*" } where &lt;tag&gt; is a String without any wild-card 
+*     - default:			""
+</pre>	 
+ </li>
+ </ul>
+</li>
+<li> Creating a working copy on a non-existing ICompilationUnit is now allowed. 
+       Such a working copy will have its contents initialized to an empty string.
+       Commiting this working copy creates the underlying compilation unit.
+</li>
+</ul> 
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23257">23257</a>
+IInitializer::getNameRange returns incorrect result
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23318">23318</a>  
+Resolution of Circular Dep. preference/error message filtering  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23113">23113</a>
+Request to enrich messages provided by AST with errors defined in IProblem
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22154">22154</a>
+Proposed method for org.eclipse.jdt.core.dom.ITypeBinding
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23181">23181</a>
+IScanner returns incorrect whitespaces
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23259">23259</a>
+AST: SwitchCase wrong length
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23117">23117</a>
+DOM: no error message for method with wrong return type
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20215">20215</a>
+Batch compiler ignores the CLASSPATH env variable
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23054">23054</a>
+DOM - TypeDeclaration.getJavadoc() can find incorrect javadoc
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22054">22054</a>
+Can't extract local variable from super send [refactoring]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22161">22161</a>
+AST: Innerclass name: Positions wrong
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22526">22526</a>
+Warning given when implementing deprecated methods
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23050">23050</a>
+DOM - IVariableBinding.getModifiers() doesn't give final modifier for local variables
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22939">22939</a>
+ast: incorrect range for a name in brackets
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22458">22458</a>  
+Refactoring a package does not move the package's directory  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6976">6976</a>
+Auto collect tasks from code
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23052">23052</a>
+DOM - CCE calling resolveBinding on an on-demand import from a type
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22635">22635</a>
+recompile doesn't happen
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23118">23118</a>
+AST: BreakStatement &amp; ContinueStatement: wrong length
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23048">23048</a>
+DOM - lazy initialization of empty loop bodies causes binding resolution to fail
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22203">22203</a>
+More dependencies increase GUI waiting time [build path]
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11529">11529</a>
+ast: missing (?) binding on simpleName in VariableDeclaration 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8921">8921</a>  
+DCR - Need a way to create a working copy ignoring existing files  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22673">22673</a>  
+VerifyError in char cast of static final char referenced through instance
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23075">23075</a>  
+Wrong compiling of inner classes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23077">23077</a>  
+search: does not find type references in some imports 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22942">22942</a>  
+JavaProject.exists returns true when it should not  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22517">22517</a>  
+Cannot create type X in project Test if d:\test\X.java exists  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18684">18684</a>  
+Organize Imports doesn't work on external Jars  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22946">22946</a>  
+search: NPE  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22637">22637</a>  
+AST: Typos in Javadoc Assignment.Operator
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17210">17210</a>  
+No match found when query contains '?'  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21420">21420</a>  
+Changing .classpath doesn't update JDT  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21485">21485</a>  
+NPE when doing a reference search to a package  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22428">22428</a>
+Compiler 1.4 - should report visibility issue for shadowed protected method
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22418">22418</a>
+Should not complain about package for empty units
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22102">22102</a>  
+Not all implementors found for IPartListener  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20631">20631</a>  
+Declaration of local binary type not found  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20435">20435</a>  
+NPE when searching java method  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22334">22334</a>
+Compiler generates corrupt classes
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22361">22361</a>
+Error in javadoc for JavaCore.getResolvedClasspathEntry
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21749">21749</a>
+Exported libraries and source folders
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22830">22830</a>
+Subtle visibility problem: class declaration resolved improperly
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23264">23264</a>
+ast: incorrect node hierarchy
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23116">23116</a>
+DCR: ModifierNode
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23055">23055</a>
+DOM - SuperMethodInvocation.resolveTypeBinding() returns null 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21843">21843</a>  
+Qualifier in "Type Hierarchy" View  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21158">21158</a>  
+Deadlock on startup  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22883">22883</a>  
+IJavaProject::find(String) returns null for non-primary top-level types  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22123">22123</a>  
+Inability to put a classpath var pointing to a dir inside the project which is one dir up from output dir  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12496">12496</a>  
+Creating a type hierarchy should not populate java model cache  
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22453">22453</a>
+Compiler Problem
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22149">22149</a>
+jdk compiles but eclipse does not
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.0 Build - 1st August 2002
+<br>Project org.eclipse.jdt.core v_270
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul> 
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22093">22093</a>
+VerifyError due to duplicate access method
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21916">21916</a>
+VariableDeclarationExpression
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21911">21911</a>
+NPE in the compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7517">7517</a>
+No control of formatting fo do {} while blocks
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22078">22078</a>
+Incorrect error message
+
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 30th July 2002
+<br>Project org.eclipse.jdt.core v_269
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Add a new API getRawTokenSource() on org.eclipse.jdt.core.compiler.IScanner. It should be used if the user doesn't
+want the Unicode characters to be processed, otherwise use getCurrentTokenSource().</li>
+</ul> 
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21912">21912</a>
+Compiler probleme: continue statement with label identifier
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21358">21358</a>
+DOM/AST: setLeadingComment and setJavadocComment doesn't support Unicode
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21828">21828</a>
+Possible problem in DoStatement#accept0(...)
+  
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3458">3458</a>
+Resource folders containing source (1G4CKG9)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21627">21627</a>
+Compiled class error on iSeries
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21723">21723</a>
+Getting java.lang.OutOfMemoryError
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16176">16176</a>
+References to private fields could be optimized
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21109">21109</a>
+Have option for compiler warning on use of static field/method through reference
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3357">3357</a>
+DCR - Add compiler option (1GJJQAD)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21879">21879</a>
+Search could be optimized based on visibility
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21868">21868</a>
+No return statement for code with infinite loop
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20820">20820</a>
+Squiggly line is at a bad place for missing return statement
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.0 Build - 23rd July 2002
+<br>Project org.eclipse.jdt.core v_268
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Added optional compiler problem for signalling non-static invocations of static field/methods
+(see <code>JavaCore.COMPILER_PB_STATIC_ACCESS_RECEIVER()</code>)
+</li>
+<li>Compilation problem descriptions are now shortened (qualified type arguments
+are dequalified in the problem message, problem arguments are left fully qualified).
+</li>
+</ul> 
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20402">20402</a>
+Error Description too long, should not list full class name
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21778">21778</a>
+ClassFileReader fails on Gnome Twain class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21787">21787</a>
+Provide compiler warning of using static method via non-static style.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21768">21768</a>
+ast: incorrect length of SimpleName in MethodDeclaration
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21757">21757</a>
+ast: incorrect range for Name in TypeDeclaration
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21754">21754</a>
+typo in IType::getSuperInterfaceNames javadoc
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21672">21672</a>
+Wrong location for the last 'return' bytecode command
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 22nd July 2002
+<br>Project org.eclipse.jdt.core v_267
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul> 
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21606">21606</a>
+ImageBuilder deletes &amp; adds rather than overwriting
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21282">21282</a>
+IType.getFullyQualifiedName() problems
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21182">21182</a>
+unimplemented method error after implementing in super
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21682">21682</a>
+marking a method deprecated doesn't eleminate deprecated warning
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21556">21556</a>
+"Missing code implementation in the compiler"
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.0 Build - 15th July 2002
+<br>Project org.eclipse.jdt.core v_266
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul> 
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580">21580</a>
+VerifyError in 1.4 compliant mode
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21557">21557</a>
+VM bug prevents valid Java code to be executed on VM &lt; 1.3.1
+
+<h3>Problem Reports Closed</h3>
+
+<p><hr><h1>
+Eclipse Platform Build Notes&nbsp;<br>
+Java development tools core</h1>
+Eclipse SDK 2.1 Build - 12th July 2002
+<br>Project org.eclipse.jdt.core v_265
+<h2>
+What's new in this drop</h2>
+<ul>
+<li>Changed ASCII/binary property for entire project.</li>
+</ul> 
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21230">21230</a>
+Rebuilding project fails with ContextStackOverflow (CompilationResult.quickPrioritize)
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21203">21203</a>
+Compile time NullPointerException in catch blocks
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21447">21447</a>
+Wrong method invoked at runtime
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21482">21482</a>
+Error in generated byte code
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21480">21480</a>
+Bytecode disassembler doesn't handle #invokespecial correctly
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20725">20725</a>
+JavaBuilder.toString can throw NPE
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20865">20865</a>
+nullPointerException being thrown by Class Type.resolveBinding()
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21116">21116</a>  
+Can't compile because eclipse says that the method is not visible
+
+<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21049">21049</a>  
+Save (Build / Compile?) performance
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20961">20961</a>  
+Can't get complete classpath for project.
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21428">21428</a>  
+DOM/AST: AST class unnecessarily plug-in dependent?
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20059">20059</a>  
+project.isOnClassPath(project) result random  
+
+<p><hr>
+For earlier build notes, also see <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.jdt.core/notes/R20_buildnotes_jdt-core.html">build notes up to Release 2.0</a>.
+
+<br>&nbsp;
+</body>
+</html>
