<!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="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Eclipse Project Release Notes 2.1.3</title>
</head>

<body>

<h1>Eclipse Project Release Notes</h1>
<p>Release 2.1.3<br>
 March 10, 2004</p>
<p align="left"><strong>This software is OSI Certified Open Source Software.<br>
OSI Certified is a certification mark of the Open Source Initiative.&nbsp;</strong></p>
<blockquote>
  <p align="left"><a href="#TargetOperatingEnvironments">1. Target Operating
  Environments</a><br>
  <a href="#Compatibility">2. Compatibility with Previous Releases</a><br>
  <a href="#KnownIssues">3. Known Issues</a><br>
  <a href="#RunningEclipse">4. Running Eclipse</a><br>
  <a href="#Upgrading">5. Upgrading a Workspace from a Previous Release</a><br>
  <a href="#Interoperability">6. Interoperability with Previous Releases</a><br>
  <a href="#DefectsFixed">7. Defects Fixed in Maintenance Releases</a><br>
  </p>
</blockquote>
<h2>1. <a name="TargetOperatingEnvironments"></a>Target Operating Environments</h2>
<p>Most of the Eclipse SDK is &quot;pure&quot; Java code and has no direct
dependence on the underlying operating system. The chief dependence is therefore
on the Java 2 Platform itself. Like the 2.0 release, the 2.1 release of the
Eclipse Project is written and compiled against version 1.3 of the Java 2
Platform APIs, and targeted to run on either version 1.3 or 1.4 of the Java 2
Runtime Environment, Standard Edition.</p>
<p>Eclipse SDK 2.1 has been tested and validated on the following Java 2
Platform implementations:</p>
<table width="91%" border="1">
  <tbody>
    <tr>
      <td width="21%"><b>Operating system</b></td>
      <td width="18%"><b>Processor architecture</b></td>
      <td width="73%"><b>Java 2 Platforms</b></td>
    </tr>
    <tr>
      <td width="21%" rowspan="4">Microsoft<br>
        Windows</td>
      <td width="18%" rowspan="4">Intel x86</td>
      <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1_06 for
        Microsoft Windows</td>
    </tr>
    <tr>
      <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4.1_01 for
        Microsoft Windows</td>
    </tr>
    <tr>
      <td width="73%">IBM Developer Kit for Windows, Java 2 Technology Edition,
        version 1.3.1 SR-2</td>
    </tr>
    <tr>
      <td width="73%">IBM 32-bit SDK for Windows, Java 2 Technology Edition,
        version 1.4.0</td>
    </tr>
    <tr>
      <td width="21%" rowspan="3">Linux</td>
      <td width="18%" rowspan="3">Intel x86</td>
      <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1_06 for
        Linux x86</td>
    </tr>
    <tr>
      <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4.1_01 for
        Linux x86</td>
    </tr>
    <tr>
      <td width="73%">IBM Developer Kit for Linux, Java 2 Technology Edition,
        version 1.3.1 SR-2</td>
    </tr>
    <tr>
      <td width="21%" rowspan="2">Sun Solaris</td>
      <td width="18%" rowspan="2">SPARC</td>
      <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1_06 for
        Solaris SPARC</td>
    </tr>
    <tr>
      <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4.1_01 for
        Solaris SPARC</td>
    </tr>
    <tr>
      <td width="21%">HP HP-UX</td>
      <td width="18%">hp9000 PA-RISC</td>
      <td width="73%"><span class="header">HP-UX SDK for the Java 2 platform,
        version 1.3.1 for hp9000 PA-RISC</span></td>
    </tr>
    <tr>
      <td width="21%">IBM AIX</td>
      <td width="18%">PowerPC</td>
      <td width="73%">IBM Developer Kit for AIX, Java 2 Technology Edition,
        version 1.3.1</td>
    </tr>
    <tr>
      <td width="21%" rowspan="2">Apple Mac OS</td>
      <td width="18%" rowspan="2">PowerPC</td>
      <td width="73%">Java 2 Platform, Standard Edition, version 1.3.1 for Mac
        OS X</td>
    </tr>
    <tr>
      <td width="73%">Java 2 Platform, Standard Edition, version 1.4.1 for Mac
        OS X</td>
    </tr>
    <tr>
      <td width="21%"><span class="title">QNX Neutrino RTOS</span></td>
      <td width="18%">Intel x86</td>
      <td width="73%">IBM J9 VM for QNX, version 2.0</td>
    </tr>
  </tbody>
</table>
<p><span class="header">The following table describes the combinations of
operating system and Java 2 Platform used when testing the Eclipse SDK
configurations. The status column indicates the level of testing:
&quot;Primary&quot; means a full tested configuration; &quot;</span>Secondary&quot;
means a configuration which is only lightly tested; &quot;Untested&quot; means a
configuration that has received no testing, but which should work. Note that the
Mac OS X configuration is considered early access for the 2.1 release; it has
been tested, but is not product quality in this release.</p>
<table width="91%" border="1" height="415">
  <tbody>
    <tr>
      <td width="11%" height="32"><b>Window system</b></td>
      <td width="28%" height="32"><b>Java 2 Platform<br>
        (see above table)</b></td>
      <td width="42%" height="32"><b>Operating Environment</b></td>
      <td width="19%" height="32"><b>Testing Status</b></td>
    </tr>
    <tr>
      <td width="11%" rowspan="5" height="104">Win32</td>
      <td width="28%" rowspan="5" height="104">Windows on Intel x86</td>
      <td width="42%" height="16">Windows XP</td>
      <td width="19%" height="16">Primary</td>
    </tr>
    <tr>
      <td width="42%" height="16">Windows 2000</td>
      <td width="19%" height="16">Primary</td>
    </tr>
    <tr>
      <td width="42%" height="16">Windows ME</td>
      <td width="19%" height="16">Secondary</td>
    </tr>
    <tr>
      <td width="42%" height="16">Windows 98SE</td>
      <td width="19%" height="16">Secondary</td>
    </tr>
    <tr>
      <td width="42%" height="16">Windows NT</td>
      <td width="19%" height="16">Secondary</td>
    </tr>
    <tr>
      <td width="11%" rowspan="6" height="152">Motif</td>
      <td width="28%" rowspan="3" height="86">&nbsp;
        <p>Linux on Intel x86</p>
        <p>&nbsp;</p>
      </td>
      <td width="42%" height="25">RedHat Linux 8.0 x86</td>
      <td width="19%" height="25">Primary</td>
    </tr>
    <tr>
      <td width="42%" height="25">SuSE Linux 8.1 x86</td>
      <td width="19%" height="25">Primary</td>
    </tr>
    <tr>
      <td width="42%" height="24">Other Linux; kernel version 2.4.7, and XFree86
        version 4.1.0</td>
      <td width="19%" height="24">Untested</td>
    </tr>
    <tr>
      <td width="28%" height="16">Solaris on SPARC&nbsp;</td>
      <td width="42%" height="16">Sun Solaris 8 SPARC</td>
      <td width="19%" height="16">Primary</td>
    </tr>
    <tr>
      <td width="28%" height="16">HP-UX on hp9000 PA-RISC</td>
      <td width="42%" height="16">HP-UX 11i hp9000</td>
      <td width="19%" height="16">Primary</td>
    </tr>
    <tr>
      <td width="28%" height="16">AIX on PowerPC</td>
      <td width="42%" height="16">IBM AIX 5.1 on PowerPC</td>
      <td width="19%" height="16">Primary</td>
    </tr>
    <tr>
      <td width="11%" rowspan="4" height="81">GTK</td>
      <td width="28%" rowspan="4" height="81">Linux on Intel x86</td>
    </tr>
    <tr>
      <td height="15">RedHat Linux 8.0 x86 (GTK 2.2 required for DBCS)</td>
      <td height="15">Primary</td>
    </tr>
    <tr>
      <td width="42%" height="16">SuSE Linux 8.1 x86 (Latin-1 only)</td>
      <td width="19%" height="16">Primary</td>
    </tr>
    <tr>
      <td width="42%" height="16">Other Linux; GTK 2.0.6 (GTK 2.2 required for
        DBCS)</td>
      <td width="19%" height="16">Untested</td>
    </tr>
    <tr>
      <td width="11%" height="16">Carbon</td>
      <td width="28%" height="16">Mac OS X on PowerPC</td>
      <td width="42%" height="16">Mac OS X 10.2</td>
      <td width="19%" height="16"><i>Early access</i></td>
    </tr>
    <tr>
      <td width="11%" height="16">Photon</td>
      <td width="28%" height="16">IBM J9 VM for QNX</td>
      <td width="42%" height="16">QNX Neutrino RTOS 6.2.1&nbsp;</td>
      <td width="19%" height="16">Primary</td>
    </tr>
  </tbody>
</table>
<h4>Internationalization</h4>
<p>The Eclipse Platform is designed as the basis for internationalized products.
The user interface elements provided by the Eclipse SDK components, including
dialogs and error messages, are externalized. The English strings are provided
as the default resource bundles.</p>
<p>Latin-1 locales are supported by the Eclipse SDK on all of the above
operating environments; DBCS locales are supported by the Eclipse SDK on the
Windows, GTK, and Motif window systems; BIDI locales are supported by the
Eclipse SDK only on Windows operating environments.
<p>The Eclipse SDK supports GB 18030, the new Chinese code page standard, on
Windows 2000 and XP, and Linux. Note, however, that GB 18030 also requires
locale and character encoding support from the Java 2 Runtime Environment; this
support is standard in version 1.4, and also available in some 1.3 JREs.
<p>German and Japanese locales have been tested.
<h4>BIDI support</h4>
<p>The Eclipse SDK is a development environment targeted at technical
professionals - not an end user application. However, the Eclipse SDK tools will
permit technical professionals who are working in English to build Hebrew/Arabic
end user Java programs which are themselves not based on the Eclipse SDK. The
BIDI support in the Eclipse SDK allows a Java programmer to work with BIDI
strings, code comments, etc. but the Eclipse SDK itself is not designed to be
localized for BIDI locales and its widget orientation cannot be changed.</p>
<p><i>IMPORTANT: The above BIDI support is available only for Windows operating
environments.</i></p>
<h2>2. <a name="Compatibility"></a> Compatibility with Previous Releases</h2>
<h3>Compatibility of Release 2.1 with 2.0</h3>
Eclipse SDK 2.1 is intended to be upwards compatible with Eclipse SDK 2.0. We
have made exceptions only in areas where slavishly maintaining compatibility
would not be in the best interests of Eclipse or its clients. The exceptions are
noted in the next section.
<p><b>API Contract Compatibility:</b> Eclipse SDK 2.1 is upwards
contract-compatible with Eclipse SDK 2.0 except as noted in the next section.
This means that programs in full compliance with contracts specified in Eclipse
SDK 2.0 APIs is automatically in full compliance with Eclipse SDK 2.1 APIs. (API
is construed broadly to include such things as plug-in extension points.)
Downward contract compatibility is not supported. There is no guarantee that
compliance with Eclipse SDK 2.1 APIs ensures compliance with Eclipse SDK 2.0
APIs. Refer to <i><a href="http://eclipse.org/eclipse/development/java-api-evolution.html">Evolving
Java-based APIs</a></i> for a discussion of the kinds of API changes that
maintain contract compatibility.</p>
<p><b>Binary (plug-in) Compatibility:</b> Eclipse SDK 2.1 is upwards
binary-compatible with Eclipse SDK 2.0 except as noted in the next section. This
means that plug-ins built for Eclipse SDK 2.0 will continue to work correctly in
Eclipse SDK 2.1 without change. Downward plug-in compatibility is not supported.
Plug-ins for Eclipse SDK 2.1 are unlikely to be usable in Eclipse SDK 2.0.
Plug-ins with hard-coded references in their plug-in manifest file to 2.0
versions of prerequisite Eclipse Project plug-ins will work in 2.1 provided the
version match rule is &quot;greaterOrEqual&quot; or &quot;compatible&quot; (the
default); references using &quot;perfect&quot; or &quot;equivalent&quot; match
rules will be broken. Refer to <i><a href="http://eclipse.org/eclipse/development/java-api-evolution.html">Evolving
Java-based APIs</a></i> for a discussion of the kinds of API changes that
maintain binary compatibility.
<p><b>Source Compatibility:</b> Eclipse SDK 2.1 is upwards source-compatible
with Eclipse SDK 2.0 except as noted in the next section. This means that source
files written to use Eclipse SDK 2.0 APIs can be successfully compiled and run
against Eclipse SDK 2.1 APIs. Since source incompatibilities are easy to deal
with, maintaining source compatibility is considered much less important than
maintaining contract and binary compatibility. Downward source compatibility is
not supported. If source files use new Eclipse SDK APIs, they will not be usable
with an earlier version of Eclipse SDK.
<p><b>Workspace Compatibility:</b> Eclipse SDK 2.1 is upwards
workspace-compatible with Eclipse SDK 2.0 except as noted in the next section.
This means that workspaces and projects created with Eclipse SDK 2.0 can be
successfully opened by Eclipse SDK 2.1 and upgraded to a 2.1 workspace.&nbsp;
This includes both hidden metadata, which is localized to a particular
workspace, as well as metadata files found within a workspace project (e.g., the
.project file), which may propagate between workspaces via file copying or team
repositories. Individual plug-ins developed for Eclipse SDK 2.1 should provide
similar upwards compatibility for their hidden and visible workspace metadata
created by earlier versions; 2.1 plug-in developers are responsible for ensuring
that their plug-ins recognize both 2.1 and 2.0 metadata and process it
appropriately. User interface session state may be discarded when a workspace is
upgraded. Downward workspace compatibility is not supported. A workspace created
(or opened) by Eclipse SDK 2.1 will be unusable with an earlier version of
Eclipse SDK. Visible metadata files created (or overwritten) by Eclipse SDK 2.1
will generally be unusable with earlier versions of Eclipse SDK.&nbsp;
<p><b>Non-compliant usage of API's</b>: All non-API methods and classes, and
certainly everything in a package with &quot;internal&quot; in its name, are
considered implementation details which may vary between operating environment
and are subject to change without notice. Client plug-ins that directly depend
on anything other than what is specified in the Eclipse SDK API are inherently
unsupportable and receive no guarantees about compatibility within a single
release much less with earlier releases. Refer to <i><a href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html">How
to Use the Eclipse API</a></i> for information about how to write compliant
plug-ins.</p>
<h3>2.1 Incompatibilities between release 2.1 and 2.0</h3>
<p>Eclipse 2.1 breaks compatibility with Eclipse 2.0 in the following areas.</p>
<p>Note: Bug numbers refer to the Eclipse project bug database at <a href="http://dev.eclipse.org/bugs/">http://dev.eclipse.org/bugs/</a></p>
<h3>Platform - Core</h3>
<h4>Linked resources</h4>
<p>Eclipse 2.1 allows a project in the workspace to bring together contents from
several different directories on disk using what are termed linked folders and
files. The presence of linked resources changes a fundamental assumption true
for earlier versions of Eclipse, namely, that all of a project's files are
located under the project's root directory in the local file system.
Furthermore, the target of a linked resource is allowed to overlap that of
another linked resource, or overlap the root directory of any project. This new
potential for overlap means that several distinct files in the workspace might
map to the same file in the local file system. In 2.0, there was no way for
overlap to happen (project root directories are not allowed to overlap).</p>
<p>These changes have several ramifications at the API:</p>
<ul>
  <li><code>IResource.getLocation</code> can return <code>null</code> in more
    cases than before.</li>
  <li><code>IWorkspaceRoot.getContainerForLocation</code> and <code>getFileForLocation</code>
    are no longer sufficient to map from file system path to workspace path in
    the presence of linked resources, as these calls do not account for linked
    files or files under linked folders. Two new methods were added to handle
    the possibility of overlap: <code>IWorkspaceRoot.findContainersForLocation</code>
    and <code>findFilesForLocation</code>.</li>
