<!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.1</title>
</head>

<body>

<h1>Eclipse Project Release Notes</h1>
<p>Release 2.1.2<br>
October 31, 2003</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>Incompatible with CVS server version 1.11.7 or later</h4>
<p>Due to unanticipated changes in CVS version 1.11.7, Eclipse only works with
CVS server versions 1.11.1p1 through 1.11.6. Eclipse parses the messages
returned from the CVS server. The format of these messages changed abruptly with
the recent CVS server version 1.11.7, rendering the current parser ineffective.
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45138">45138</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., &quot;<code>-data 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.2 since 2.1.1</h3>
<p>Release 2.1.2 is a maintenance release to fix serious defects present in
release 2.1.0 and 2.1.1. These changes only affect some plug-ins and features.
Modified plug-ins have version id &quot;2.1.2&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;. Note, however,
that all features now have version id &quot;2.1.2&quot; (even if none of their
plug-ins changed).</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 2003</p>

</body>

</html>