</ul>
<p>Since linked resources and their children appear in the workspace as normal
files and folders, client code that works exclusively with the workspace
resource tree is not affected. The clients most likely to be impacted are ones
that assume that all of a project's files are located together in the local file
system under the project's root directory. For example, an export utility that
works directly on the local file system might miss some of a project's files if
it only looks within the project's root directory.</p>
<p>This change was made to give certain kinds of users greater flexibility in
laying out their projects on disk. The behavior of existing plug-ins is
unchanged from 2.0 for projects that do not use linked resources. Depending on
the assumptions made, existing plug-ins might misbehave or fail for projects
containing linked resources. A plug-in can prohibit linked resources for a
project via a project nature (<code>IProjectNatureDescriptor.isLinkingAllowed()</code>),
but this should only be done where there is a good reason to deny the user this
additional flexibility in laying out a project. Users can disable linked
resources via the <b>Workbench &gt; Linked Resources</b> preference page. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6664">6664</a>)</p>
<h4>Project build order</h4>
<p>The default order in which projects get built was changed in Eclipse 2.1 to
improve the handling of mutually-dependent projects. The old method <code>IWorkspace.computePrerequisiteOrder</code>
was deprecated and replaced by <code>IWorkspace.computeProjectOrder</code>.
Since there are few potential clients of either method beyond the Eclipse
Platform itself, it's unlikely that clients will be affected. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10262">10262</a>,
<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=25952">25952</a>)</p>
<h3>Platform - UI</h3>
<h4>Restructuring of UI plug-ins</h4>
<p>In Eclipse 2.1, the API and code for the <code>org.eclipse.ui</code> plug-in
was partitioned and parceled out to several new plug-ins (<code>org.eclipse.jface</code>,
<code>org.eclipse.text</code>, and <code>org.eclipse.ui.workbench</code>, etc.).
Although this looks on the surface to be a breaking change, it is not. These new
plug-ins are internal and should not be referenced explicitly. As they always
have, plug-ins requiring the Eclipse Platform UI (API found in the <code>org.eclipse.swt.*</code>,
<code>org.eclipse.jface.*</code>, and <code>org.eclipse.ui.*</code> packages)
should continue to state a dependency on the <code>org.eclipse.ui</code>
plug-in.</p>
<h3>Platform - Help</h3>
<h4>Pluggable app server</h4>
<p>Eclipse 2.0 provided interim support for pluggable app servers via an
undocumented <code>org.eclipse.help.app-server</code> extension point, with
interim APIs in the <code>org.eclipse.help</code> package. For 2.1, this support
has been made internal, along with the former interim API classes. Because this
support was marked as interim for 2.0, this is not considered a breaking API
change. Nevertheless, existing clients using the interim support will be broken.
Even though the mechanism is not officially supported, clients that are adamant
about plugging in a different app server can do so (with all the usual risks of
depending on unsupported Eclipse internals).</p>
<h4>Pluggable web browser</h4>
<p>Eclipse 2.0 provided interim support for pluggable web browsers via the <code>org.eclipse.help.ui.browser</code>
extension point, with API in the <code>org.eclipse.help.ui.browser</code>
package. For 2.1, this support appears in finished form in different location:
the <code>org.eclipse.help.browser</code> extension point, with API in the <code>org.eclipse.help.browser</code>
package. Because this support was marked as interim for 2.0, this is not
considered a breaking API change. Nevertheless, existing clients using the
interim support will need to update the extension point and package names.</p>
<h3>Platform - Team</h3>
<b>
<p>Validate edit/save</p>
</b>
<p>There are some new restrictions that repository providers should be aware of
when implementing <code>validateSave/Edit</code>. The first is that the hook can
be invoked from a non-UI thread. The provider should use <code>Display.syncExec()</code>
if they are affecting any UI components. Also, the hook should not display a
progress monitor because there is a good possibility that there already is one
open for the operation being performed; opening another will cause deadlock.
(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=33471">33471</a>)</p>
<b>
<p>Linked resources</p>
</b>
<p>The new support for linked folders and files added in Eclipse 2.1 impacts
repository providers because it changes some of the rules about relationships
between files in the workspace and their corresponding locations in the local
file system. All existing repository providers should be updated to handle
linked resources, as described in the 2.1 Team API. If a project is shared via
an older 2.0 repository provider, the user will be prohibited from creating
linked resources in that project. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=26469">26469</a>)</p>
<h3>Platform - SWT</h3>
<h4>Character field in key event</h4>
<p>The specification of the <code>Event.character</code> field now makes it
clear that the character reflects the outcome after any modifier keys are taken
into account (for example, CTRL+A is reduced to the ASCII equivalent character
with integer value 1). Since the treatment of modifier keys was completely
unspecified before, this change affects clients that make assumptions about how
modifiers are handled. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=33592">33592</a>)</p>
<h4>New key modifier: command</h4>
<p>In order to properly support the Mac for Eclipse 2.1, a new <code>SWT.COMMAND
</code>key modifier constant was added to represent the Apple command key. On
the Mac, the command key plays the same role as the control key plays elsewhere,
whereas the control key is used mainly as an additional mouse click modifier.
Clients that merely want to check for the appropriate primary modifier for the
OS should instead use the new bit mask <code>SWT.MOD1</code> in favor of either <code>SWT.CONTROL</code>
or <code>SWT.COMMAND</code>. The advent of the Mac port of Eclipse affects
existing clients that explicitly check for the <code>SWT.CONTROL</code>
modifier. In most cases, they should instead check for <code>SWT.MOD1</code> so
that they work appropriately on both Macs and non-Macs. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24393">24393</a>)</p>
<h4>OLE variant type exceptions</h4>
<p>An <code>SWTError</code> exception is now thrown when a Java type is
requested from an empty variant type (<code>VT_EMPTY</code>). Since existing
clients should already be handling <code>SWTError</code> exceptions as per the
spec for <code>Variant.getInt()</code>, etc., this change should not affect
existing clients. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24402">24402</a>)</p>
<h4>Multiple drag and drop adapters</h4>
<p>An <code>SWTError</code> exception is now thrown if you create a second <code>DragSource</code>
(or <code>DropTarget</code>) for a widget. Across various window systems, the
results of creating multiple drag source or drop target objects were at best
indeterminate. The exception makes it clear that this is not supported. Since
existing clients should already be handling <code>SWTError</code> exceptions as
per the spec for the <code>DragSource</code> and <code>DropTarget</code>
constructors, this change should not impact existing clients. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35214">35214</a>)</p>
<h3>Platform - Install/Update</h3>
<p>None.</p>
<h3>Platform - Ant</h3>
<p>None.</p>
<h3>Platform - Debug</h3>
<p>None.</p>
<h3>Platform - Search</h3>
<h4>Inexact matching</h4>
<p>There is a new preference setting that controls whether the search engine
should report inexact matches. The user can set this via the <b>Workbench &gt;
Search </b>preference page. The new API method <code>SearchUI.arePotentialMatchesIgnored</code>
should be used to query the preference setting. Existing clients that contribute
a particular search engine (or search page) should consider whether the notion
of an inexact match is meaningful in their particular context, and honor this
preference if it is. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20663">20663</a>)</p>
<h3>Platform - Text</h3>
<h4>File encoding preserved</h4>
<p><code>FileDocumentProvider</code> now saves a file in the encoding it has
been read rather than in the workbench's default encoding.</p>
<h4>Key binding scopes</h4>
<p>Clients should be aware of key binding scopes, which were introduced in 2.1. <code>TextEditor</code>
sets &quot;org.eclipse.ui.textEditorScope&quot; as its key binding scope.
Subclasses inherit this setting if they do not override &quot;initializeKeybindingScopes&quot;.
<code>AbstractTextEditor</code> does not set any key binding scopes; it leaves
this to its subclasses.</p>
<h4>Action definition ids are mandatory</h4>
<p>All actions registered with an instance of <code>AbstractTextEditor</code>
should have an action definition id. Otherwise they will not be accessible via
accelerators.</p>
<h4>Deprecated API</h4>
<p>The following class, methods, and constants have been deprecated. The Javadoc
indicates what should be used instead.</p>
<ul>
  <li>Package <code>org.eclipse.ui.texteditor</code>
    <ul>
      <li>Field <code>AbstractTextEditor.PREFERENCE_FONT</code></li>
    </ul>
  </li>
  <li>Package <code>org.eclipse.jface.text.source</code>
    <ul>
      <li>Constructor <code>AnnotationBarHoverManager(ISourceViewer,
        IVerticalRuler, IAnnotationHover, IInformationControlCreator)</code></li>
    </ul>
  </li>
  <li>Package <code>org.eclipse.jface.text.rules</code>
    <ul>
      <li>Constructor <code>DefaultDamagerRepairer(ITokenScanner, TextAttribute)</code></li>
    </ul>
  </li>
  <li>Package <code>org.eclipse.jface.text.information</code>
    <ul>
      <li>Method <code>IInformationProvider.getInformation(ITextViewer, IRegion)</code></li>
    </ul>
  </li>
  <li>Package <code>org.eclipse.ui.texteditor</code>
    <ul>
      <li>Constructor <code>IncrementalFindAction(ResourceBundle, String,
        IWorkbenchWindow, <b>boolean</b>)</code></li>
      <li>Constructor <code>MarkerRulerAction(ResourceBundle, String,
        IVerticalRuler, ITextEditor, String, <b>boolean</b>)</code></li>
      <li>Method <code>MarkerRulerAction.getVerticalRuler()</code></li>
      <li>Constructor <code>SelectMarkerRulerAction(ResourceBundle, String,
        IVerticalRuler, ITextEditor)</code></li>
    </ul>
  </li>
</ul>
<h3>Platform - Compare</h3>
<p>None.</p>
<h3>JDT - Core</h3>
<h4>Multiple output folders</h4>
<p>In Eclipse 2.0, all generated class files (and copied resource files) for a
Java project get written to the project's single output folder. As of 2.1, the
generated class files (and copied resource files) can be partitioned across
several output folders, with each source build path entry specifying which
output folder its generated files get written to. This change was made to give
certain kinds of users greater flexibility in laying out their Java projects on
disk. Clients used to be able to assume that a Java project's output files were
in the project's output folder (<code>IProject.getOutputLocation()</code>); now
they need to take into account the possibility of other output locations (<code>IClasspathEntry.getOutputLocation()!=null</code>).
Existing code appears to work fine until the user exercises the additional
flexibility. This change is most likely to affect client code that deploys code
directly from the project's output folder (e.g., creates a JAR; launches a Java
VM with the output folder on the runtime class path). (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24123">24123</a>)</p>
<h4>Source folder exclusion patterns</h4>
<p>In Eclipse 2.0, all Java source files under a source folder on a project's
build class path were compiled and included in the Java model. The notion of
exclusion patterns were added in 2.1 to give certain kinds of users greater
flexibility in laying out their Java projects on disk&nbsp; Exclusion patterns
associated with a source entry on the build class path (<code>IClasspathEntry.getExclusionPatterns()</code>)
cause matching files or subdirectories to be ignored for the purposes of
compilation and inclusion in the Java model. Most existing clients traverse the
Java model and will continue to work fine. However, clients that directly
traverse the corresponding source folder in the local file system need to take
into account the possibility that some of the files found there may have been
excluded with this new mechanism. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22039">22039</a>)</p>
<h4>Code formatter positions</h4>
<p>The specification for <code>ICodeFormatter.format</code> was changed to
specify that the positions array passed in must be in non-decreasing order. The
implementation had always been making this assumption, and there would have been
serious performance consequences to specify the method as working with unordered
positions. Existing clients are unlikely to be affected. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=30417">30417</a>)</p>
<h4>Leading comments on AST Statement nodes</h4>
<p><code>Statement.getLeadingComment</code> and <code>setLeadingComment</code>
have been deprecated because they were not a particularly good way to deal with
the general issue of comments and significant whitespace. Since the
implementations of <code>AST.parseCompilationUnit</code> never set the leading
comment for any AST nodes they create, the change is moot for most clients. (bug
<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29176">29176</a>)</p>
<h4>Empty array passed to Java model operation</h4>
<p>In Eclipse 2.0, certain Java model API operations (<code>IJavaModel.delete</code>,
<code>copy</code>, <code>move</code>, and <code>rename</code>) threw an <code>ArrayIndexOutOfBoundsException</code>
if passed an empty array. The behavior in this case was completely unspecified.
For 2.1, the specification and implementation of these operations have been
changed to throw <code>JavaModelException</code> in such cases. Clients need to
be aware that the empty array case does indeed trigger an exception. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32219">32219</a>)</p>
<h4>Non-Java projects included in Java model&nbsp;</h4>
<p>In Eclipse 2.0, non-Java projects and closed projects were excluded from the
Java model. In 2.1, non-Java projects and closed projects are available from the
Java model via <code>IJavaModel.getNonJavaResources</code>. Their inclusion in
the Java model means that they appear in Java model deltas, under <code>IJavaElementDelta.getResourceDeltas</code>.
This change may affect clients that listen for Java element deltas (via <code>JavaCore.addElementChangedListener</code>)
if they make overly strong assumptions about triggering conditions and contents.
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29274">29274</a>)</p>
<h4>Java element changed events for full working copy lifecycle</h4>
<p>In Eclipse 2.0, Java element changed events were reported for changes to
shared working copies, but not when they were created or destroyed. In 2.1, Java
element changed events are uniformly issued for the full lifecycle of working
copies and apply equally to non-shared as well as shared working copies. This
change may affect clients that listen for Java element deltas (via <code>JavaCore.addElementChangedListener</code>)
if they make overly strong assumptions about triggering conditions and contents.
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32981">32981</a>)</p>
<h4>IJavaProject.isOnClasspath</h4>
<p>For Eclipse 2.1, the API predicate <code>IJavaProject.isOnClasspath</code>
(both forms) was changed to do the more standard thing of returning false rather
than throwing <code>JavaModelException</code> in some cases. While this change
is within the original spirit of the original API&nbsp; contract, it breaks
source compatibility because <code>JavaModelException</code> is a checked
exception; code that invokes this method and catches <code>JavaModelException</code>
may need to be rewritten. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=33754">33754</a>)</p>
<h3>JDT - UI</h3>
<p>None.</p>
<h3>PDE</h3>
<p>None.</p>
<h2>3. <a name="KnownIssues"></a> Known Issues</h2>
<blockquote>
  <p><a href="#I-Platform">3.1 Platform</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Core">3.1.1 Core</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Ant">3.1.2 Ant</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Help">3.1.3 Help</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-UI">3.1.4 UI</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Text">3.1.5 Text</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-SWT">3.1.6 SWT</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Team-CVS">3.1.7 Team</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Install-Update">3.1.8
  Install/Update</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Debug">3.1.9 Debug</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Compare">3.1.10 Compare</a><br>
  <a href="#I-JDT">3.2 Java Development Tools (JDT)</a><br>
  <a href="#I-PDE">3.3 Plug-in Development Environment (PDE)</a><br>
  <a href="#I-Other">3.4 Other</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Other-FTP-and-WebDAV">3.4.1 FTP and
  WebDAV support</a></p>
</blockquote>
<p>Note: Bug numbers refer to the Eclipse project bug database at <a href="http://dev.eclipse.org/bugs/">http://dev.eclipse.org/bugs/</a></p>
<h3>3.1 <a name="I-Platform">Platform</a></h3>
<h4>Missing translations for certain OS dialogs (Linux GTK only)</h4>
<p>OS dialogs for selecting files or folders are only partially translated on
GTK 2.0.6 or GTK 2.2. These dialogs and the untranslated messages come from GTK,
not from Eclipse. This is a known bug in GTK. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38248">38248</a>)</p>
<h4>DBCS support on Linux GTK (Linux GTK only)</h4>
<p>The versions of GTK included with RedHat Linux 8.0 and SuSE Linux 8.1 that we
tested support Latin-1 locales but not DBCS. The DBCS support in GTK 2.2 should
be sufficient, and in principle Eclipse should work on any recent Linux with GTK
2.2. We have verified that Eclipse DBCS support works with RedHat Linux 8.0 and
GTK 2.2. However, we were unable to get Eclipse working with SuSE Linux 8.1 and
and GTK 2.2, so this remains an open issue.</p>
<h4>Using different versions of GTK (Linux GTK only)</h4>
<p>Users who download and compile new versions of GTK, for example to gain DBCS
support in GTK 2.2.0 on RedHat 8.0, will need to ensure that the correct GTK
libraries are listed in the <tt>LD_LIBRARY_PATH</tt> environment variable. By
default, the compiled GTK libraries are put in <tt>/user/local/lib/</tt>, so the
following would need to be executed prior to launching Eclipse (Note: this must
be done for every new terminal session):</p>
<blockquote>
  <p><code>export LD_LIBRARY_PATH=/usr/local/lib/</code></p>
</blockquote>
<h4>Problems in Korean translation on GTK 2.2.0 (Linux GTK only)</h4>
<p>Users who download and compile new versions of GTK, for example to gain DBCS
support in GTK 2.2.0 on RedHat 8.0, will encounter the following problems using
the Korean translation. Some of the text font may get clipped at the top, or
windows may resize out of the viewable area. To circumvent this problem, we
recommend setting a high screen resolution, for example 1280x1024, and setting
the Dialog Font and Banner Font to a gothic font. The latter can be done in the <b>Workbench
&gt; Fonts</b> preference page. In addition, in the Properties view, the
expand/collapse control (&quot;+&quot;/&quot;-&quot;) has no effect. The
workaround is to use the arrow keys instead: Left Arrow to collapse, Right Arrow
to expand. (bugs <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38604">38604</a>
and <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38598">38598</a>).</p>
<h4>Eclipse process does not exit (HP-UX only)</h4>
<p>On HP-UX, the HP JVM process that runs the Eclipse Workbench does not
terminate upon closing the workbench. The remedy is to always pass the <code>-XdoCloseWithReadPending</code>
to the VM via the Eclipse launcher command line; that is, launch Eclipse with
the command line:</p>
<blockquote>
  <p><code>eclipse -vmargs -XdoCloseWithReadPending</code></p>
</blockquote>
<p>(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18321">18321</a>)</p>
<h3>3.1.1 <a name="I-Platform-Core">Platform - Core</a></h3>
<h4>Declaring package name prefixes improves plug-in class loading speed</h4>
<p>A significant (10-15%) speed increase in the time to load a plug-in's classes
can be obtained simply by declaring the package name prefixes found in that
plug-in's runtime library JARs. This is done in the new Package Prefixes section
of the Runtime page in the PDE plug-in manifest editor. (Further information <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-core-home/docs/package-prefixes/prefixes.html">here</a>.)</p>
<h4><b>Invalid characters in install directory prevents Eclipse from starting</b></h4>
<p>Eclipse will fail to launch if installed in a directory whose path contains
certain invalid characters, including :%#&lt;&gt;&quot;!. The workaround is to
install Eclipse in a directory whose path does not contain invalid characters.
(bugs <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3109">3109</a> and <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17281">17281</a>)</p>
<h4><b>Problems with classloaders in created threads</b></h4>
<p>There is a known issue with trying to load classes from a newly-created
thread using a class loader different from the plug-in class loader. The result
will be a <code>ClassNotFoundException</code>. As a workaround, do the
following:</p>
<ol>
  <li>Create a thread in which to run your code.</li>
  <li>Send yourThread.setContextClassLoader(yourClassLoader); // you can find
    your classloader by grabbing a class it loaded (YourPluginClass.class.getClassLoader())</li>
  <li>Run your code in the newly created thread.</li>
</ol>
<p>If you set the context class loader for the current thread, you are competing
with other users of the thread (all of Eclipse), so the results will be
unpredictable. However, there should be no problem in practice provided you
reset the context class loader back to its original value when your use in the
current thread is&nbsp;complete. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8907">8907</a>)</p>
<h4>Deadlock creating executable extension in Plugin.startup</h4>
<p>If <code>Plugin.startup</code> code is too complex and performs tasks such as
creating an executable extension, a deadlock situation can be created. Only
simple bookkeeping tasks should be performed in <code>Plugin.startup</code>
code. (bugs <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=12827">12827</a>,
<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5875">5875</a>, <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16141">16141</a>)</p>
<h3>3.1.2 <a name="I-Platform-Ant">Platform - Ant</a></h3>
<h4>Xerces JARs no longer required on runtime Ant classpath</h4>
<p>Explicitly adding the Xerces JARs to the runtime Ant classpath is no longer
required and can cause problems. The Xerces classes are loaded from the <code>org.apache.xerces</code>
plug-in provided with Eclipse. For most Ant distributions, the Xerces JARs
cannot even be in the same physical location as the <code>ant.jar</code> and <code>optional.jar</code>.
This results from the Ant JARs containing manifest files which contain classpath
entries pointing to the Xerces JARs. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33664">33664</a>,
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33117">33117</a>, <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34151">34151</a>)</p>
<h4>Custom Ant tasks and Ant types must be separate from plug-in library JARs</h4>
<p>Including the class files for custom Ant tasks or Ant types in the regular
code JAR for your plug-in causes problems. These class files must be provided in
a separate JAR that is contributed to the <code>org.eclipse.ant.core.antTasks</code>
or <code>antTypes</code> extension point (and not declared as a library in the
plug-in's manifest). This ensures that the Ant tasks and types are loaded by the
special Ant class loader and not by a plug-in classloader. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34466">34466</a>).</p>
<h4>Concurrent Ant builds not supported</h4>
<p>Eclipse runs Ant in the same JVM as the rest of Eclipse. Several aspects of
Ant and its use of global Java resources (such as System.out and System.err),
make it unsafe to run more than one Ant build concurrently. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24129">24129</a>).</p>
<h4>Running certain Ant tasks cause memory leakage</h4>
<p>Certain Ant tasks are known to leak memory. Please see the bug report for
details, patches, and possible workarounds. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24448">24448</a>)</p>
<h4>Tasks that require input lock up workspace</h4>
<p>As with using Ant from the command line, prompts for input from the console
is not handled. This is not the same as making use of the &lt;input&gt; task,
which works correctly within Eclipse. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21748">21748</a>)</p>
<h4>Ant Editor code completion based on Ant 1.5</h4>
<p>Code completion provided by the Ant editor does not respect the
user-specified version of <code>org.eclipse.ant.core</code> plug-in or ANT_HOME.
Code completion proposals are always based on Ant 1.5. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30886">30886</a>).</p>
<h3>3.1.3 <a name="I-Platform-Help">Platform - Help</a></h3>
<h4>Help documents not displayed in a browser or very slow document loading
(Windows only)</h4>
If your LAN settings are not properly configured for local host access, your
Help browser might open to a blank page or display an HTTP error instead of a
help page, or you may experience long delays when loading help documents. Your
system administrator can configure your LAN settings so that help documents can
be accessed from the local help server.
<blockquote>
  <ol>
    <li>In the Control Panel, open <b>Internet Options</b>, select the <b>Connections</b>
      tab and choose <b>LAN Settings</b>.</li>
    <li>If your host was configured to use DHCP for IP assignment, make sure
      that the &quot;Automatically detect settings&quot; check box is cleared.</li>
    <li>If you use a proxy server, ensure that the &quot;Bypass proxy server for
      local addresses&quot; is selected.</li>
    <li>In &quot;Advanced&quot; settings for proxies, add
      &quot;127.0.0.1;localhost&quot; to the &quot;Exceptions&quot; if these
      addresses are not listed.</li>
    <li>If you are using an automatic configuration script for proxy settings,
      and are not sure that the script is correct, clear the &quot;Use automatic
      configuration script&quot; check box.</li>
  </ol>
</blockquote>
<p>If the above steps do not fix your problem, try changing the port and host
properties on the <b>Help &gt; Help Server</b> preference page. In general,
setting <code>host</code> to <code>localhost</code> or <code>127.0.0.1</code>
should work. Also, especially when running a firewall, you may want to specify
port 80 or some other firewall-friendly value. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7036">7036</a>,
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9418">9418</a>, <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11394">11394</a>)</p>
<h4>Working disconnected from the network (Windows only)</h4>
If you are experiencing problems when not connected to the network, you must
install the loopback adapter from the Windows installation CD. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=831">831</a>)
<h4>Using Internet Explorer in offline mode (Windows only)</h4>
If you have been using Internet Explorer in Offline mode, when you access the
help system you will get a message indicating that the web page you requested is
not available offline or a blank page will display. Click <b>Connect</b> or
deselect &quot;Work Offline&quot; in the Internet Explorer &quot;File&quot; menu
to return the system behavior to normal.
<h4>Help topics not highlighted in High Contrast mode (Windows only)</h4>
<p>Windows High Contrast settings are not consistently picked up by Internet
Explorer when they are set from the Accessibility Options utility as opposed to
when they are set using the predefined schemes. On Windows XP, it is recommended
to set High Contrast as follows: Right click the desktop, chose properties,
select Windows Classic style from the Windows and buttons drop down on the
Appearance tab, and choose your scheme (for example High Contrast Black) from
Color Scheme drop down. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28609">28609</a>)</p>
<h3>3.1.4 <a name="I-Platform-UI">Platform - UI</a></h3>
<h4>Minimum display resolution</h4>
<p>A number of dialogs in Eclipse, such as the Preferences dialog, require a
minimum display resolution of at least 1024 x 768.</p>
<h4>Manual refresh required when files modified outside Eclipse</h4>
<p>When files within a project are added or removed outside of Eclipse, or when
an external editor is used to modify a file within a project, a manual refresh
must be done in order for the changes to show up in the Workbench. To do this,
select the project in the Navigator view and choose <b>Refresh</b> from the
pop-up menu. This refreshes only the selected project. Alternatively, activate
the Navigator view and press F5, which refreshes all projects.</p>
<h4>Default text file encoding may be detected incorrectly (Windows XP/2000
only)</h4>
<p>The &quot;Text file encoding&quot; value displayed in the Preferences dialog
under &quot;Editors&quot; may be wrong on platforms running Windows XP (or 2000)
when the user locale and system locale differ.&nbsp;</p>
<p>Example of the manifestation of the bug: A Japanese user using Japanese
Windows 2000 works in New York, United States. The user has selected English
(United States) as the user locale. The &quot;Text file encoding&quot; value
displayed by Eclipse is incorrect: &quot;Cp1252&quot; (English). It should
display the system locale &quot;MS932&quot; (Japanese).</p>
<p>Workaround: The user can modify the user locale so that user locale and
system locale are identical. In the example above, this means the user should
set Japanese as the user locale. Then restart Eclipse. The &quot;Text file
encoding&quot; value will then be correct: &quot;MS932&quot; (Japanese).</p>
<p>For Windows XP:</p>
<ul>
  <li>To check the system locale: Open the Control Panel. Go to Regional and
    Language Options. Switch to the Advanced tab. The system locale is specified
    in &quot;Language for non-Unicode programs&quot;.</li>
  <li>To change the user locale: Open the Control Panel. Go to Regional and
    Language Options. The user locale can be modified by changing the language
    in &quot;Standards and formats&quot;.</li>
</ul>
<p>For Windows 2000:</p>
<ul>
  <li>To check the system locale: Open the Control Panel. Go to Regional
    Options. Look up the items in the General tab, inside the &quot;Language
    settings for the system&quot; group. The system locale is the item marked as
    (Default).</li>
  <li>To change the user locale: Open the Control Panel. Go to Regional Options.
    The user locale can be modified by changing the location in &quot;Settings
    for the current user&quot;.</li>
</ul>
<p>(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20641">20641</a>)</p>
<h4>KDE takes Ctrl+Fn keys</h4>
<p>When using the KDE desktop on Linux systems, the Ctrl+Fn key sequences are
used for switching between virtual desktops. This means that Eclipse commands
bound to these key sequences do not get activated, including Ctrl+F1 (Help),
Ctrl+F4 (File &gt; Close) and Ctrl+F6 (Next Editor).</p>
<p>These keys can be reassigned in KDE using the Control Center. Choose Look
&amp; Feel &gt; Shortcuts &gt; Shortcut Sequences &gt; Shortcut Sequences &gt;
System &gt; Desktop Switching, and set all items to None or to a different key
sequence such as Ctrl+Alt+Fn. The other alternative is to assign different key
sequences in Eclipse using the <b>Workbench &gt; Keys</b> preference page. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=26361">26361</a>)</p>
<h4>JAWS screen reader does not read Eclipse dialog boxes properly</h4>
<p>There is a known problem with the JAWS screen reader (up to version 4.5)
whereby its &quot;Read Box in Tab Order&quot; command (Ins+B) does not read all
controls in Eclipse dialogs. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18518">18518</a>)</p>
<h4>Dirty state not tracked properly for OLE documents (Windows only)</h4>
<p>The dirty state for an OLE document is not updated properly. This causes
Eclipse to prompt to save the contents of the editor when the document is
closed, even if the contents have already been saved. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=2564">2564</a>)</p>
<h4>OLE document crashes can cause Eclipse to also crash (Windows only)</h4>
<p>If an OLE document crashes, Eclipse can crash, or the workbench menus can
become inconsistent.</p>
<h3>3.1.5 <a name="I-Platform-Text">Platform - Text</a></h3>
<h4>Overwrite mode cannot be disabled for AbstractTextEditor and subclasses</h4>
<p>When removing the key binding for the &quot;Toggle Overwrite Mode&quot;
command on the <b>Workbench &gt; Keys</b> preference page, the mode is still
toggled when pressing the &quot;Insert&quot; key. The mode indication in the
editor's status line is then out of sync with the actual mode. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35248">35248</a>)</p>
<h3>3.1.6 <a name="I-Platform-SWT">Platform - SWT</a></h3>
<h4>Printing and drag and drop not available on Mac (Mac OS X Carbon only)</h4>
<p>The Mac OS X Carbon implementation of SWT does not yet support printing or
drag and drop. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33637">33637</a>,
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30104">30104</a>)</p>
<h4>Unable to drag data between applications in simplified Chinese locale (Motif
only)</h4>
<p>When configured for the simplified Chinese locale, it is not possible to drag
data between applications running on the Motif window system. This is a known
limitation of the Open Motif library. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29777">29777</a>)</p>
<h4>Hang opening font or color dialogs (Mac OS X Carbon only)</h4>
<p>When running with J2SE 1.4.1 for Mac OS X, opening a font or color dialog can
hang Eclipse. This is a bug in Apple's J2SE 1.4.1 involving Cocoa-based dialogs.
Note that J2SE 1.3.1 for Mac OS X does not have this problem. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=30021">30021</a>)</p>
<h4>Crash when attempting to launch file browser (AIX Motif only)</h4>
<p>There is a known AIX graphics bug affecting certain levels of AIX releases.
Ensure that the AIX install includes the necessary service updates as described
in the &quot;Install notes/requirements for Eclipse on AIX&quot; attachment to
the Eclipse bug report. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34524">34524</a>)</p>
<h4>Available colors on 8-bit Linux (Linux only)</h4>
<p>Typically, in Gnome Linux installs running with 8-bit visuals (i.e. 256 color
mode), before the Eclipse application is started there are no free colors. This
may mean that Eclipse is unable to allocate the default widget background color,
causing it to display a white background. The functionality, however, is
otherwise unaffected.</p>
<h4>List and ComboBox on Windows NT (Windows NT only)</h4>
<p>On Windows NT only, you should avoid creating items in a <code>List</code> or
<code>ComboBox</code> with strings longer than 1000 characters. Doing so may
result in a General Protection Fault. This has been fixed in more recent
versions of Windows.</p>
<h4>Excessive CPU consumption&nbsp; (Linux GTK only)</h4>
<p>When using Linux GTK 2.2.1, there are some scenarios where the CPU usage goes
to 100% for no good reason. When this occurs, resizing or closing the dialog
seems to return the CPU usage to normal. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35443">35443</a>)</p>
<h4>IME-related crash (Linux Motif only)</h4>
<p>When using Linux Motif and GB18030 IME &quot;chinput&quot;, Eclipse can crash
if the IME client window is left open when the parent window is disposed. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32045">32045</a>)</p>
<h4>Problems with Japanese IME (Linux Motif only)</h4>
<p>On Linux Motif, the Japanese IME Wnn7 Personal is not working properly with
Eclipse: the pre-edit text does not appear in the text widget, making it
unusable. The IME that we tested - Kinput2 on the client + Canna on the server
side (default IME in RedHat 8.0) - works fine. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31754">31754</a>)</p>
<h4>BiDi and DBCS support (Windows only)</h4>
<p>On Windows XP and Windows 2000, if StyledText determines that it is running
on a BiDi platform, characters from DBCS languages (e.g., Japanese) and complex
script languages (e.g., Thai) will not render properly. A platform is considered
BiDi if a BiDi language is installed and if a BiDi input locale is installed
(e.g., a Hebrew keyboard layout is specified). (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25691">25691</a>)</p>
<h4>Cursor constructor arguments</h4>
<p>In the constructor <code>Cursor(Device device, ImageData source, ImageData
mask, int hotspotX, int hotspotY)</code>, when both a source and mask argument
are specified (that is, the mask is not null), the meaning of the two arguments
is reversed. That is, the &quot;mask&quot; argument should be the source image
and the &quot;source&quot; argument should be the mask image. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=4809">4809</a>)</p>
<h4>Using IBM J9 VM (Photon and AIX)</h4>
<p>On QNX Photon and IBM AIX, the SWT library will not be found when running
with an IBM J9 1.5 VM. This is a bug in the IBM J9 class library in version 1.5.
You can workaround this problem by adding the SWT library directory to your
LD_LIBRARY_PATH environment variable.</p>
<h4>Missing permissions for SWT native libraries in workspace (HP-UX only)</h4>
<p>When retrieving the SWT Motif fragment into an Eclipse workspace, the
permissions of the native libraries are reset. This creates a problem on HP-UX
because shared libraries need to have execute permission. Attempting to
self-host with this fragment throws an UnsatisfiedLinkError...Permission Denied
error. You must manually change the permissions to make these libraries
accessible (assume the workspace is at <code>/workspace</code>):</p>
<blockquote>
  <blockquote>
    <p><code>cd /workspace/org.eclipse.swt.motif/os/hpux/PA_RISC<br>
    chmod 555 *.sl</code></p>
  </blockquote>
</blockquote>
<p>(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20305">20305</a>
describes a related problem)</p>
<h4>JAWS requires MSAA for List Views to read checkboxes in Tables (Windows
only)</h4>
<p>In order for JAWS to detect the checkbox information in Tables, MSAA support
for List Views must be activated as follows:</p>
<blockquote>
  <ol>
    <li>Open Eclipse and hit INSERT + F2.</li>
    <li>In the Run JAWS Manager dialog select Configuration Manager.</li>
    <li>In the Jaws Configuration Manager that opens up, select Set Options and
      then select Advanced Options.</li>
    <li>Check &quot;Rely on MSAA for List views&quot;.</li>
    <li>Hit the OK button.</li>
    <li>Choose <b>File &gt; Save</b> from the menu bar.</li>
  </ol>
</blockquote>
<h3>3.1.7 <a name="I-Platform-Team-CVS">Platform - Team - CVS</a></h3>
<p>The following are known problems with the CVS repository provider only, and
do not apply to other repository providers. Additional information on how to use
CVS from Eclipse can be found in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-vcm-home/docs/online/cvs_features2.0/cvs-faq.html">Eclipse
CVS FAQ</a>.</p>
<h4>CVS server compatibility</h4>
<p>The CVS plug-in parses messages returned from the CVS server. If the format
of these messages is not as expected, some of the plug-in's functionality may be
missing. The CVS plug-in is compatible with all stable 1.11.X builds of the CVS server, and should be compatible with future
releases in that stream unless text message formats change. The plug-in is not compatible with
1.12.X builds. Basic functionality, such as Commit and Update, will work, but there
are known problems with more advanced commands such as Synchronizing and
Browsing the repository. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49056">49056</a>)</p>
<h4>Cached authorization information lost when workspace is upgraded</h4>
<p>The Platform's internal authorization database file format has changed for
2.1. Because of this, authorization information cached with a workspace created
with an earlier version of Eclipse will be unusable, and the user will need to
reauthenticate. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32899">32899</a>)</p>
<h4>&quot;extssh&quot; is not a supported command line method</h4>
<p>Since the &quot;extssh&quot; connection method is not a supported command
line method, you cannot use the command line tool when a project uses this
method. Instead, use the Eclipse supported &quot;ext&quot; method and set the
appropriate environment variables so that the command line tool will work. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7943">7943</a>)</p>
<h4>Connection cannot be found after initially missing</h4>
<p>If a connection initially fails due to a network problem, the connection may
continue to fail even when the network problem is fixed. In order to establish
the connection you must exit and restart Eclipse. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9295">9295</a>)</p>
<h4>CVS meta-folders appear in some cases</h4>
<p>There are some cases where CVS folders are not hidden from the UI as the user
would expect. For instance, CVS folders will appear if a user imports a CVS
project into Eclipse before the CVS plug-in is loaded. To avoid this, open the
CVS Repositories view (thus loading the CVS plug-in) before importing CVS
projects into Eclipse. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21128">21128</a>)</p>
<h4>&quot;Received broken pipe signal&quot; error from server</h4>
<p>Eclipse sometimes performs multiple commands within a single connection to
the server. This may cause problems with CVS servers that are running server
scripts in response to certain commands. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23575">23575</a>
and <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23581">23581</a>)</p>
<h4>&quot;Terminated with fatal signal 10&quot; error from server</h4>
<p>There is a bug in the CVS server related to some compression levels. If you
get this error, changing the compression level on the CVS preference page may
help. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15724">15724</a>)</p>
<h4>&quot;Unknown response&quot; error using ext connection method</h4>
<p>There are a few situations that can result in an &quot;Unknown response&quot;
error messages when using the ext connection method. One situation involves
using an external communications client (e.g. rsh or ssh) that adds CRs to the
communications channel (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21180">21180</a>).
Another involves Eclipse not properly reading the stderr output of the external
communications tool (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11633">11633</a>).</p>
<h4>No way to update folder excluding subfolders</h4>
<p>There is currently no way in Eclipse to run a non-recursive update on a
folder (i.e., there is nothing equivalent to the cvs -l option). (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33210">33210</a>).</p>
<h3>3.1.8 <a name="I-Platform-Install-Update">Platform - Install/Update</a></h3>
<h4>Update manager claims that a cycle has been detected in a multiple path case</h4>
<p>When a feature includes other features, it is an error to have multiple paths
from the parent to any of its children (there must be exactly one path from the
root to any of the included features). Update manager reports the error but is
not capable of differentiating cycles (when a child includes a parent) and
multiple paths. Consequently, it will claim that there is a cycle in both cases.
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26808">26808</a>)</p>
<h4>Bundled e-fixes that patch the same feature can clash</h4>
<p>When patches (e-fixes) are created by bundling (including) several patches,
care must be taken that they do not carry different versions of the same
feature. If they do, both features may end up disabled. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31407">31407</a>)</p>
<h4>Update manager does not support https protocol</h4>
<p>Update manager currently cannot open connections to the remote update sites
if the provided URL has <b>https </b>protocol. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31979">31979</a>)</p>
<h4>Internal Error in Update Manager while installing/updating when features
include the same plug-in</h4>
<p>If two or more features in the feature tree formed by inclusion have the same
plug-in entry, install or update will fail. This happens because update manager
attempts to install the same plug-in more than once and fails to rename files
since they already exist. To work around this problem, ensure that no two
features in the single feature hierarchy (starting from the root feature)
reference the same plug-in (have a plug-in entry with the same id and version).
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33937">33937</a>)</p>
<h4>Non-responsive sites may use all free threads</h4>
<p>Prior to Eclipse 2.1, if the connection to an update site did not respond
(the site did not exist or was down), the workbench became non-responsive until
the connection request timed out. In 2.1, connections are made by a separate
thread so that the UI stays responsive. Typically, unresponsive connections
eventually time out and these threads terminate. In rare cases, servers accept
the connection but never send a response, thereby keeping the connection thread
live indefinitely. Update manager limits the number of active connection threads
and will refuse to create more once the limit is reached. To work around the
problem, exit and restart Eclipse. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18598">18598</a>,
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19775">19775</a>)</p>
<h4>URL validity checking on input</h4>
<p>URL syntax is currently not completely checked on input. Ensure that the
entered URL uses forward&nbsp; slash ('/') separators and does not contain
invalid characters. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19685">19685</a>,
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20247">20247</a>)
<h4>Running &quot;headless&quot; applications that do not handle restart</h4>
<p>When install changes are detected, the changes are automatically processed
and the workbench restarts. The executable launcher supplied with the
application correctly handles the restart. However, if you have applications
that directly call the platform (eg. by calling the BootLoader APIs) and do not
handle restart, the startup reconciliation processing can be suppressed by
specifying <tt>-noupdate</tt> command line option. In this case, the application
will start with the set of features and plug-ins that were processed and
configured on the previous start. If prior configuration cannot be found, the
application will start with the full set of plug-ins found in the installation
location.
<h4>Link file entry with trailing blanks is invalid</h4>
<p>If a link file used to connect product extensions with products contains an
entry with trailing blank characters, it will be considered invalid. The
workaround is to ensure that the entry ends with an end-of-line character (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22993">22993</a>).
<h4>Enabling two versions of the same feature</h4>
<p>Care should be taken when enabling and disabling multiple versions of the
same feature. If they include other features and the inclusion is set with a
match attribute that is not &quot;perfect&quot;, disabling old feature version
may have a consequence of disabling new children. To avoid this situation,
disable the new version first, then enable the old one; i.e., never have two
versions of the same feature simultaneously enabled (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25236">25236</a>).</p>
<h4>Upgrading very old workspaces</h4>
<p>If you upgrade to 2.1 from a pre-2.0 workspace that existed prior to the
introduction of features, the next time you add a feature you will be prompted
on startup with a dialog asking which features to install. If you de-select all
features and click OK, then all features are disabled. This prevents you from
ever using that workspace again (since the Eclipse Platform feature is
disabled). The solution is to delete the <code>.config</code> subdirectory in
the workspace's metadata area and then restart Eclipse. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35703">35703</a>)</p>
<h3>3.1.9 <a name="I-Platform-Debug">Platform - Debug</a></h3>
<p>None. (Known problems with the Java debugger appear below in the <a href="#I-JDT">JDT</a>
section.)</p>
<h3>3.1.10 <a name="I-Platform-Compare">Platform - Compare</a></h3>
<p>None.</p>
<h3>3.2 <a name="I-JDT">Java Development Tools (JDT)</a></h3>
<h4>Running Java programs with non-Latin-1 characters in package or class names</h4>
You get a <code>java.lang.NoClassDefFoundError</code> when running Java programs
with non-Latin characters in the package or class names. The workaround is to
package the class files as a JAR file and run the program out of the JAR and not
from the file system directly. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=4181">4181</a>)
<h4>Cannot run or debug class in a project with GB18030 characters in project
name</h4>
<p>Most class libraries do not properly support the creation of a system process
(via <code>java.lang.Runtime.exec(...)</code>) when the specified command line
contains GB18030 characters. This limitation means the debugger cannot launch
applications when the command line it generates contains GB18030 characters.
(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32206">32206</a>)</p>
<h4>Unable to debug stack overflows</h4>
<p>If a debug session suspends on a <code>java.lang.StackOverflowError</code>
exception (due to an exception breakpoint), the debugger may not be able to
retrieve any debug information from the target JVM. As well, the debugger may
not be able to reliably interact with the target JVM past this point. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19217">19217</a>)</p>
<h4>Evaluation limitation</h4>
<p>The debugger uses threads in the target JVM to perform evaluations (both
explicit evaluations that the user requests, and implicit evaluations such as <code>toString()</code>
invocations in the <b>Variables</b> view). The Java Debug Interface (JDI)
requires that the thread in which an evaluation is performed be suspended by a
user event (that is, a breakpoint or step request). Evaluations cannot be
performed on threads suspended by the suspend action. As well, when a breakpoint
is configured to suspend the JVM rather than just the individual thread, the
threads which did not encounter the breakpoint are not in a valid state to
perform an evaluation. When an evaluation is attempted in a thread that is not
in a valid state to perform an evaluation, an error message will appear to the
effect of &quot;Thread must be suspended by step or breakpoint to perform method
invocation&quot;. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=34440">34440</a>)</p>
<h4>Breakpoints outside of the build class path</h4>
<p>Breakpoints can only be created on Java elements that are contained on the
build class path of a project. The Java debugger automatically deletes
breakpoints if their associated Java element is removed from the build path of a
project. However, if the Java debug plug-in is not loaded when a build path is
changed, such breakpoints will remain in the workspace, and can cause errors
when the user attempts to go to the file associated with the breakpoint, from
the Breakpoints view. (bug 34845)</p>
<h4>Missing debug attributes</h4>
The debugger requires that class files be compiled with debug attributes if it
is to be able to display line numbers and local variables. Quite often, class
libraries (for example, &quot;<code>rt.jar</code>&quot;) are compiled without
complete debug attributes, and thus local variables and method arguments for
those classes are not visible in the debugger.
<h4>Setting breakpoints</h4>
In general the debugger will not allow you to place breakpoints on lines of code
that are not executable (comments, blank lines, etc.). However, there are some
cases where the debugger will allow breakpoints on lines of code that are not
executable. For example, the debugger will allow a breakpoint to be placed on a
variable declaration that does not contain an initializer (&quot;int x;&quot;).
Note that enabled breakpoints which are successfully installed on an executable
line in a running (debuggable) VM are displayed with a checkmark. Breakpoints
that are displayed without a checkmark are not installed in a running (debuggable)
VM. (bugs <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8473">8473</a>, <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=12696">12696</a>)
<h4>Using Hot Code Replace</h4>
Hot code replace is supported on JDK 1.4.x VMs, and IBM J9 VMs. Hot code replace
is limited to changes which do not effect the shape of a class. That is, changes
within existing methods are supported, but the addition or removal of members is
not supported.
<p>Note that hot code replace and stepping on JDK 1.4.0 VMs was unreliable. The
underlying VM problems were fixed in JDK 1.4.1.</p>
<h4>Scrapbook</h4>
Setting a breakpoint inside a scrapbook page is not supported.
<p>When a snippet is run in the scrapbook which directly or indirectly calls <code>System.exit(int)</code>,
the evaluation cannot be completed, and will result in a stack trace for a <code>com.sun.jdi.VMDisconnectedException</code>
being displayed in the scrapbook editor.
<p>Terminating a scrapbook page while it is performing an evaluation results in
a <code>com.sun.jdi.VMDisconnectedException</code> being displayed in the
scrapbook editor.
<h4>Debugging over slow connections</h4>
A global Java debug preference specifies the debugger timeout, which is the
maximum amount of time the debugger waits for a response from the target VM
after making a request of that VM. Slow connections may require that this value
be increased. The timeout value can be edited from the <b>Java &gt; Debug </b>preference
page. Changing the timeout value only effects subsequently launched VM, not VMs
that are already running.
<h4>Updating of inspected values</h4>
When inspecting the result of an evaluated expression in the debugger, it is
important to note that the result displayed is the result of that expression at
the time it was evaluated. For example, when inspecting a simple integer counter
(primitive data type), the value displayed in the Expressions view is the value
when the expression was evaluated. As the counter is changed in the running
program, the inspected result will not change (since the view is not displaying
the value bound to a variable - it is displaying the value of an expression, and
the value of a primitive data type cannot change). However, if an expression
results in an object, fields of that object will be updated in the inspector as
they change in the running program (since the value bound to fields in an object
can change).
<h4>Stepping over native methods that perform I/O</h4>
When the debugger steps over native methods that perform I/O to <code>System.out</code>
or <code>System.err</code>, the output may not appear immediately unless the
native performs a flush on the output buffer.
<h4>VM and process termination running on IBM 1.3 JVM on Linux (Linux only)</h4>
Terminating a launch, debug target, or system process associated with a debug
target running on the IBM 1.3 JVM on the Linux platform does not work when the
associated debug target has a suspended thread. To remove such debug targets
from the debug UI, select <b>Terminate and Remove</b> from the debug view's
pop-up menu (or use the shortcut &quot;delete&quot; key). Associated system
processes in the OS may not be properly cleaned up. If a debug target has no
suspended threads, termination works properly. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=1631">1631</a>)
<h4>Searching for constant field references</h4>
Search does not find references to constant fields inside binaries because the
Java Language Specification mandates that constant field values be inlined in
the class file's bytecodes, leaving no trace of a field reference.&nbsp;(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12044">12044</a>)
<h4>Quick fix and imports from default packages</h4>
<p>Quick fix does not handle imports from default packages. Note that importing
from a default package is no longer supported in JDK 1.4 (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19487">19487</a>)</p>
<h4>Javadoc hover in the Java editor</h4>
<p>The Javadoc hover help shown when hovering over identifiers in the Java
editor does not handle links inside of Javadoc comments properly. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20644">20644</a>)</p>
<h4>Cut, copy, paste not working for linked resources in views showing Java
elements</h4>
<p>The cut, copy, and paste actions do not work for linked files and folders
appearing in views that show Java elements, including the Package Explorer. The
workaround is to use these actions from the Navigator view instead. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34568">34568</a>)</p>
<h4>Java working sets not working correctly for elements from JRE system library
container</h4>
<p>Appling a working set consisting entirely of elements from the JRE System
library container as a filter to the packages view might result in an empty
Package Explorer. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35395">35395</a>)</p>
<h4>Cannot generate Javadoc for packages with GB18030 characters in the name</h4>
<p>Most class libraries do not properly support the creation of a system process
(via <code>java.lang.Runtime.exec(...)</code>) when the specified command line
contains GB18030 characters. Since Javadoc is created using the Javadoc
executable provided with the JDK, generating Javadoc fails if the package or
class name contains GB18030 characters. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32215">32215</a>)</p>
<h4>Linked editing does not work correctly in overwrite mode</h4>
<p>Linked editing is used for renaming elements within a single compilation unit
and for templates with multiple occurrences of the same template variable.
Linked editing does not work correctly in overwrite mode. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35216">35216</a>)</p>
<h4>Catch block code generation template must end with newline if last line is
line comment</h4>
<p>If the last line of the catch block code generation template is a line
comment then the line must be terminated with a newline. Otherwise the closing
curly bracket ends up on the comment line, resulting in a compilation error.
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35746">35746</a>)</p>
<h4>Problem opening class file editor</h4>
<p>If the &quot;Use classpath containers&quot; preference has been enabled on
the <b>Plug-in Development &gt; Java Build Path Control</b> preference page, you
may not be able to open a class file editor for a class file contained in a JAR
in the &quot;Required plug-in entries&quot; container. One way to work around
the problem is to expand the class file in the Packages Explorer; this displays
the class file's structure just as the editor would. If a source code zip is
available for the JAR, another option is to attach source to the JAR file.</p>
<p>To attach source to a JAR in the &quot;Required plug-in entries&quot;
container, follow these steps:</p>
<ol>
  <li>In the Package Explorer, select the project and open <b>Project &gt;
    Properties</b> from the context menu</li>
  <li>Select the <b>Java Build Path</b> page</li>
  <li>Flip to the <b>Libraries</b> page</li>
  <li>Expand the &quot;Required plug-in entries&quot; item</li>
  <li>Expand the item for the JAR</li>
  <li>Select &quot;Source Attachment&quot; and press <b>Edit</b></li>
  <li>Enter the location of the corresponding source zip</li>
  <li>OK to acknowledge</li>
</ol>
<p>(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35769">35769</a>)</p>
<h3>3.3 <a name="I-PDE">Plug-in Development Environment (PDE)</a></h3>
<h4>PDE source page colors do not take effect on Apply</h4>
<p>Changes to the colors PDE uses for source pages of its multi-page editors are
not immediately visible in opened editors after pressing the Apply button
on&nbsp; the <b>Plug-in Development &gt; Editors preference</b> page. To work
around this problem, close the editor and and reopen it. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33640">33640</a>)</p>
<h4>Icons folder not included in bin.includes of some PDE templates</h4>
<p>PDE provides a number of templates that can be used to create fully
functioning plug-in projects and/or extensions. When projects are created, the <code>build.properties</code>
file is created with the initial content, which includes the property 'bin.includes'
listing the plug-in manifest and its code JARs. However, it omits mention of
other files created by the template, such as the <code>icons/</code> folder. As
a request, these extra files do not end up in the plug-in when built using Ant
build file or exported using 'Export deployable plug-ins and fragments' wizard.
To work around this problem, add these files and directories manually in
build.properties file. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35554">35554</a>)</p>
<h4>Emacs key bindings do not work in manifest editor fields</h4>
<p>Non-default key bindings currently do not work in fields on non-source pages
of the PDE manifest editors. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19482">19482</a>)</p>
<h4>Comments in source pages of PDE XML editors</h4>
<p>PDE provides a number of multi-page editors that include a raw source page.
Editors that handle XML files (plug-in, fragment and feature manifests) will
preserve comments in most cases. However, comments will not be preserved if
added before the root XML element, or if added after the last child element
contained in the parent element. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8000">8000</a>)</p>
<h4>Plug-in import wizard does not allow plug-ins of different versions to be
imported</h4>
<p>The Eclipse platform allows two plug-ins with the same ID but different
versions to coexist if the only thing they contribute is run-time libraries.
However, PDE cannot handle these plug-ins because it creates project names using
plug-in IDs during binary project import. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18500">18500</a>)</p>
<h4>PDE nature required for plug-in manifest syntax checking</h4>
<p>PDE will only be able to provide syntax checking and error/warning markers
for plug-in manifests if the plug-in project has the PDE plug-in nature. A
plug-in project automatically gets this nature when created by a PDE wizard.
This situation can only occur if a regular Java project has been used to host a
plug-in. The problem can be fixed by converting it into a PDE project. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19248">19248</a>)</p>
<h4>PDE does not preserve original manifest file layout</h4>
<p>When non-Source page of a PDE manifest editor is used, PDE will convert
changes back into XML by regenerating the file. Although the overall content and
the comments are preserved, the actual file layout is not. This may cause
problems by showing false changes during file compare. If file layout is
important, perform all editing in the Source page. Alternatively, avoid using
Source pages altogether. Since XML files are generated in a way that respects
and preserves the relative order of major elements (extensions, extension points
etc.), changes made in a non-Source page of a PDE manifest editor do not result
in false deltas during file compare. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19251">19251</a>)</p>
<h4>Go To Line in manifest editor causes Outline view to go blank</h4>
<p>When the <b>Source &gt; Go To Line</b> command is invoked in the Source page
of a PDE manifest editor, the Outline view will become gray. Since the Source
page does not have a functional outline, there is no actual loss of function.
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19361">19361</a>)</p>
<h3><a name="I-Other">3.4 Other</a></h3>
<h3><a name="I-Other-FTP-and-WebDAV">3.4.1 FTP and WebDAV support</a></h3>
<h4>When mapped to a target, the project folder is ignored</h4>
<p>Ignoring the project folder is by design. Normally with target management you
put/get the contents of the project, not the actual project. The place you pick
in the site explorer is where the project contents will go. This allows your
local project to have a different name than the container in the WebDAV/FTP
server. If you want to map several projects to the same site location, you
create a new folder for each one. This is why &quot;New Folder&quot; is in the
mapping page. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17657">17657</a>)</p>
<h4>FTP messages cause an exception</h4>
<p>With some servers, the FTP client may receive messages that it did not
anticipate. These will cause an exception. Trying the operation again usually
works. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18108">18108</a>)</p>
<h4>FTP problems with spaces in resource names</h4>
<p>FTP does not work properly when file or folder name contains spaces. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20220">20220</a>)</p>
<h4>FTP problems retrieving remote timestamps with NT server</h4>
<p>Problems have occurred with some servers (NT server Serv-U FTP-Server v2.5k )
when trying to obtain the timestamp of a newly uploaded file. This causes a
&quot;file does not exist&quot; error. The workaround is to <b>Synchronize</b>
again and continue. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19715">19715</a>)</p>
<h2>4. <a name="RunningEclipse">Running Eclipse</a></h2>
<p>After installing the Eclipse SDK in a directory, you can start the Workbench
by running the Eclipse executable included with the release (you also need a JRE,
included with the Eclipse SDK). On Windows, the executable file is called <samp>eclipse.exe</samp>,
and is located in the <code>eclipse</code> subdirectory of the install. If
installed at <code>c:\eclipse-SDK-2.1-win32</code>, the executable is <code>c:\eclipse-SDK-2.1-win32\eclipse\eclipse.exe</code>.
<b>Note:</b> Set-up on other operating environments is analogous.</p>
<p>If you do not specify otherwise, Eclipse creates a default workspace in a
subdirectory as a sibling of the executable (that is, at, <code>c:\eclipse-SDK-2.1-win32\eclipse\workspace</code>).
This workspace directory is used as the default content area for your projects
as well as for holding any required metadata. For shared or multi-workspace
installs you must explicitly specify the location for your workspace using the
&quot;<code>-data</code>&quot; command line argument; for example,&nbsp;</p>
<blockquote>
  <p><code>eclipse -data c:\myworkspace -vm c:\jdk1.4.1_01\jre\bin\javaw</code></p>
</blockquote>
<p><i>Tip:</i> It's generally a good idea to explicitly specify which Java VM to
use when running Eclipse. This is achieved with the &quot;<code>-vm</code>&quot;
command line argument as illustrated above. If you don't use &quot;<code>-vm</code>&quot;,
Eclipse will look on the O/S path. When you install other Java-based products,
they may change your path and could result in a different Java VM being used
when you next launch Eclipse.</p>
<p>To create a Windows shortcut to an installed Eclipse and a particular
workspace (e.g., <code>c:\myworkspace</code>):</p>
<ol>
  <li>Navigate to <code>eclipse.exe</code> in Windows Explorer and use Create
    Shortcut on the content menu.
  <li>Select the shortcut and edit its Properties. In the Target: field append
    the <code>-data</code> option followed by the location of the workspace
    (e.g., <code>-data &quot;c:\myworkspace</code>&quot;).
</ol>
<p>Opening this shortcut launches Eclipse on the specified workspace. (You can
drag the shortcut to the Windows Desktop if you want to keep it in easy reach.)</p>
<h2>5. <a name="Upgrading"></a>Upgrading Workspace from a Previous Release</h2>
<p>If you are upgrading to a newer release of Eclipse from an older release,
there are simple steps to follow to migrate your workspace to the new release.
Your workspace is the directory on disk that contains all of your project files,
as well as metadata such as preferences you may have customized. The steps to
follow for upgrading depend on whether or not you used the &quot;<code>-data</code>&quot;
command line argument when starting Eclipse. The &quot;<code>-data</code>&quot;
argument is recommended because it clearly specifies the location of your
workspace. If this argument is not used, Eclipse will place the workspace in the
current working directory at the time Eclipse was launched.</p>
<p>Note that if you installed additional features and plug-ins into your older
Eclipse, you should re-install them in the new Eclipse prior to upgrading
workspaces.
<p><i>Tip:</i> It doesn't hurt to make a backup copy of your workspace before
upgrading. After you've upgraded your workspace, you won't be able to use it
again with an older version of Eclipse. If you ever want to go &quot;back in
time&quot; to an earlier release, you'll need that backup!</p>
<h3>Users who don't use &quot;-data&quot;</h3>
<p>If you weren't previously using &quot;-data&quot; to specify your workspace,
follow these steps to upgrade:
<ol>
  <li>Find the workspace directory used by your old version of Eclipse.
    Typically this is located inside the directory in which Eclipse was
    installed in a subdirectory called &quot;<code>workspace</code>&quot;. If
    you are using a shortcut or script to launch Eclipse, then it will be under
    the current working directory of that shortcut or script in a subdirectory
    called &quot;workspace&quot;. For Windows users, this is specified by the
    Start in: argument in your shortcut properties.</li>
  <li>Copy this workspace directory to a new, empty location outside of any
    Eclipse install directory.</li>
  <li>Install the new version of Eclipse in a new location, separate from any
    old version of Eclipse.</li>
  <li>Start this new version of Eclipse, using the &quot;<code>-data</code>&quot;
    command line argument to point to the workspace location.</li>
  <li>Say OK to the Different Workspace Warning dialog to allow the workspace to
    be upgraded. (Note: this dialog was added in 2.1.1.)</li>
</ol>
<h3>Users who do use &quot;-data&quot;</h3>
<p>If you were previously using the &quot;<code>-data</code>&quot; argument to
start Eclipse, your upgrade path is much easier:
<ol>
  <li>Install the new version of Eclipse in a new location, separate from any
    old versions of Eclipse.</li>
  <li>Start this new version of Eclipse, using the &quot;<code>-data</code>&quot;
    command line argument to point to your old workspace location.</li>
  <li>Say OK to the Different Workspace Warning dialog to allow the workspace to
    be upgraded. (Note: this dialog was added in 2.1.1.)</li>
</ol>
<h2>6. <a name="Interoperability">Interoperability with Previous Releases</a></h2>
<h3>6.1 Interoperability of Release 2.1 and 2.0</h3>
<h4>Sharing projects between heterogeneous Eclipse 2.0 and 2.1</h4>
<p>Special care is required when a project in a team repository is being loaded
and operated on by developers using Eclipse-based products based on different
feature or plug-in versions. The general problem is that the existence,
contents, and interpretation of metadata files in the workspaces may be specific
to a particular feature or plug-in version, and differ between versions. The
workspace compatibility guarantees only cover cases where all developers upgrade
their Eclipse workspaces in lock step. In those cases there should be no problem
with shared metadata. However, when some developers are working in Eclipse 2.1
while others are working in Eclipse 2.0, there are no such guarantees. This
section provides advice for what to do and to not do. It addresses the specific
issues with the Eclipse SDK.</p>
<p>The typical failure mode is noticed by the 2.1 user. 2.1 metadata is lost
when a 2.0 user saves changes and then commits the updated metadata files to the
repository. Here's how things typically go awry:</p>
<ul>
  <li>A user working in Eclipse 2.1 creates or modifies a project in a way that
    results in changes to a shared metadata file that rely on 2.1-specific
    information. The user then commits the updated project files, including the
    shared metadata file, to the shared repository.</li>
  <li>Another user working in Eclipse 2.0 shares this project from the same
    repository. The 2.1-specific information in the shared metadata file is not
    understood by Eclipse 2.0, and is generally discarded or ignored without
    warning. The user modifies the project in a way that results in changes to
    the shared metadata file, causing the shared metadata file to be rewritten
    without any of the 2.1-specific information. The user commits the updated
    project files, including the shared metadata file, to the shared repository.
    The user is generally unaware that shared information has just been lost as
    a result of their actions.</li>
  <li>A user working in Eclipse 2.1 picks up the changes to a project from the
    shared repository, including the updated shared metadata file. The user may
    be unaware that they have just taken a retrograde step until later when
    things start to malfunction.</li>
</ul>
<p>Here are a list of things to watch out for when the project is to be shared
between users of Eclipses 2.1 and 2.0:</p>
<ul>
  <li><b>Linked folders and files<br>
    </b>This support was added in 2.1. Information about linked resources is
    recorded in the project's <code>.project</code> file. Recommendation: do not
    use. Better still, disable linked resources via the <b>Workbench &gt; Linked
    Resources</b> preference page.</li>
  <li><b>External tool (Ant) builders</b><br>
    Information about external tool builder is recorded in the project's <code>.project</code>
    file. The format of the information changed between 2.0 and 2.1. Builders
    created or changed in 2.1 use the new format, which is not understood by a
    2.0 workspace. Builders created in 2.0 use the old format and continue to
    work in 2.1. Recommendation: Always create or edit external tools builders
    from a 2.0 workspace.</li>
  <li><b>Optional exclusion patterns on Java source entries on the build class
    path</b><br>
    This support was added in 2.1. This information is recorded in the project's
    <code>.classpath</code> file. Recommendation: do not specify exclusion
    patterns.&nbsp; Better still, disable exclusion patterns via the<b> Java
    &gt; Compiler &gt; Build Path</b>&nbsp; preference page.</li>
  <li><b>Output folders associated with Java source entries on the build class
    path</b><br>
    This support was added in 2.1. This information is recorded in the project's
    <code>.classpath</code> file. Recommendation: do not specify anything other
    than the default (project-wide) output folder.&nbsp; Better still, disable
    multiple output locations via the<b> Java &gt; Compiler &gt; Build Path</b>&nbsp;
    preference page.</li>
  <li><b>Source attachment root path associated with Java library entries on the
    build class path</b><br>
    When attaching a source ZIP to a library JAR on the Java build path, the
    source root path prefix is inferred automatically. This has changed from
    2.0, where it could be explicitly set via the UI and explicitly recorded in
    the project's <code>.classpath</code> file. Consequently, a Java project
    created in a 2.1 workspace might not find the attached source.
    Recommendation: Use 2.0 to specify the source attachment root path. There is
    additional source attachment flexibility provided in 2.1: you can provide a
    folder instead of a JAR or zip as a source attachment, and you can attach
    source to a class file folder; this functionality is not available in 2.0
    (where the 2.1 information is ignored).&nbsp; Recommendation: Use 2.0 to
    specify the source attachment.</li>
  <li><b>PDE classpath containers for dependent plug-ins</b><br>
    PDE's use of classpath containers was added in 2.1. Classpath containers are
    recorded in the project's <code>.classpath</code> file. If PDE classpath
    containers are used, then a 2.0 workspace will have unresolved classpath
    entries and therefore most Java capabilities (including compilation, search,
    run, debug) will not produce the expected results. Recommendation: Ensure
    that the setting on the <b>Plug-in Development &gt; Java Build Path Control </b>preference
    page for using classpath containers is disabled before creating any new
    plug-in (or fragment) projects.</li>
</ul>
<h4>Using Eclipse 2.1 to develop plug-ins that work in Eclipse 2.0</h4>
<p>It is also possible (and reasonable) to use Eclipse 2.1 to develop a plug-in
intended to work in Eclipse 2.0. Use the <b>Plug-in Development &gt; Target
Platform </b>preference page to locate non-workspace plug-ins in an 2.0 Eclipse
install. This ensures that the code for your plug-in is being compiled and
tested against Eclipse 2.0 APIs, extension points, and plug-ins. (The above list
of concerns do not apply since they affect the layout and interpretation of
files in the plug-in <i>project</i> but none affect the actual deployed form of
the plug-in.)</p>
<h2>7. <a name="DefectsFixed"></a>Defects Fixed in Maintenance Releases</h2>
<h3>7.1 Defects fixed in release 2.1.3 since 2.1.2</h3>
<p>Release 2.1.3 is a maintenance release to fix serious defects present in
release 2.1.0, 2.1.1, and 2.1.2. These changes only affect some plug-ins and
features. Modified plug-ins have version id &quot;2.1.3&quot;; plug-ins
unchanged since the 2.1 release still have version id &quot;2.1.0&quot;;
plug-ins unchanged since the 2.1.1 release still have version id
&quot;2.1.1&quot;, and so on. Note, however, that all features now have version
id &quot;2.1.3&quot; (even if none of their plug-ins changed).</p>
<p>Maintenance release 2.1.3 includes all fixes made in 2.1.2 and 2.1.1 (see
following sections) and contains additional fixes for the following defects:</p>
<table class="bz_buglist" cellSpacing="0" cellPadding="4" width="100%">
  <tbody>
    <tr align="left">
      <th><a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.3&amp;resolution=FIXED&amp;order=bugs.bug_id">ID</a></th>
      <th><a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.3&amp;resolution=FIXED&amp;order=bugs.short_desc,bugs.bug_id">Summary</a></th>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=14103">14103</a></td>
      <td>[Builder] Too many dependents found when incrementally re...</td>
    </tr>
    <tr class="bz_enhancement bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=22274">22274</a></td>
      <td>[DND] Navigator should not sync selection with editor on ...</td>
    </tr>
    <tr class="bz_normal bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37612">37612</a></td>
      <td>[KeyBindings] Accelerators don't work just after the page...</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37742">37742</a></td>
      <td>ACC: missing an item correspondent with ROLE_SYSTEM_OUTLI...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38643">38643</a></td>
      <td>Toolbar computeSize stop working after WM_SETFONT</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38732">38732</a></td>
      <td>organize imports does not work with assert in source code</td>
    </tr>
    <tr class="bz_critical bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39074">39074</a></td>
      <td>[CellEditors] [DBCS] canna input mode fires bogus event f...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39443">39443</a></td>
      <td>GTK Error calling TreeItem.getExpanded() on a tree item b...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39892">39892</a></td>
      <td>SWT error thrown when refreshing the properties page</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39976">39976</a></td>
      <td>NullPointerException in AbstractBuildScriptGenerator.setF...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40950">40950</a></td>
      <td>[infrastructure] NPE from indexer</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=41373">41373</a></td>
      <td>SourceField.getConstant() returns null for final fields s...</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42444">42444</a></td>
      <td>Error building feature; Cannot find plug-in versions</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42579">42579</a></td>
      <td>Eclipse allows setting a source folder's parent as output...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=43692">43692</a></td>
      <td>Cancel button has no effect on build started after modify...</td>
    </tr>
    <tr class="bz_blocker bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44063">44063</a></td>
      <td>Clipboard of GTK on KDE : Eclipse crash</td>
    </tr>
    <tr class="bz_normal bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45138">45138</a></td>
      <td>[2.1.3 Candidate] Eclipse doesn't work with cvs server ve...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45357">45357</a></td>
      <td>Compiler-Bug: &quot;The local variable oResult may not have be...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45433">45433</a></td>
      <td>Bug7 (and counting ;-): hundretAssignmentsToFinalVariable()</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45845">45845</a></td>
      <td>scrollbars on ScrollingGraphicalViewer sometimes does not...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45847">45847</a></td>
      <td>[Builder] Reading build state is slow</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45877">45877</a></td>
      <td>many German strings are not displayed</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45985">45985</a></td>
      <td>BUILD FAILED: java.lang.NoSuchMethodError: attempting to ...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46093">46093</a></td>
      <td>[Builder] Unoptimal pre-check for not writing class files</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46276">46276</a></td>
      <td>Search for package declarations incorrectly finds matches...</td>
    </tr>
    <tr class="bz_blocker bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46301">46301</a></td>
      <td>IStackFrame.getVariable() requests when Variables view is...</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46413">46413</a></td>
      <td>[2.1.3 Candidate] Reboot on W2K when synchronizing</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46675">46675</a></td>
      <td>[Compiler] NullPointerException with ? operator</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46777">46777</a></td>
      <td>DBCS String not getting transfered correctly from the sim...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46918">46918</a></td>
      <td>assignment to this allowed by compiler</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46937">46937</a></td>
      <td>[Compiler] Marking a field deprecated still report deprec...</td>
    </tr>
    <tr class="bz_major bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47049">47049</a></td>
      <td>[Builder] Build output folder not getting flushed because...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47074">47074</a></td>
      <td>inability to detect invalid cast between interfaces</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47082">47082</a></td>
      <td>[Compiler] Problem with final variable initialization</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47415">47415</a></td>
      <td>[Search] package references confused with multiple fragments</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47509">47509</a></td>
      <td>Refactor name of package fragment does not handle on dema...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47778">47778</a></td>
      <td>NPE during shutdown [type hierarchy]</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47881">47881</a></td>
      <td>[Compiler] x &amp;&amp; false evaluates to &quot;true&quot;</td>
    </tr>
    <tr class="bz_trivial bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47886">47886</a></td>
      <td>[Compiler] ACC_SUPER bit sets for interfaces</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47976">47976</a></td>
      <td>Implementation of IField.getConstant() fails for some con...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47989">47989</a></td>
      <td>Exception when searching for IPackageFragment &quot;java.util....</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48275">48275</a></td>
      <td>[navigation] abnormal lineup/linedown refresh when using ...</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48317">48317</a></td>
      <td>Cannot build without optional plug-ins present</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48333">48333</a></td>
      <td>[Compiler] Implicit deprecation isn't propagated to anony...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48561">48561</a></td>
      <td>Java code generation template doesn't preserve import sta...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48749">48749</a></td>
      <td>[Compiler] deprecation check in initializer fooled by tra...</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=50301">50301</a></td>
      <td>Characters typed are displayed backwards.</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51821">51821</a></td>
      <td>TextNavigationAction sends invalid selection events -- pa...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53205">53205</a></td>
      <td>Exception trying to deploy/build plug-in with missing opt...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53419">53419</a></td>
      <td>viewing preference page makes preferences tree unresponsive</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53570">53570</a></td>
      <td>Opening the file type association dialog to the external ...</td>
    </tr>
    <tr class="bz_blocker bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53832">53832</a></td>
      <td>VM Crash related to focus or set font</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53837">53837</a></td>
      <td>Workbench hangs up when hitting space key on readonly combo.</td>
    </tr>
  </tbody>
</table>
<p>Note: the above table was generated with the Bugzilla query: <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.3&amp;resolution=FIXED&amp;order=bugs.bug_id">http://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.3&amp;resolution=FIXED&amp;order=bugs.bug_id</a></p>
<h3>7.1 Defects fixed in release 2.1.2 since 2.1.1</h3>
<p>Release 2.1.2 was the second maintenance release to fix serious defects
present in releases 2.1.0 and 2.1.1.</p>
<p>Maintenance release 2.1.2 includes all fixes made in 2.1.1 (see next section)
and contains additional fixes for the following defects:</p>
<table cellspacing="0" cellpadding="4" width="100%">
  <tbody>
    <tr align="left">
      <th><a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.2&amp;resolution=FIXED&amp;order=bugs.bug_id">ID</a></th>
      <th><a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.2&amp;resolution=FIXED&amp;order=bugs.short_desc,bugs.bug_id">Summary</a></th>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=18144">18144</a></td>
      <td>License is in one line</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29765">29765</a></td>
      <td>BIDI: ToolTiptext do not have Right to left Reading order</td>
    </tr>
    <tr class="bz_enhancement bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29781">29781</a></td>
      <td>BIDI: Lack of leading and trailig styles for alignment of...</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29783">29783</a></td>
      <td>BIDI: drop-down list of rtl-oriented CCombo is displayed ...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29784">29784</a></td>
      <td>BIDI: keyboard's left and right arrows change value of rt...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29786">29786</a></td>
      <td>BIDI: keyborad's left and right arrows move focus between...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29787">29787</a></td>
      <td>BIDI: problem with keyboard's left and right arrows, when...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29788">29788</a></td>
      <td>BIDI: rtl-oriented Tracker has wrong behavior.</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=30434">30434</a></td>
      <td>BIDI: StyledText to support RIGHT_TO_LEFT orientation</td>
    </tr>
    <tr class="bz_critical bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35826">35826</a></td>
      <td>GPs on exit</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35877">35877</a></td>
      <td>Stack overflow in code assist</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36270">36270</a></td>
      <td>BIDI: Some custom widgets can't be created with explicitl...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36276">36276</a></td>
      <td>BIDI: When UpDown control of rtl-oriented TabFolder is us...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36679">36679</a></td>
      <td>BIDI: PopupList can't be created with explicitly assigned...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36684">36684</a></td>
      <td>BIDI: LTR-oriented MessageBox can't be created, if it's p...</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37186">37186</a></td>
      <td>Search indexes generated for similar locales</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37293">37293</a></td>
      <td>BIDI:GC.drawImage(0, ... draws at 1, ... when using RIGHT...</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37299">37299</a></td>
      <td>BIDI:Caret cheese when resizing RIGHT_TO_LEFT StyledText</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37479">37479</a></td>
      <td>BIDI: Drop-down list of CCombo doesn't inherit it's orien...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37490">37490</a></td>
      <td>BIDI: text in the rtl-oriented Text control can't be alig...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37498">37498</a></td>
      <td>BIDI: rtl-oriented TableCursor set next column instead of...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37608">37608</a></td>
      <td>[Bidi] StyledText - support dynamic changing of orientation</td>
    </tr>
    <tr class="bz_critical bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38799">38799</a></td>
      <td>Searching for wildcard character * causes server memory e...</td>
    </tr>
    <tr class="bz_blocker bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38852">38852</a></td>
      <td>Java memory arguments not being passed to operational VM</td>
    </tr>
    <tr class="bz_major bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39032">39032</a></td>
      <td>Bidi: StyledText - exception in autoscroll in bidi</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39108">39108</a></td>
      <td>Numerous single type imports can slow compiler down signi...</td>
    </tr>
    <tr class="bz_enhancement bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39394">39394</a></td>
      <td>Extensible debug events</td>
    </tr>
    <tr class="bz_critical bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39474">39474</a></td>
      <td>JavaBreakpoint.recreate() should call getAdapter(IJavaDeb...</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39663">39663</a></td>
      <td>setSuperclass(String superclassName) API of org.eclipse....</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39664">39664</a></td>
      <td>setSuperInterfaces(String[] interfaceNames) API of org.e...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39987">39987</a></td>
      <td>BIDI: MIRRORED bit can't be switched on in the style's bi...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40006">40006</a></td>
      <td>BIDI: rtl-oriented StyledText has overlapping segments pr...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40019">40019</a></td>
      <td>BIDI: StyledText has problem with drawing of selection in...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40174">40174</a></td>
      <td>Performance issues with builder</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40442">40442</a></td>
      <td>Abstract class fails to invoke interface-defined method i...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40736">40736</a></td>
      <td>JDT compiler fails to compile legitimate Java code.</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40820">40820</a></td>
      <td>Installing patch via New Updates search doesn't respect m...</td>
    </tr>
    <tr class="bz_critical bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40857">40857</a></td>
      <td>Eclipse Infocenter framework strings not getting translat...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40940">40940</a></td>
      <td>Printing disabled in Solaris</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42505">42505</a></td>
      <td>IndexOutOfBoundsException during indexing help</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42589">42589</a></td>
      <td>jck1.4a failures</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42724">42724</a></td>
      <td>StyledText - selection rendered incorrectly on bidi platf...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42805">42805</a></td>
      <td>Chkpii errors for the 2.1.2 build</td>
    </tr>
    <tr class="bz_normal bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42897">42897</a></td>
      <td>BIDI: CHECK style doesn't work with RTL Tree or Table</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=43125">43125</a></td>
      <td>Bidi: DCR setOrientation API for Text and Combo widget</td>
    </tr>
    <tr class="bz_critical bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=43518">43518</a></td>
      <td>Stepping through session bean is very slow in WSAD v5.1</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=43811">43811</a></td>
      <td>3.0M3 fails startup</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=43857">43857</a></td>
      <td>Java files generated from PDE templates contain IBM copyr...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=43863">43863</a></td>
      <td>Plugin editor incorrectly reformats packages prefixes</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45228">45228</a></td>
      <td>bookmark's title(DBCS) breaks.</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45267">45267</a></td>
      <td>BIDI: Mirrored text appears on every editor</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45882">45882</a></td>
      <td>Using a workspace created with 2.1.1 fails with 2.1.2 RC2</td>
    </tr>
  </tbody>
</table>
<p>Note: the above table was generated with the Bugzilla query: <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.2&amp;resolution=FIXED&amp;order=bugs.bug_id">http://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.2&amp;resolution=FIXED&amp;order=bugs.bug_id</a></p>
<h3>7.2 Defects fixed in release 2.1.1 since 2.1.0</h3>
<p>Release 2.1.1 was the first maintenance release to fix serious defects
present in release 2.1.0.</p>
<p>Maintenance release 2.1.1 fixes the following defects present in release
2.1.0, all of which are also included in 2.1.2:</p>
<table cellspacing="0" cellpadding="4" width="100%">
  <tbody>
    <tr align="left">
      <th><a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.1&amp;resolution=FIXED&amp;order=bugs.bug_id">ID</a></th>
      <th><a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.1&amp;resolution=FIXED&amp;order=bugs.short_desc,bugs.bug_id">Summary</a></th>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=20988">20988</a></td>
      <td>[Coolbar] CoolBarManager does not support wrapping with a...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=28609">28609</a></td>
      <td>Readme: Accessibility problems when in high contrast mode</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29632">29632</a></td>
      <td>[Workbench] Need to warn user about migrating workspace f...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=30644">30644</a></td>
      <td>VCM preference pages cut off in High Contrast</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=30646">30646</a></td>
      <td>Tag Configuration Dialog cut off in High Contrast mode</td>
    </tr>
    <tr class="bz_minor bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=30678">30678</a></td>
      <td>Labels don't wrap in certain preferences pages</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=30854">30854</a></td>
      <td>[Encoding] DBCS: Encoding change at the Preferences cause...</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=31794">31794</a></td>
      <td>Types views show too many errors</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=31914">31914</a></td>
      <td>[CVS Core] refresh local does not update dirty state of p...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=31941">31941</a></td>
      <td>gtk_progress_bar_set_fraction - crash when creating a cla...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=32967">32967</a></td>
      <td>Java Editors preference page uses externalized values for...</td>
    </tr>
    <tr class="bz_enhancement bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=33316">33316</a></td>
      <td>FontDialog needs FontData[] API</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=33347">33347</a></td>
      <td>[Linked Resources] Advanced button comes before options a...</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=33374">33374</a></td>
      <td>Allowed to add a package to a non-java project</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=33684">33684</a></td>
      <td>[Wizards] Error when trying to create a new project</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34011">34011</a></td>
      <td>Leak: JUnit View</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34245">34245</a></td>
      <td>[Preferences] DBCS: &quot;Use System Font&quot; button truncated</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34608">34608</a></td>
      <td>Exception using content assist</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34926">34926</a></td>
      <td>Exception in pull-up refactoring [refactoring]</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34969">34969</a></td>
      <td>[Contributions] Menu manager is enabled even when empty.</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35244">35244</a></td>
      <td>[Action Sets] Hierarchy fast view causes unhandled except...</td>
    </tr>
    <tr class="bz_critical bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35319">35319</a></td>
      <td>TVT21: Cannot input characters in German for motif</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35335">35335</a></td>
      <td>README: [Fonts] DBCS: customized font won't be saved</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35338">35338</a></td>
      <td>Cannot save file, &quot;Save failed:null&quot; error message received</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35362">35362</a></td>
      <td>[CVS Repo View] &quot;Compare with...&quot; on file fails</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35377">35377</a></td>
      <td>[CVS UI] Performing Team&gt;Edit followed by Team&gt;Unedit doe...</td>
    </tr>
    <tr class="bz_minor bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35378">35378</a></td>
      <td>[CVS UI] Timestamp not reset properly on commit</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35379">35379</a></td>
      <td>(possibly regression) Moving to default package adds &quot;.*&quot;...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35438">35438</a></td>
      <td>CastExpression resolution departs from JLS section 6.5.1</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35490">35490</a></td>
      <td>Search doesn't work for reference of 'cursorLocation'</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35493">35493</a></td>
      <td>OleClientSite hang</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35497">35497</a></td>
      <td>ArrayIndexOutOfBounds on external tools page</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35501">35501</a></td>
      <td>[Dialogs] NPE in Organize Imports preference page</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35505">35505</a></td>
      <td>NPE on java project build path page</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35528">35528</a></td>
      <td>When I check out a project from CVS, Updating takes a ver...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35556">35556</a></td>
      <td>[Refactoring] NPE upon inlining method</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35614">35614</a></td>
      <td>RC3 can't handle all file extensions</td>
    </tr>
    <tr class="bz_trivial bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35649">35649</a></td>
      <td>The SourceMapper instances could share the fileNamefilter</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35657">35657</a></td>
      <td>Eclipse crashes and throws exception when starting up in ...</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35671">35671</a></td>
      <td>'Synchronize CVS projects' does not always synchronized a...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35673">35673</a></td>
      <td>TVT 2.1: Can not launch browser with eclipse RC3a</td>
    </tr>
    <tr class="bz_critical bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35701">35701</a></td>
      <td>[Editor Mgmt] Exiting Eclipse with a problem file caused ...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35740">35740</a></td>
      <td>Disable edit launch config popup action for private launch</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35750">35750</a></td>
      <td>[Key Bindings] Accelerator Key doesn't work if items are ...</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35755">35755</a></td>
      <td>Search in hierarchy misses dependent projects</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35769">35769</a></td>
      <td>NPE when opening ClassFile Editor</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35774">35774</a></td>
      <td>Unexpected Exit: Error: Object &quot;&quot; does not have windowed ...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35831">35831</a></td>
      <td>NPE navigating references using links</td>
    </tr>
    <tr class="bz_critical bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35842">35842</a></td>
      <td>Outline view crashes on WinXP &amp; Win2K</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35851">35851</a></td>
      <td>Content of folders with illegal package name are no shown...</td>
    </tr>
    <tr class="bz_trivial bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35926">35926</a></td>
      <td>Batch compiler compile should return false when the comma...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35965">35965</a></td>
      <td>Source not found in source attachment</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36034">36034</a></td>
      <td>[Keybindings] Exception if description is missing from a ...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36044">36044</a></td>
      <td>Maximizing help views does not work on Mozilla.</td>
    </tr>
    <tr class="bz_minor bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36077">36077</a></td>
      <td>Doc: org.eclipse.help.browser extension point has wrong i...</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36086">36086</a></td>
      <td>[CVS Repo View] Expanding project in Version category for...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36139">36139</a></td>
      <td>[CVS Core] NPE in CVS property page</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36145">36145</a></td>
      <td>Help toolbars not high enough when large fonts.</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36146">36146</a></td>
      <td>[CVS Core] CVS synchronizer doesn't handle out of sync CV...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36157">36157</a></td>
      <td>[CVS UI] Workbench Help set on wrong Composite</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36160">36160</a></td>
      <td>Java watch expressions not using getAdapter.</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36185">36185</a></td>
      <td>[CVS Repo View] inconsistent folder and module context me...</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36192">36192</a></td>
      <td>Native crash when closing tree nodes</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36213">36213</a></td>
      <td>ArrayIndex out of bounds</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36215">36215</a></td>
      <td>JR.computeDefaultRuntimeClasspath(IJavaProject)</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36216">36216</a></td>
      <td>Import preferences does not work for numbers and boolean</td>
    </tr>
    <tr class="bz_normal bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36248">36248</a></td>
      <td>[Team] Ignore schema differs from code</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36257">36257</a></td>
      <td>[Dialogs] ContainerSelectionDialog returns array with nul...</td>
    </tr>
    <tr class="bz_critical bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36267">36267</a></td>
      <td>[Key Bindings] Key binding and unknown command (conflict)</td>
    </tr>
    <tr class="bz_trivial bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36298">36298</a></td>
      <td>Missing translation string</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36312">36312</a></td>
      <td>natives do not implement internalCopyAttributes properly</td>
    </tr>
    <tr class="bz_blocker bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36326">36326</a></td>
      <td>stackframe label not getting updated when stepping over s...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36351">36351</a></td>
      <td>[CVS EXTSSH] Deadlocks / Timeouts in SSH communication</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36353">36353</a></td>
      <td>Move to Ant 1.5.3</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36373">36373</a></td>
      <td>Improve startup time and reduce memory by caching plugin....</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36387">36387</a></td>
      <td>Infocenter: Synchronization broken when proxy is used.</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36438">36438</a></td>
      <td>null == null causes java.lang.VerifyError</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36450">36450</a></td>
      <td>[Key Bindings] Only KeyUp event for Alt+[Shift]+&lt;char&gt; on...</td>
    </tr>
    <tr class="bz_blocker bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36465">36465</a></td>
      <td>Unable to create multiple source folders when not using b...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36490">36490</a></td>
      <td>Java compiler misses dependency on 'static final' class v...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36501">36501</a></td>
      <td>[PropertiesView] Properties view not updated after select...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36516">36516</a></td>
      <td>ClassCastException: MonitorAction not use getAdapter.</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36541">36541</a></td>
      <td>Printing of java program causes failure</td>
    </tr>
    <tr class="bz_major bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36548">36548</a></td>
      <td>Help frames accessibility issues</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36554">36554</a></td>
      <td>JDT/UI plugin activation fails when activated in non UI t...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36568">36568</a></td>
      <td>CVS tag property shows &quot;(branch)&quot; and &quot;(version)&quot;
        for sam...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36569">36569</a></td>
      <td>Difference between (none) and HEAD?</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36579">36579</a></td>
      <td>[CVS Decorators] Dirty decorator not cleared on refresh</td>
    </tr>
    <tr class="bz_trivial bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36603">36603</a></td>
      <td>Missing resource in variables dialog</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36622">36622</a></td>
      <td>Problems with &quot;Search Scope&quot; function</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36627">36627</a></td>
      <td>NPE when clicking on Previous Search Results</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36659">36659</a></td>
      <td>extensions lazy loading mechanism is not thread safe</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36718">36718</a></td>
      <td>Compiler should not generate references to classes not on...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36795">36795</a></td>
      <td>VariablesView.populateDetailPaneFromSelection not prepare...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37146">37146</a></td>
      <td>New icon needed for synchronize button added to help navi...</td>
    </tr>
    <tr class="bz_critical bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37151">37151</a></td>
      <td>User problem with synchronization button</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37179">37179</a></td>
      <td>LaunchView.selectAndReveal doesn't account for partial do...</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37188">37188</a></td>
      <td>Expose Tomcat performance configuration variables</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37224">37224</a></td>
      <td>TextSearch should use IDocument if one opened</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37288">37288</a></td>
      <td>StepIntoSelectionHandler is filtering events from same de...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37297">37297</a></td>
      <td>[Contributions] SubStatusLineManager.setVisible handles m...</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37463">37463</a></td>
      <td>[Navigator] Should not sync with selection in Navigator a...</td>
    </tr>
    <tr class="bz_major bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37537">37537</a></td>
      <td>[Coolbar] Can't restore combo box on toolbar</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37566">37566</a></td>
      <td>Cannot rename a Java Project referenced by a Simple Proje...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37567">37567</a></td>
      <td>Remove automatic forward linking</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37621">37621</a></td>
      <td>java compiler creates class with internal inconsistency</td>
    </tr>
    <tr class="bz_critical bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37691">37691</a></td>
      <td>[DND] Change EditorAreaDropAdapter to set DROP_COPY</td>
    </tr>
    <tr class="bz_blocker bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37732">37732</a></td>
      <td>Tomcat error reporting (404 and others)</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37787">37787</a></td>
      <td>[Import/Export] Flashing Cursor appears in description in...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37938">37938</a></td>
      <td>One-click search does not find e-fixes</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37963">37963</a></td>
      <td>Backport delete retry code from 3.0 into 2.1.1</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38171">38171</a></td>
      <td>PageLayout contains non NLS-ed strings</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38173">38173</a></td>
      <td>Help Search dialog does not close after cancelling and re...</td>
    </tr>
    <tr class="bz_major bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38213">38213</a></td>
      <td>[Wizards] Dialogs require a resize to draw</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38277">38277</a></td>
      <td>TVT2.1- Description text not translated in code Generatio...</td>
    </tr>
    <tr class="bz_normal bz_P2 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38335">38335</a></td>
      <td>Update Manager continues to find available updates</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38382">38382</a></td>
      <td>DND in Packages View results in incorrect target element</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38385">38385</a></td>
      <td>Japanese Input (IME) not doesn't come up</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38388">38388</a></td>
      <td>eclipse crash on redhat 9/ ja_JP</td>
    </tr>
    <tr class="bz_critical bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38551">38551</a></td>
      <td>TVT21: Missing text and fields in JRE tab of Java Applet</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38598">38598</a></td>
      <td>README - [Properties View] TVT21: Not able to expand in ...</td>
    </tr>
    <tr class="bz_normal bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38604">38604</a></td>
      <td>README - [Fonts] TVT21: Default font is too high in Korean</td>
    </tr>
    <tr class="bz_normal bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38812">38812</a></td>
      <td>README - TVT21: Launching Eclipse on RedHat 8.0 with Gtk 2.2</td>
    </tr>
    <tr class="bz_critical bz_P1 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38914">38914</a></td>
      <td>Clicking in the wrong sequence crashes Java VM</td>
    </tr>
    <tr class="bz_blocker bz_P3 ">
      <td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38975">38975</a></td>
      <td>PropertySheetViewer gets IllegalArguementException if Roo...</td>
    </tr>
  </tbody>
</table>
<p>Note: the above table was generated with the Bugzilla query: <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.1&amp;resolution=FIXED&amp;order=bugs.bug_id">http://bugs.eclipse.org/bugs/buglist.cgi?product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=2.1.1&amp;resolution=FIXED&amp;order=bugs.bug_id</a></p>
<hr>
<p>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc.
in the United States, other countries, or both.</p>
<p>IBM is a trademark of International Business Machines Corporation in the
United States, other countries, or both.</p>
<p>Microsoft, Windows, Windows NT, and the Windows logo are trademarks of
Microsoft Corporation in the United States, other countries, or both.</p>
<p>Apple and Mac OS are trademarks of Apple Computer, Inc., registered in the
U.S. and other countries.</p>
<p>QNX, Neutrino, and Photon are trademarks or registered trademarks of QNX
Software Systems Ltd.</p>
<p>Other company, product, and service names may be trademarks or service marks
of others.</p>
<p>(c) Copyright IBM Corp. and others 2004</p>

</body>

</html>
