<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Eclipse Project Release Notes 3.2.2</title>
</head>

<body>

<h1>Eclipse Project Release Notes</h1>
<p>Release 3.2.2<br>
  Last revised February 26, 2007</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="#Known Issues">3. Known Issues</a><br>
  <a href="#Running Eclipse">4. Running Eclipse</a><br>
  <a href="#Upgrading">5. Upgrading a Workspace from a Previous Release</a><br>
  <a href="#Interoperability with Previous Releases">6. Interoperability with
  Previous Releases</a><br>
  </p>
</blockquote>

<h2>1. <a name="TargetOperatingEnvironments"></a>Target Operating Environments</h2>
<p>In order to remain current, each Eclipse release targets reasonably current
  operating environments.
</p>

<p>Most of the Eclipse SDK is "pure" Java code and has no direct
  dependence on the underlying operating system. The chief dependence is
  therefore on the Java Platform itself. Portions of the Eclipse SDK
  (including the RCP base, SWT, OSGi and JDT core plug-ins) are targeted
  to specific classes of operating environments, requiring their source
  code to only reference facilities available in particular class
  libraries (e.g. J2ME Foundation 1.0, J2SE 1.3 and 1.4, etc.).
</p>
<p>  
  With the exception of a small set of features that
  actually require Java SE 5 APIs (in particular, the support for
  Annotation Processing and JUnit 4), the 3.2 release of the Eclipse
  Project runs against version 1.4 of the Java 2 Platform.
  As such, the Eclipse Project SDK as a whole is targeted at both
  1.4 and Java5 VMs, with full functionality available for 1.4 level
  development everywhere, and new Java5 specific capabilities available
  when running on a Java5 VM.

  <a href="#Appendix1">Appendix 1</a> contains a table that indicates
  the class library level required for each plug-in.
</p>

<p>There are many different implementations of the Java Platform running atop 
  a variety of operating systems. We focus Eclipse SDK testing on a handful 
  of popular combinations of operating system and Java Platform; 
  these are our <em>reference platforms</em>. Eclipse undoubtedly runs fine in 
  many operating environments beyond the reference platforms we test. However, 
  since we do not systematically test them we cannot vouch for them. Problems 
  encountered when running Eclipse on a non-reference platform that cannot be recreated 
  on any reference platform are given lower priority than problems with running 
  Eclipse on a reference platform.</p>
<p>The Eclipse SDK 3.2.2 is tested and validated on the following reference platforms:</p>

<table summary="Eclipse Reference Platforms" style="width: 821px;" border="1">
  <tbody>
    <tr bgcolor="#cccccc"> 
      <th colspan="5"> <div align="center"><strong><font size="+1">Eclipse Reference 
          Platforms</font></strong></div></th>
    </tr>
    <tr> 
      <td width="205"><b>Operating system</b></td>
      <td width="59"><b>OS version</b></td>
      <td width="76"><b>Processor architecture</b></td>
      <td width="59"><b>Window system</b></td>
      <td width="453"><b>Java 2 Platform</b></td>
    </tr>
    <tr> 
      <td>Microsoft Windows</td>
      <td>XP</td>
      <td>Intel x86</td>
      <td>Win32</td>
      <td> Sun Java 2 Standard Edition 1.4.2_10<br>
        for Microsoft Windows </td>
    </tr>
    <tr> 
      <td>Microsoft Windows</td>
      <td>XP</td>
      <td>Intel x86</td>
      <td>Win32</td>
      <td> IBM 32-bit SDK for Windows,<br>
        Java 2 Technology Edition 1.4.2 service release 3 </td>
    </tr>
    <tr> 
      <td>Microsoft Windows</td>
      <td>XP</td>
      <td>Intel x86</td>
      <td>Win32</td>
      <td> BEA JRockit 1.4.2 R26.4,<br>
        for Microsoft Windows </td>
    </tr>
    <tr> 
      <td width="205">Microsoft Windows</td>
      <td width="59">XP</td>
      <td width="76">Intel x86</td>
      <td width="59">Win32</td>
      <td width="453"> Sun Java 2 Standard Edition 5.0 Update 6<br>
        for Microsoft Windows </td>
    </tr>
    <tr> 
      <td width="205">Microsoft Windows</td>
      <td width="59">XP</td>
      <td width="76">Intel x86</td>
      <td width="59">Win32</td>
      <td width="453"> IBM 32-bit SDK for Windows,<br>
        Java 2 Technology Edition 5.0 service release 1 </td>
    </tr>
    <tr> 
      <td>Microsoft Windows</td>
      <td>XP</td>
      <td>Intel x86</td>
      <td>Win32</td>
      <td> BEA JRockit 5.0 R26.4, <br>
        for Microsoft Windows </td>
    </tr>
    <tr> 
      <td>Red Hat Enterprise Linux</td>
      <td>WS 4</td>
      <td>Intel x86</td>
      <td>GTK</td>
      <td> Sun Java 2 Standard Edition 1.4.2_10<br>
        for Linux x86 </td>
    </tr>
    <tr> 
      <td>Red Hat Enterprise Linux</td>
      <td>WS 4</td>
      <td>Intel x86</td>
      <td>GTK</td>
      <td> IBM 32-bit SDK for Linux on Intel architecture,<br>
        Java 2 Technology Edition 1.4.2 service release 3 </td>
    </tr>
    <tr> 
      <td>Red Hat Enterprise Linux</td>
      <td>WS 4</td>
      <td>Intel x86</td>
      <td>GTK</td>
      <td> Sun Java 2 Standard Edition 5.0 Update 6<br>
        for Linux x86</td>
    </tr>
    <tr> 
      <td>Red Hat Enterprise Linux</td>
      <td>WS 4</td>
      <td>Intel x86</td>
      <td>GTK</td>
      <td> IBM 32-bit SDK for Linux on Intel architecture,<br>
        Java 2 Technology Edition 5.0 service release 1 </td>
    </tr>
    <tr> 
      <td width="205">SUSE Linux Enterprise Server</td>
      <td width="59">9</td>
      <td width="76">Intel x86</td>
      <td width="59">GTK</td>
      <td width="453"> Sun Java 2 Standard Edition 1.4.2_10<br>
        for Linux x86</td>
    </tr>
    <tr> 
      <td width="205">SUSE Linux Enterprise Server</td>
      <td width="59">9</td>
      <td width="76">Intel x86</td>
      <td width="59">GTK</td>
      <td width="453"> IBM 32-bit SDK for Linux on Intel architecture,<br>
        Java 2 Technology Edition 1.4.2 service release 3 </td>
    </tr>
    <tr> 
      <td width="205">Sun Solaris</td>
      <td width="59">10</td>
      <td width="76">SPARC</td>
      <td width="59">GTK</td>
      <td width="453"> Sun Java 2 Standard Edition 1.4.2_10<br>
        for Solaris SPARC</td>
    </tr>
    <tr> 
      <td width="205">HP HP-UX</td>
      <td width="59">11i</td>
      <td width="76">hp9000<br>
        PA-RISC</td>
      <td width="59">Motif</td>
      <td width="453"> HP-UX JDK for the Java 2 Platform Standard Edition for 
        1.4.2_09 </td>
    </tr>
    <tr> 
      <td width="205">IBM AIX 5L</td>
      <td width="59">5.2</td>
      <td width="76">Power</td>
      <td width="59">Motif</td>
      <td width="453"> IBM 32-bit SDK for AIX,<br>
        Java 2 Technology Edition 1.4.2 service release 3 </td>
    </tr>
    <tr> 
      <td width="205">Apple Mac OS X</td>
      <td width="59">10.4</td>
      <td width="76">Power, Intel x86</td>
      <td width="59">Carbon</td>
      <td width="453"> Java 2 Platform Standard Edition (J2SE) 1.4.2<br>
        service release 2 for Tiger </td>
    </tr>
    <tr> 
      <td width="205">Red Hat Enterprise Linux</td>
      <td width="59">WS 4</td>
      <td width="76">Power</td>
      <td width="59">GTK</td>
      <td width="453"> IBM 32-bit SDK for Linux on pSeries architecture, <br>
        Java 2 Technology Edition 1.4.2 service release 3 </td>
    </tr>
    <tr> 
      <td width="205">SUSE Linux Enterprise Server</td>
      <td width="59">9</td>
      <td width="76">Power</td>
      <td width="59">GTK</td>
      <td width="453"> IBM 32-bit SDK for Linux on pSeries architecture, <br>
        Java 2 Technology Edition 1.4.2 service release 3 </td>
    </tr>
    <tr> 
      <td width="205">SUSE Linux Enterprise Server</td>
      <td width="59">9</td>
      <td width="76">Power</td>
      <td width="59">GTK</td>
      <td width="453"> IBM 32-bit SDK for Linux on pSeries architecture, <br>
        Java 2 Technology Edition 1.4.2 service release 3 </td>
    </tr>
  </tbody>
</table>

<p>Because Java 1.4.2 platforms are used for most Eclipse development,
  in general, 1.4.2 platforms are listed here. Of course, the teams doing Java 5 based
  development use Java 5 platforms, and the specific ones that they test on
  are also included. <i>We expect that Eclipse works fine on other Java 5 VMs
  running on window systems supported by SWT, but can not flag these as reference
  platforms without significant community support for testing them.</i></p>

<p>Although not a reference platform, Eclipse SDK 3.2.2 has been tested and 
works well on Microsoft Windows Vista.
</p>
  
<p>Similarly, although untested, the Eclipse SDK should work fine on other OSes that 
  support the same window system. For Win32: Windows 98, ME, NT, 2000, and Server 
  2003; SWT HTML viewer requires Internet Explorer 5 (or higher). For GTK on other 
  Linux systems: version 2.2.1 of the GTK+ widget toolkit and associated libraries 
  (GLib, Pango); SWT HTML viewer requires Mozilla 1.4GTK2. For Motif on 
  Linux systems: Open Motif 2.1 (included); SWT HTML viewer requires Mozilla 1.4GTK2.</p>

<p>An early access version of the Eclipse SDK is also available for 64-bit 
  Linux GTK. Testing has been limited to early access 64-bit J2SEs running on 
  x86-64 processors.</p>
  
<p>SWT is also supported on the QNX Neutrino operating system, x86 processor, 
  Photon window system, and IBM J9 VM version 2.0. Eclipse 3.2 on Windows or Linux 
  can be used to cross-develop QNX applications. (Eclipse 3.2 is unavailable on QNX 
  because there is currently no 1.4 J2SE for QNX.)</p>

  <p></p>
<p> </p>
<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 (level 1), the Chinese code page standard, 
  on Windows XP and 2000, and Linux. 
<p>German and Japanese locales are tested.</p>

<h4>BIDI support</h4>
<p>SWT fully supports BIDI on Windows only. On Linux GTK, SWT supports entering 
  and displaying BIDI text.</p>
<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. On the Windows platform only, the Eclipse SDK itself can be 
  localized for BIDI locales and the widget orientation will change appropriately.
</p>

<h2>2. <a name="Compatibility"></a>Compatibility with Previous Releases</h2>


<h3>Compatibility of Release 3.2 with 3.1</h3>

<p>Eclipse 3.2 is compatible with Eclipse 3.1 (and, hence, with 3.0).</p>
<p><b>API Contract Compatibility:</b> Eclipse SDK 3.2 is upwards contract-compatible 
  with Eclipse SDK 3.1 except in those areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.platform.doc.isv/porting/eclipse_3_2_porting_guide.html" target="_top"><em>Eclipse 
  3.2 Plug-in Migration Guide</em></a>. Programs that use affected APIs and extension 
  points will need to be ported to Eclipse SDK 3.2 APIs. Downward contract compatibility 
  is not supported. There is no guarantee that compliance with Eclipse SDK 3.2 
  APIs would ensure compliance with Eclipse SDK 3.1 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 3.2 is upwards binary-compatible 
  with Eclipse SDK 3.1 except in those areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.platform.doc.isv/porting/eclipse_3_2_porting_guide.html" target="_top"><em>Eclipse 
  3.2 Plug-in Migration Guide</em></a>. Downward plug-in compatibility is not 
  supported. Plug-ins for Eclipse SDK 3.2  are not usable in Eclipse SDK 3.1. 
  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><p><b>Source Compatibility:</b> Eclipse SDK 3.2 is upwards source-compatible 
  with Eclipse SDK 3.1 except in the areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.platform.doc.isv/porting/eclipse_3_2_porting_guide.html" target="_top"><em>Eclipse 
  3.2 Plug-in Migration Guide</em></a>. This means that source files written to 
  use Eclipse SDK 3.1 APIs might successfully compile and run against Eclipse 
  SDK 3.2 APIs, although this is not guaranteed. Downward source compatibility 
  is not supported. If source files use new Eclipse SDK APIs, they will not be 
  usable with an earlier version of the Eclipse SDK. 
</p><p><b>Workspace Compatibility:</b> Eclipse SDK 3.2 is upwards workspace-compatible 
  with Eclipse SDK 3.1 unless noted. This means that workspaces and projects created 
  with Eclipse SDK 3.1 or 3.0 can be successfully opened by Eclipse SDK 3.2 and 
  upgraded to a 3.2 workspace. 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 3.2 should provide similar upwards compatibility for their hidden and visible 
  workspace metadata created by earlier versions; 3.2 plug-in developers are responsible 
  for ensuring that their plug-ins recognize 3.1, 3.0, 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 a product based on Eclipse 3.2 is unusable 
  with a product based an earlier version of Eclipse. Visible metadata files created 
  (or overwritten) by Eclipse 3.2 will generally be unusable with earlier versions 
  of Eclipse. 
</p><p><b>Non-compliant usage of API's</b>: All non-API methods and classes, and
certainly everything in a package with "internal" 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>Compatibility of Release 3.2 with 3.0, 2.1 and 2.0</h3>
<p>Since Eclipse 3.1 is compatible with Eclipse 3.0, 2.1 and 2.0 in most regards, and 
  Eclipse 3.2 is compatible with 3.1, it follows that 3.2 is also compatible with 
  3.0, 2.1 and 2.0 in most aspects. If you are upgrading directly from 3.0, 2.1 or 2.0, 
  refer also to the 
  <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.platform.doc.isv/porting/eclipse_3_0_porting_guide.html" target="_top">
  <em>Eclipse 3.0 Plug-in Migration Guide</em></a> 
  and the 
  <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.platform.doc.isv/porting/eclipse_3_1_porting_guide.html" target="_top">
  <em>Eclipse 3.1 Plug-in Migration Guide</em></a> for problems areas.</p>
<h2>3. <a name="Known Issues"></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-User-Assistance">3.1.3 User Assistance</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 and CVS</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></p>
</blockquote>
<p>Note: Bug numbers refer to the Eclipse project bug database at <a href="http://dev.eclipse.org/bugs/">http://bugs.eclipse.org/bugs/</a></p>
<h3>3.1 <a name="I-Platform">Platform</a></h3>

<h3>3.1.1 <a name="I-Platform-Core">Platform - Core</a></h3>

<h4>Installing Eclipse in Program Files directory on Vista</h4>
<p>
By default, Microsoft Windows Vista does not allow user level accounts to write files in
the "Program Files" directory.  This can prevent Eclipse from starting when
installed in the "Program Files" directory, because Eclipse stores configuration
data by default in its install directory.  Either of the following workarounds
can be used to avoid this problem:
<ul>
<li>Install Eclipse outside the "Program Files" directory</li>
<li>Instruct Eclipse to store configuration data outside the "Program Files" directory
using the <tt>-configuration</tt> command line argument.
</ul>
The problem will not occur when running Eclipse as the Administrator user, but 
this is not recommended because it compromises the Windows Vista security model.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=168445">168445</a>)</p>

<h4>Installation/Configuration issues that can cause Eclipse to fail start</h4>
<p>Here are some common problems that can cause Eclipse not to start:</p>
<ul>
  <li>As shown <a href="#TargetOperatingEnvironments">above</a>, Eclipse 3.2 requires 
    at least a 1.4.2 VM. Perhaps an older version of the VM is being found in 
    your path. To explicitly specify which VM to run with, use the Eclipse <tt>-vm</tt> 
    command-line argument. (See also the <a href="#Running Eclipse">Running Eclipse</a> 
    section below.)</li>
<li>Eclipse must be installed to a clean directory and not installed over top of
a previous installation. If you have done this then please re-install to a new
directory. If your workspace is in a child directory of your old installation
directory, then see the instructions below on "<a href="#upgrading">Upgrading Workspace from a
Previous Release"</a>.</li>

<li>Java sometimes has difficulty detecting whether a file system is writable. In
particular, the method java.io.File.canWrite() appears to return true in
unexpected cases (e.g., using Windows drive sharing where the share is a
read-only Samba drive). The Eclipse runtime generally needs a writable
configuration area and as a result of this problem, may erroneously detect the
current configuration location as writable. The net result is that Eclipse will
fail to start and depending on the circumstances, may fail to write a log file
with any details. To work around this, we suggest users experiencing this
problem set their configuration area explicitly using the <tt>-configuration</tt> command
line argument. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67719">67719</a>)</li>
</ul>
<h4>Installing plug-ins by unzipping them into the plugins directory</h4>
<p>If you have installed new plug-ins and they aren't showing up when you run,
then perhaps you unzipped them into your "plugins" directory and your
configuration might need to be refreshed. This can be accomplished by starting
Eclipse with the <tt>-clean</tt> command line argument.</p>
<h4>XML files with UTF-8 byte order mark fail to have content type detected</h4>

<p>Eclipse will fail to detect the proper content type for XML files that have a
UTF-8 byte order mark if Crimson is the XML parser (as it is on Sun 1.4 JREs,
but not on Sun 1.5 JREs). This
problem will prevent actions normally available when files of the affected
content types are selected from being presented to the user. The workaround is
to ensure the default XML parser supports UTF-8 BOMs (such as Xerces does). (bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67048">67048</a>)</p>
<h4>No branding with old config.ini</h4>
<p>If you have an old config.ini file and use it with a new Eclipse build, you
may not get the correct product branding. This is because the id of the standard
Eclipse product changed. Users in shared install scenarios may end up in this
situation as previous builds of Eclipse automatically generated config.ini files
in some cases. The work around is either to delete the local config.ini or
update the eclipse.product line to read eclipse.product=org.eclipse.platform.ide.</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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=3109">3109</a>
and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=17281">17281</a>)</p>

<h4>Problems with
classloaders in created threads</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>Send yourThread.setContextClassLoader(yourClassLoader); // you can find
    your classloader by grabbing a class it loaded (YourPluginClass.class.getClassLoader())
  <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="https://bugs.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. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=5875">5875</a>)</p>
<h4>Potential Problems Converting Plug-in Manifests</h4>
<p>If your plug-in ships with a plug-in manifest and not an OSGi bundle manifest,
is shipped as a JAR file, and contains a nested JAR file then there may be
problems in the automatic generation of the bundle manifest file. The packages
defined in the nested JAR may not be exported correctly in the <tt>Export-packages</tt>

bundle manifest header. To work around this you should ship your plug-in with a
bundle manifest. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=97689">97689</a>)</p>
<h4>Location for Debug Options File on Mac OS</h4>
<p>If you are running in debug mode on Mac OS, the default location for the
.options file is inside the application bundle in the Eclipse.app/Contents/MacOS
directory (like the eclipse.ini). (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=88782">88782</a>)</p>
<h4>Configuration can become invalid when removing org.eclipse.update.configurator</h4>
<p>When launching an Eclipse Application from within the Eclipse IDE it is possible
to select the set of plug-ins that are included in the Eclipse Application. 
Removing the org.eclipse.update.configurator plug-in from the set of plug-ins to
an existing configuration can cause the configuration to become invalid.  This
can result in extra plug-ins installed in the target application that are not
resolved.  To work around this, after the org.eclipse.update.configurator
plug-in has been removed, the target configuration area should be cleared before
launching. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=85835">85835</a>)</p>

<h4>Issues with JNI that use FindClass</h4>
<p>
There may be issues when using a JNI implementation that uses FindClass 
in a function where the JNIEnv pointer is not available, such as in a C 
callback (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125250">125250</a>).  The reason is that FindClass, in this case, uses the application
class loader to find the class.
If the desired class is in the classpath used for the application classloader
(e.g. defined by the VM argument -cp &lt;classpath&gt;), as it would typically be in 
a stand-alone application, there is no problem.  However, under
Eclipse, the application classloader does not have access to classes 
contained in plug-ins.  Eclipse uses its own class loader to find classes 
contained in plug-ins.
</p>
<p>
The proper plug-in class loader is used by FindClass in JNI functions which are 
passed the JNIEnv pointer, but not when you have to use AttachCurrentThread to get the 
JNIEnv pointer.  In this case the application classloader is used.
</p>
<p>
For example, the following will fail because AttachCurrentThread is used to 
get the JNIEnv pointer:
<pre>
static JavaVM* jvm;  // Global variable

void myCallback(void) {
    JNIEnv* env;
    jvm->AttachCurrentThread((void**)&amp;env, NULL);
    // Fails if some/class is not in the application classloader:
    jclass cls = env->FindClass(&quot;some/class&quot;);
    jmethodID methodID = env->GetMethodID(cls, &quot;methodName&quot;,
      &quot;(Ljava/lang/String;)V or whatever signature&quot;);
    env->CallVoidMethod(callback, methodID, ...);
    jvm->DetachCurrentThread();
  }
}
</pre>
<p>
A solution is to cache the method ID, for example:
</p>
<pre>
static jmethodID mid;  // Global variable

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {
...
  // Store the JavaVM pointer
    jvm = vm;

  // Find the class and store the method ID
  // Will use the class loader that loaded the JNI library
    jclass cls = env->FindClass(className&quot;some/class&quot;);
    if(!cls) goto ERR;

    mid = env->GetMethodID(cls, &quot;methodName&quot;,
      &quot;(Ljava/lang/String;)V or whatever signature&quot;);
    if(!mid) goto ERR;
...
}

void myCallback(void) {
    JNIEnv* env;
    jvm->AttachCurrentThread((void**)&amp;env, NULL);
    env->CallVoidMethod(callback, mid, ...);
     // Handle error ...
    jvm->DetachCurrentThread();
  }
}
</pre>


<h3>3.1.2 <a name="I-Platform-Ant">Platform - Ant</a></h3>
<h4>UTF-8 encoded buildfiles with Byte Order Mark</h4>
<p>UTF-8 encoded buildfiles with byte order marks will fail to be parsed correctly depending on the XML parser being used for the build. Therefore a valid buildfile will fail to build with an error message similar to: "BUILD FAILED: C:\workspace\bom.xml:1: Document root element is missing.". To succeed in building with these files, ensure to include Xerces jars on the Ant runtime classpath so that the Xerces parser is used to parse the XML. As well the context menu for these files in the Navigator or Package Explorer will not have the run shortcuts for Ant builds. (bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67048">67048</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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34466">34466</a>).</p>

<h4> Concurrent Ant builds not supported</h4>
<p>Eclipse can run 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 in the same JVM. (bug <a href="https://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="https://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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=21748">21748</a>)</p>
<h4>&quot;version&quot; property is always set when running Ant in the same VM as Eclipse</h4>
<p>The Xalan libraries set system properties including a version property. These get set as properties within the Ant build and therefore the "version" property cannot be set within an Ant buildfile due to the immutable nature of Ant properties. This property will always be set to "2.4.1" for Ant builds in the same VM as Eclipse. (bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45717">45717</a>)</p>
<h4>XDoclet support from within Eclipse</h4>

<p>Since there are differences when running Ant from the commandline and within Eclipse, some extra steps may be needed to have XDoclet support function correctly within Eclipse. Problems may occur creating XDoclet subtasks. The workarounds and full discussion can be found in bug report. (bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37070">37070</a>)</p>
<h4>Ant Editor code completion based on Ant 1.6.1</h4>
<p>Code completion provided by the Ant editor does not respect the user-specified version of org.eclipse.ant.core plug-in or ANT_HOME. Code completion proposals are mostly based on Ant 1.6.1 with some updates to Ant 1.6.5 (bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=30886">30886</a>)</p>
<h4> Eclipse can hang due to implementation of the Ant &lt;property> task (Windows 9X
only)</h4>
<p>On Windows 9X, using:&lt;property environment="env"/> will cause Eclipse to hang if the build occurs in the same VM as Eclipse. Running the build in a separate VM will hang the build but not Eclipse.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44196">44196</a>)</p>

<h4> Setting build loggers not supported when debugging Ant builds</h4>
<p>When debugging Ant builds within Eclipse, setting -logger as a program argument will be ignored.</p>

<h4>Renaming an External Tool builder set to run during auto-build will cause errors</h4>
<p>If you rename an existing external tool builder that is configured to run during auto-builds, you will get the following error:
 Errors during build.
      Errors running builder "Integrated External Tool Builder" on project
      &lt;PROJECT_NAME&gt;.
      The builder launch configuration could not be found.
The workaround is to first disable the builder for auto-builds and then rename the builder.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118294">118294</a>)</p>

<h4>Slow typing/saving of the Ant editor with imports that define numerous macrodefs</h4>
<p>The Ant editor is slow on saving with buildfiles that have &lt;import&gt; declarations of buildfiles that have numerous &lt;macrodef&gt;s.
See bugs <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=92640">92640</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125117">125117</a> for possible workarounds</p>

<h3>3.1.3 <a name="I-Platform-User-Assistance">Platform - User Assistance</a></h3>
<h4>Welcome page not displayed properly (Linux/Unix)</h4>
<p>The default Welcome implementation is HTML-based and requires a supported browser
in order to work. If no supported browser can be found, Welcome falls back to its
Forms-based implementation, which has a different (simpler) appearance. Consult the
<a href="http://www.eclipse.org/swt/faq.php#browserplatforms">SWT FAQ</a> for supported
browsers and setting up your browser to work with eclipse.
</p>

<h4>Help browser tool bar buttons do not work for some documents</h4>
<p>The Help browser's Print, Synchronize, and Bookmark buttons do not work for
pages that are not actually installed with the product. However, you can always
use the print command in the browser's context menu to print the page you're
reading. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44216">44216</a>)</p>
<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>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>If you use a proxy server, ensure that the &quot;Bypass proxy server
      for local addresses&quot; is selected.
    <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>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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=7036">7036</a>,
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=9418">9418</a>, <a href="https://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="https://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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=28609">28609</a>)</p>
<h4>Help browser displays a blank page</h4>

<p>If you see a help launched with a blank page, and no errors displayed, it can
be caused by a conflict between libraries in org.eclipse.tomcat plug-in and jars
optionally installed in JRE jre/lib/ext directory. To fix the problem, ensure
that the JRE used for running Eclipse does not contain any J2EE or Apache jars
in the jre/lib/ext directory. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63970">63970</a>)</p>

<h3>3.1.4 <a name="I-Platform-UI">Platform - UI</a></h3>
<h4>High contrast settings</h4>
<p>Eclipse was tested for High Contrast using 1152 x 864 resolution in Windows
XP High Contrast mode. You can select this mode by selecting Accessibility
Options &gt; Display &gt; Use High Contrast from the Windows XP Control Panel
menu.</p>
<h4>Default text file encoding
may be detected incorrectly (Windows XP/2000 only)</h4>

<p><strong>Note</strong>: the bug report associated with this problem has been fixed. If you run Eclipse with JDK 1.5 or greater you should not have to use the workaround stated below any longer. However, the problem still exists when running Eclipse with JDK 1.4.x or lower, so in this case  the workaround is still required . </p>
<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>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>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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=20641">20641</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="https://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>
<h4> Extension Point 'org.eclipse.ui.menus' is only partially implemented</h4>
<p>The only parts of this extension point that are implemented are those
areas related to contributing 'trim'. You can contruibute bars and widgets
of type 'trim' and groups placed within 'trim' bars but all other contributions
will be treated as NO-OPs.</p>

<h3>3.1.5 <a name="I-Platform-Text">Platform - Text</a></h3>
<h4>Text editors does not show vertical ruler for external files</h4>
<p>A text editor opened on a file external to the workspace does not show a vertical ruler.
So if you set breakpoints in the file, you won't see the breakpoints in the
editor (the breakpoints only show up in the Breakpoints view). (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54900">54900</a>)</p>

<h3>3.1.6 <a name="I-Platform-SWT">Platform - SWT</a></h3>
<h4>Using XULRunner with the SWT Browser widget</h4>
<p>When using XULRunner as the Browser GRE on Linux, the Browser can crash if it is 
disposed within a callback from the Browser (eg.- StatusTextEvent, TitleEvent, etc.).  
The workaround is to put the dispose() invocation within a Display.asyncExec() block
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=151439">151439</a>).
</p>

<h4>Unresponsive certificate dialog</h4>
<p>When a certificate confirmation dialog is shown in the SWT browser widget on 
Linux, it can only be closed by pressing the dialog's title bar close button
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=166956">166956</a>).
</p>

<h4>Eclipse plug-in based on the SWT Browser throws exception</h4>
<p>The SWT Browser widget uses a platform-specific web browser to render HTML.
The org.eclipse.swt.SWTError exception (&quot;No more handles&quot;) is thrown
on platforms that don't meet the requirements for running the Browser widget.
Supported platforms and prerequisites are listed on the SWT FAQ item <a href="http://www.eclipse.org/swt/faq.php#browserplatforms">&quot;Which
platforms support the SWT Browser?&quot;</a>.</p>

<h4>Crash when using the file dialog on Windows XP with SP2</h4>
<p>With some versions of Synergy from Telelogic, Eclipse will crash when you try to open a file 
dialog.  This is due to a problem with the CMExplorer.dll.  The workaround is to
upgrade to Synergy 6.4 (or higher) or to run <code>"regsvr32 /u CMExplorer.dll"</code> and 
reboot (note that this will disable Active CM).
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=87798">87798</a>)</p>

<h4>Internet Explorer sometimes freezes on PDF documents with Acrobat Reader 6.</h4>
<p>With Acrobat Reader 6 or 7, some users have experienced an unresponsive user 
interface for up to two minutes when closing a browser which is displaying a PDF document.
The workaround is to disable displaying PDF in the browser. In Adobe Reader
select Edit &gt; Preferences... &gt; Internet and uncheck 'Display PDF in browser'.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56184">56184</a>)</p>

<h4>Crash while editing text on Windows XP with SP2.</h4>
<p>Some users who have installed Service Pack 2 on Windows XP have experienced
crashes while using editors in Eclipse.  The workaround is to place a working version 
of Windows\System32\USP10.DLL in the Eclipse startup directory or uninstall
Service Pack 2.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56390">56390</a>)</p>

<h4>Input Method broken on Motif</h4>
<p>Some versions of RedHat Linux such as Fedora Core 3 and Enterprise Linux WS 
release 4 use a new technology called IIIM (Intranet/Internet Input Method
Framework) to replace the old XIM (X input method).   When running on these 
new systems, Eclipse will crash if you attempt to enter any DBCS character.  The 
workaround is to use a XIM based input method such as chinput.  This problem 
may be fixed in newer releases of RedHat.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=89722">89722</a>)</p>

<h4>Eclipse does not start on Linux-Motif with Xinerama and a UTF-8 locale</h4>

<p>The Linux-motif build of Eclipse does not launch properly when run on a 
computer with Xinerama (provides support for dual head monitors) and a UTF-8 
locale.  The workaround for this problem is to change the locale to a non-UTF-8 
value, or to disable Xinerama.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38843">38843</a>)
</p>

<h4>Eclipse crashes on RedHat Linux 9 with Bluecurve (GTK+ only)</h4>
<p>Users of the Bluecurve theme shipped with RedHat Linux 9 may experience problems running Eclipse.  
These problems may include crashes or reduced performance.  We recommend changing to a different theme.
(bugs <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38305">38305</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67906">67906</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37683">37683</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58738">58738</a>)</p>

<h4>Eclipse hangs when pasting from an unresponsive application (GTK only)</h4>
<p>If the application that is supplying the clipboard material is unresponsive,
the paste operation hangs Eclipse for several minutes. This situation can be
encountered when copying from an Eclipse target workbench, suspending the target
workbench at a breakpoint and pasting into the hosting Eclipse workbench. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44915">44915</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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29777">29777</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="https://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>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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=32045">32045</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.hpux.PA_RISC<br>
    chmod 555 *.sl</code></p>
  </blockquote>
</blockquote>
<p></p>
<h4> gtk_init_check and X11 socket failure when using the IBM 1.4.2 JRE (GTK only)</h4>
<p>Under RHEL 3.1 with the IBM 1.4.2 JRE and a large number
of plugins, Eclipse may fail to launch with an exception from
<tt>gtk_init_check</tt> along with this error:</p>

<pre>
_X11TransSocketOpen: socket() failed for local
_X11TransSocketOpenCOTSClient: Unable to open socket for local
</pre>
<p>A workaround is to set the environment variable <tt>JAVA_HIGH_ZIPFDS</tt> to
a value of 500 before starting Eclipse. (bug
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=106396">106396</a>)</p>

<h4>Key bindings can stop working on Debian (GTK+ only)</h4>
<p>On some versions of Debian, Eclipse key bindings may stop working.  In this context
the only way to make the key bindings work again is to restart Eclipse.
</p><p>
The problem is that a focus issue exists in GTK+ 2.6.7 and earlier, for which SWT has
a workaround.  This workaround is incompatible with the GTK+ 2.6.7 fix, so a GTK+ version
check is done at runtime to determine whether the workaround should be used or not.
However, Debian backported the GTK+ focus fix into their libgtk+2.0 (2.6.4-2) package,
so the SWT workaround and GTK+ fix are both incorrectly applied in this context.
</p><p>
To work around this problem, either get the Debian unstable version of GTK+, compile your
own GTK+, or hack SWT's Shell.gtk_realize(int) and change the version that it checks.
See SWT bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107013">107013</a>
and GTK+ bug <a href="http://bugzilla.gnome.org/show_bug.cgi?id=109246">109246</a>
for more information.</p>

<h4>Browser does not display applets on Windows and OS X</h4>
<p>The Browser widget cannot be used to display pages containing Java applets on Windows
and OS X, as a result of crashes that occur when attempting to launch a second JVM for the
applet that is in-process with the main process JVM.  The workaround for clients wishing
to display web pages with Java applets is to launch an external web browser to do so with
<code>org.eclipse.swt.program.Program</code> (see bugs
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59506">59506</a> and
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=100622">100622</a>).</p>

<h4>System hangs on Intel Mac OS X</h4>
<p>Some users reported encountering system hangs while using Eclipse on Intel-based Macs.
These hangs were traced to a problem in some versions of QuickTime, which has now been fixed.
Therefore, Eclipse users on Intel-based Macs should use Quicktime's update facilities to ensure
that their Quicktime version is at least 7.1.1. (see bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=142892">142892</a>).
</p>

<h3>3.1.7 <a name="I-Platform-Team-CVS">Platform - Team - CVS</a></h3>
<p>The following are known problems with the CVS repository provider only, and
do not apply to other repository providers. Additional information on how to use
CVS from Eclipse can be found in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-vcm-home/docs/online/cvs_features2.0/cvs-faq.html">Eclipse
CVS FAQ</a>.</p>
<h4> CVS server compatibility</h4>
<p>The CVS plug-in parses messages returned from the CVS server. If the format
of these messages is not as expected, some of the plug-in's functionality may be
missing. The CVS plug-in is compatible with all stable 1.11.X builds of the CVS
server, and should be compatible with future releases in that stream unless text
message formats change (the last tested server was 1.11.20). As for the 1.12.X
feature releases of CVS, the Eclipse CVS client has been tested with builds up
to 1.12.12. However, future releases could easily break the Eclipse CVS client.
Basic functionality, such as Checkout, Commit, and Update, should always work,
but there may be problems with more advanced commands such as Synchronizing and
Browsing the repository. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67627">67627</a>)</p>
  
<h4>SSH2 proxy settings lost upgrading to 3.2</h4>
<p>The location of the proxy settings for SSH2 connections has changed. The proxy 
  settings must be re-entered on the Team&gt;CVS&gt;Proxy Settings preference 
  page. </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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=9295">9295</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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=23575">23575</a>
and <a href="https://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="https://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="https://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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=11633">11633</a>)</p>

<h4>A disabled CVS capability may not be auto-enabled in existing workspaces</h4>
<p>New in 3.0 is the ability to disable capabilities and the CVS support in
Eclipse can be disabled. However, for backwards compatibility the CVS capability
is auto-enabled in existing workspaces that already contain CVS projects. The
auto-enabling function may not run if the team support plugin is not loaded at
startup. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66977">66977</a>)</p>
<h4>Builder output files may appear as changed</h4>
<p>When folders containing build output are shared they may get improperly
marked as dirty when build output is generated. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=50965">50965</a>)</p>

<h3>3.1.8 <a name="I-Platform-Install-Update">Platform - Install/Update</a></h3>
<h4>Manually installing features and plug-ins on a FAT file system (Windows only)</h4>

<p>When features and plug-ins are manually installed on top of an Eclipse-based
 product install located on a FAT file system that has already been run at least 
 once, the product must be explicitly restarted with -clean. That is,</p>
<pre>eclipse.exe -clean
</pre>
<p>Then, open the Help &gt; Software Updates &gt; Manage
Configuration dialog and toggle on the &quot;Show disabled features&quot; button in
its toolbar. Select the newly &quot;installed&quot; feature and press on the
&quot;Enable feature&quot; action on the right pane (or select the action from
the feature's context menu). (bugs <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=52525">52525</a>,

<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66120">66120</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67461">67461</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. Since 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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=18598">18598</a>,
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=19775">19775</a>)</p>
<h4>OSGi and run-time plug-ins cannot revert to the previous version</h4>
<p>When a feature containing the OSGi and Eclipse runtime plug-ins is updated to a
newer version, performing the Revert operation to undo the action will seemingly
work, but the OSGi and runtime plug-ins in use will still be those used prior to
the Revert. In effect, updating to a newer version of Eclipse platform is not reversible. 
All other features can be reverted without problems. 
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=74585">74585</a>)</p>

<p><B>Extension location is lost if the install path changes</B></p>
<P>A previously configured extension location may be temporarily removed if the install is moved or mounted 
under a different path. This only happens when the link file that configures the 
extension location uses a relative path that points to a directory under the Eclipse 
install. On a second startup using the same install path, the extension location 
is added again (bug <A HREF="https://bugs.eclipse.org/bugs/show_bug.cgi?id=95403">95403</A>). <BR></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>Searching for constant field references</h4>
<p>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 byte codes, leaving no trace of a field reference.&nbsp;(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=12044">12044</a>)</p>

<h4>Classpath entry denoting external class folder is now properly rejected</h4>
<p>Although external class folders (i.e., folder containing .class files and located
outside workspace) were never properly supported by the JDT, a problem was never
reported
when constructing such a build path. JDT now properly diagnoses a problem in
this situation. In order to still benefit from external .class files, a
class folder must be mounted as a linked folder in Eclipse workspace (in project
properties, select Java Build Path &gt; Libraries &gt; Add Class Folder &gt; Create
New Folder... &gt; Advanced. Then a folder name can be associated with an
arbitrary file system location by checking &quot;Link to folder on the file
system). Once mounted, the linked class folder can normally be referenced on a
build path, and from there on programs can be compiled against it. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67631">67631</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="https://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>Applying 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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35395">35395</a>)</p>

<h4>Every word is marked as having been misspelt when spell check is enabled</h4>
<p>This happens because out of the box no dictionary is provided. The dictionary file is a simple
list of words. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=68357">68357</a>)</p>

<h4>Content assist shows no proposals if completion proposal categories disabled</h4>
<p>A third party plug-in may modify the set of enabled completion proposal categories which
can result in broken content assist if the workspace is started without said plug-in. To restore the original behavior,
click "Restore Defaults" on the <strong>Java&nbsp;&gt;&nbsp;Editor&nbsp;&gt;&nbsp;Content&nbsp;Assist&nbsp;&gt;&nbsp;Advanced</strong>
preference page. See also a <A HREF="http://www.eclipse.org/mylar/doc/faq.php#content-assist">corresponding entry in the Mylar FAQ</A>. (bug <A HREF="https://bugs.eclipse.org/bugs/show_bug.cgi?id=161372">161372</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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=32215">32215</a>)</p>

<h4>Side effects of Step into Selection and Run to Line</h4>
<p>The actions &quot;Step into Selection&quot; and &quot;Run to Line&quot;
optimistically set breakpoints on the line the user has chosen to step into or
run to. However, the debugger can not determine if or when execution will ever
reach the chosen line. The breakpoints set by the underlying implementation are
not visible to the user and can cause execution to suspend unexpectedly at a
later time, when the associated line is actually executed. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51507">51507</a>)</p>
<h4>Default locale initialization incorrect</h4>
<p>The default locale is generally initialized from the settings in the
operating system when a target VM is launched. However, when using javaw.exe on
JDK1.4.2, Windows XP, the default locale is incorrectly initialized to en_US, no
matter what the operating system settings are. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65945">65945</a>)</p>
<h4>Debugging on MacOS requires manual change to eclipse.ini</h4>
<p>In order for the Eclipse Java debugger to use its own JDI implementation, the 
  boot path of Eclipse must be modified. This requires editing the <code>eclipse.ini</code> 
  file to reference the correct version of the Java debug plug-in's JDI jar. The 
  correct version for 3.2.2 is <code>org.eclipse.jdt.debug_3.2.2.r322_v20070130/jdi.jar</code>. 
  An updated version of the <code>eclipse.ini</code> file can be found on bug 
  <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=174804">174804</a>.</p>
<h4>Suspend on uncaught exception overrides exception breakpoint location filters</h4>
<p>Exception breakpoints can be configured with location filters (inclusive and 
  exclusive). When an unchecked exception is configured to <b>not</b> suspend 
  execution in a specific class, execution will still suspend when the user preference 
  to suspend on uncaught exceptions is on. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66770">66770</a>)</p>

<h4>Debugger cannot connect when Eclipse runs on IBM JRE 5.0</h4>
<p>When Eclipse is running on IBM JRE 5.0, the debugger cannot connect to other 
  VMs for the purpose of debugging. The IBM JRE 5.0 prepends its bin directory 
  to the system path such that the other VMs do not find their required compatible 
  libraries required for debugging. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=128605">128605</a>) 
</p>
<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="https://bugs.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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=32206">32206</a>)</p>
<h4>Cannot detect installed JRE with GB18030 characters in path name</h4>
<p>Automatic JRE detection fails when the JRE is stored in a directory
containing GB18030 characters in its name. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=33844">33844</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="https://bugs.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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34440">34440</a>)</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> Using Hot Code Replace</h4>
<p>Hot code replace is supported on JDK 1.4.x VMs, and IBM J9 VMs. The debugger
will attempt to replace all class files that change in the workspace as the user
edits and builds source code. However, hot code replace is limited to changes
that a particular virtual machine implementation supports. For example, changes
within existing methods may be supported, but the addition or removal of members
may not be.</p>
<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, and later.</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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=1631">1631</a>)


<h4> Memory View (Linux only)</h4>
The feature to automatically load segments of memory while scrolling in the Memory
view does not work on Linux. Instead the user must use the &quot;Next Page&quot; and &quot;Previous Page&quot; actions
to manually load memory segments (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=74559">74559</a>)

<h4> Debug response slow on Linux (Linux only)</h4>
Debugging Java applications can be slow on Linux due to the combination of kernel and JVM
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=153458">153458</a>). The workaround is
to fallback to an older kernel - 2.6.14 or earlier, or to use the latest 1.5 or 1.6 JVM with newer kernels.

<h3>3.3 <a name="I-PDE">Plug-in Development Environment (PDE)</a></h3>
<h4>Feature manifest editor does not preserve all comments</h4>

<p>When a non-source page of the feature manifest editor is used, PDE will convert
changes back into XML by regenerating the file. Although the overall content and
most of the comments are preserved, some comments may be lost. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59502">59502</a>)</p>
<h4>Paste does not work in table viewers of the plug-in manifest editor</h4>
<p>When you copy an item in one of the table viewers on the Dependencies,
Extensions or Extension Points pages of the plug-in manifest editor, you will
not be able to paste it. For copy and paste operations, use the source page of
the editor. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67582">67582</a>)</p>
<h4>PDE will not unzip source zips of some plug-ins</h4>
<p>In the plug-in import wizard, when you choose to import plug-ins as
&quot;projects with source folders&quot;, PDE will not unzip the source for the
org.apache.ant, org.eclipse.core.runtime.compatibility.registry, org.eclipse.osgi.util and org.eclipse.osgi.services. This is
because the source ZIPs contains code that will not compile when unzipped as it
requires additional JARs that are not part of the SDK. To avoid the creation of
plug-in projects that won't compile, PDE will import these plug-ins as binary
and attach source, so you would still be able to read the source, you just won't
be able to modify it. Also, PDE will not unzip the source for the
org.eclipse.swt plug-ins. In this case, it is because, when shipped, the swt
code is spread across a plug-in and a fragment, and when unzipped, it will
require circular dependencies between the plug-in and fragment projects. These
circular dependencies are at minimum marked as warnings by the JDT compiler and
may result in unpredictable build behavior. Therefore, PDE always imports
org.eclipse.swt as binary with source attached. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66314">66314</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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=19482">19482</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="https://bugs.eclipse.org/bugs/show_bug.cgi?id=18500">18500</a>)</p>
<h4>Export of plug-in may silently drop classes</h4>
<p>When exporting a plug-in using the plug-in, feature or product wizards, some classes
might be dropped from the resulting archive if their fully qualified name is too long.
This typical path limitation can be worked around by creating the jar of the problematic
plug-in by using the Jar export wizard.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=97150">97150</a>)</p>

<h4>Compilation errors when exporting projects not stored outside of the workspace</h4>
<p>When exporting multiple plug-ins and one is stored outside of the workspace,
compile errors occurs on export. To work around the problem, you can either export
the plug-ins one by one, or change their location.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=98579">98579</a>)</p>

<h4>Headless build needs to be run from a fully qualified path</h4>
<p>When running a headless build using the scripts provided by pde build, the properties <code>builder</code> 
and <code>buildDirectory</code> must refer to a fully qualified path.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=139554">139554</a>)
</p>

<h2>4. <a name="Running Eclipse">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 1.4.2
JRE, not included with the Eclipse SDK). On Windows, the executable file is called <samp>eclipse.exe</samp>,
and is located in the <code>eclipse</code> sub-directory of the install. If
installed at <code>c:\eclipse-SDK-3.2-win32</code>, the executable is <code>c:\eclipse-SDK-3.2-win32\eclipse\eclipse.exe</code>.

<b>Note:</b> Set-up on most other operating environments is analogous. Special
instructions for Mac OS X are listed <a href="#macosx">below</a>.</p>

<h3>Allocating enough memory and solving OutOfMemoryErrors</h3>
<p>By default, Eclipse will allocate up to 256 megabytes of Java heap memory. This should
be ample for all typical development tasks. However, depending on the JRE
that you are running, the number of additional plug-ins you are using, and
the number of files you will be working with, you could conceivably have to increase this amount. 
Eclipse allows you to pass arguments directly to the Java VM using the
<code>-vmargs</code> command line argument, which must follow all other Eclipse specific arguments.
Thus, to increase the available heap memory, you would typically use:</p>
<blockquote>
  <p><code>eclipse -vmargs -Xmx&lt;memory size&gt;</code></p>
</blockquote>
<p>with the <code>&lt;memory size&gt;</code> value set to greater than
&quot;256M&quot; (256 megabytes -- the default). 
</p>
<p>
When using a Sun VM, you may also need to increase the size of the permanent
generation memory.  The default maximum is 64 megabytes, but more may
be needed depending on your plug-in configuration and use.  The maximum
permanent generation size is increased using the -XX:MaxPermSize=&lt;memory size&gt; argument:
<blockquote>
  <p><code>eclipse -vmargs -XX:MaxPermSize=&lt;memory size&gt;</code></p>
</blockquote>
This argument may not be available for all VM versions and platforms; consult your VM documentation
for more details.
<p></p>
<p>
Note that setting memory sizes to be larger than the amount of available physical
memory on your machine will cause Java to &quot;thrash&quot; as it copies objects
back and forth to virtual memory, which will severely degrade your performance.
</p>
<h3>Selecting a workspace</h3>
<p>When the Workbench is launched, the first thing you see is a 
dialog that allows you to select where the workspace will be located. The
workspace is the directory where your work will be stored.
If you do not specify otherwise, Eclipse creates the workspace in your
user directory.
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
dialog (or via the &quot;<code>-data</code>&quot; command line argument).</p>
<p>Here is a typical Eclipse command line:&nbsp;</p>

<blockquote>
  <p><code>eclipse -vm c:\jdk1.4.2\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:</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 command line arguments.
</ol>
<p>Opening this shortcut launches Eclipse. (You can drag the shortcut to the 
Windows Desktop if you want to keep it in easy reach.)</p>

<h3><a name="macosx">Mac OS X</a></h3>
<p>On Mac OS X, you start Eclipse by double clicking the Eclipse application. If you need to 
pass arguments to Eclipse, you'll have to edit the <code>eclipse.ini</code> file
inside the Eclipse application bundle: select the Eclipse application bundle icon while holding down the Control Key.
This will present you with a popup menu. Select &quot;Show Package Contents&quot; in the popup menu.
Locate <code>eclipse.ini</code> file in the <code>Contents/MacOS</code> sub-folder and open it with your favorite text editor to edit the command line options.
</p>

<p>
On MacOS X you can only launch a UI program more then once if you have separate
copies of the program on disk. The reason for this behavior is that every UI
application on Mac can open multiple documents, so typically there is no need
to open a program twice. Since Eclipse cannot open more than one workspace, this means you have to make
a copy of the Eclipse install if you want to open more then one workspace at
the same time (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=139319">139319</a>).
</p>

<p>If you need to launch Eclipse from the command line, you can use the symbolic link &quot;eclipse&quot; in the
top-level eclipse folder. It refers to the eclipse executable inside the application bundle and takes
the same arguments as &quot;eclipse.exe&quot; on other platforms. 
</p>
<p>On Mac OS X 10.4 and later, you may notice a slow down when working with significant
numbers of resources if you allow Spotlight to index your workspace. To prevent this, start
System Preferences, select the Spotlight icon, then the Privacy tab, then click the Add button
(&quot;+&quot;) and find your workspace directory in the dialog that appears.</p>
<h3><a name="SharedInstall">Shared Install</a></h3>
<p>The startup speed of a shared install can be improved if proper cache information is stored in the shared 
install area. To achieve this, after unzipping Eclipse distribution, run Eclipse once with the &quot;-initialize&quot; 
option from an account that has a write access to the install directory.</p>
<h2>5. <a name="Upgrading"></a>Upgrading Workspace from a Previous Release</h2>

<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 sub-directory 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 sub-directory
    called &quot;workspace&quot;. For Windows users, this is specified by the
    &quot;Start in:&quot; 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>If you had installed additional features and plug-ins into your old
    Eclipse, you should re-install them in the new Eclipse.</li>
  <li>Start this new version of Eclipse and select
    this location using the workspace chooser dialog at startup (or use &quot;<code>-data</code>&quot;
    command line argument to pre-select the workspace location).</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>Optionally copy your workspace directory to a new, empty location outside of any
    Eclipse install directory as a backup.</li>
  <li>Install the new version of Eclipse in a new location, separate from any
    old versions of Eclipse.</li>
  <li>If you had installed additional features and plug-ins into your old
    Eclipse, you should re-install them in the new Eclipse.</li>
  <li>Start this new version of Eclipse and select this location using the workspace chooser dialog at
    startup (or use &quot;<code>-data</code>&quot;
    command line argument to pre-select the workspace location).</li>
</ol>
<p><i>Note:</i> Copying your workspace is recommended because,
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 will need that backup.</p>


<h2>6. <a name="Interoperability with Previous Releases">Interoperability with
Previous Releases</a></h2>
<h3>6.1 Interoperability of Release 3.2 and 3.1</h3>
<h4>Sharing projects between heterogeneous Eclipse 3.2 and 3.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 3.2
while others are working in Eclipse 3.1, 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 3.2 user. 3.2 metadata is lost
when a 3.1 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 3.2 creates or modifies a project in a way that
    results in changes to a shared metadata file that rely on 3.2-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 3.1 shares this project from the same
    repository. The 3.2-specific information in the shared metadata file is not
    understood by Eclipse 3.1, 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 3.2-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 3.2 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 some things to watch out for when sharing projects between
Eclipse 3.2 and 3.1:</p>
<ul>
  <li><b>Linked resources in the .project file</b><br>
  Eclipse 3.2 supports creating linked resources at arbitrary depth within a project,
  and supports creating linked resources referring to other file systems. Neither of
  these scenarios are supported in Eclipse 3.1 or earlier.  If such linked resources
  are created in 3.2, and the project is subsequently loaded into an Eclipse 3.1
  or earlier workspace, these links will not be recognized.  Recommendation:
  avoid creating links at arbitrary depth or to other file systems where project
  compatibility with Eclipse 3.1 or earlier is required.</li>
</ul>
<h4>Using Eclipse 3.2 to develop plug-ins that work in Eclipse 3.1</h4>
<p>It is also possible (and reasonable) to use Eclipse 3.2 to develop a plug-in 
  intended to work in Eclipse 3.1 or earlier. Use the <b>Plug-in Development &gt; 
  Target Platform </b>preference page to locate non-workspace plug-ins in an Eclipse 
  3.1 install. This ensures that the code for your plug-in is being compiled and 
  tested against Eclipse 3.1 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 3.2.2 since 3.2.1</h3>
<p>Release 3.2.2 is a maintenance release to fix serious defects present in
release 3.2.1 These changes only affect some plug-ins and
features. Modified plug-ins have version id &quot;3.2.2&quot;; or higher; plug-ins
unchanged since the 3.2 release still have version id &quot;3.2.0&quot;; Note, however, features will have 
their versions incremented if at one or more of the plugins they contain have incremented their versions. </p>
<p>Maintenance release 3.2.2 contains fixes for the following defects and others:</p>
<p></p>
<table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
    <colgroup>
      <col class="bz_id_column">
      <col class="bz_short_short_desc_column">
    </colgroup>

    <tr align="left">
      <th colspan="1" class="first-child">
          <a href="buglist.cgi?bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_id=&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;bugidtype=include&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;classification=Eclipse&amp;email1=&amp;email2=&amp;emailtype1=substring&amp;emailtype2=substring&amp;field-1-0-0=bug_status&amp;field-1-1-0=classification&amp;field-1-2-0=product&amp;field-1-3-0=resolution&amp;field-1-4-0=target_milestone&amp;field0-0-0=noop&amp;keywords=&amp;keywords_type=allwords&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;product=Equinox&amp;product=JDT&amp;product=PDE&amp;product=Platform&amp;query_format=advanced&amp;remaction=&amp;resolution=FIXED&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;status_whiteboard=&amp;status_whiteboard_type=allwordssubstr&amp;target_milestone=3.2.2&amp;target_milestone=3.2.2&amp;type-1-0-0=anyexact&amp;type-1-1-0=anyexact&amp;type-1-2-0=anyexact&amp;type-1-3-0=anyexact&amp;type-1-4-0=anyexact&amp;type0-0-0=noop&amp;value-1-0-0=RESOLVED%2CVERIFIED%2CCLOSED&amp;value-1-1-0=Eclipse&amp;value-1-2-0=Equinox%2CJDT%2CPDE%2CPlatform&amp;value-1-3-0=FIXED&amp;value-1-4-0=3.2.2%2C3.2.2&amp;value0-0-0=%7C&amp;votes=&amp;order=bugs.bug_id&amp;query_based_on=">ID</a>
      </th>

<th colspan="1">
        
      <a href="buglist.cgi?bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_id=&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;bugidtype=include&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;classification=Eclipse&amp;email1=&amp;email2=&amp;emailtype1=substring&amp;emailtype2=substring&amp;field-1-0-0=bug_status&amp;field-1-1-0=classification&amp;field-1-2-0=product&amp;field-1-3-0=resolution&amp;field-1-4-0=target_milestone&amp;field0-0-0=noop&amp;keywords=&amp;keywords_type=allwords&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;product=Equinox&amp;product=JDT&amp;product=PDE&amp;product=Platform&amp;query_format=advanced&amp;remaction=&amp;resolution=FIXED&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;status_whiteboard=&amp;status_whiteboard_type=allwordssubstr&amp;target_milestone=3.2.2&amp;target_milestone=3.2.2&amp;type-1-0-0=anyexact&amp;type-1-1-0=anyexact&amp;type-1-2-0=anyexact&amp;type-1-3-0=anyexact&amp;type-1-4-0=anyexact&amp;type0-0-0=noop&amp;value-1-0-0=RESOLVED%2CVERIFIED%2CCLOSED&amp;value-1-1-0=Eclipse&amp;value-1-2-0=Equinox%2CJDT%2CPDE%2CPlatform&amp;value-1-3-0=FIXED&amp;value-1-4-0=3.2.2%2C3.2.2&amp;value0-0-0=%7C&amp;votes=&amp;order=bugs.short_desc%2Cbugs.bug_id&amp;query_based_on=">Summary</a>
  </th>


    </tr>

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56780">56780</a>
      <span style="display: none"></span>
    </td>

    <td >StyledText - Occasionally wrong ordering of multiline bid...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84169">84169</a>
      <span style="display: none"></span>
    </td>

    <td >!MESSAGE Waiting... : org.eclipse.update.configurator 499...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99738">99738</a>
      <span style="display: none"></span>
    </td>

    <td >[formatting] each format shifts code inside &lt;pre&gt; one spa...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=104022">104022</a>
      <span style="display: none"></span>
    </td>

    <td >[spell checking] spell checking with IBM VM doesn`t work ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=104779">104779</a>
      <span style="display: none"></span>
    </td>

    <td >ScrollBar SelectionEvent detail field not being set corre...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=107086">107086</a>
      <span style="display: none"></span>
    </td>

    <td >[EditorMgmt] &quot;show list&quot; does not display long name file ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=114349">114349</a>
      <span style="display: none"></span>
    </td>

    <td >[compiler] Problems building cyclical projects
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=123261">123261</a>
      <span style="display: none"></span>
    </td>

    <td >PlatformURLResourceConnection cannot handler normalized URI
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=128212">128212</a>
      <span style="display: none"></span>
    </td>

    <td >Tooltips appear off right edge of screen
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=139711">139711</a>
      <span style="display: none"></span>
    </td>

    <td >Eclipse loses keyboard shortcuts on OSX
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=141931">141931</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] @Override: upcoming changes of the refere... 
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=145013">145013</a>
      <span style="display: none"></span>
    </td>

    <td >[History View] Compare with local history is broken due t...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=145988">145988</a>
      <span style="display: none"></span>
    </td>

    <td >[ICU Plugin] Import-Package resolving packages in wrong b...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=146402">146402</a>
      <span style="display: none"></span>
    </td>

    <td >Content assist popup shows ellipsis for selected item on ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=146869">146869</a>
      <span style="display: none"></span>
    </td>

    <td >&quot;optional&quot; not really working?
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148291">148291</a>
      <span style="display: none"></span>
    </td>

    <td >[Help] Internal Error (HTTP Status 500) when searched for...
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148675">148675</a>
      <span style="display: none"></span>
    </td>

    <td >Callisto mirror update sites causes error when selecting WTP
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148954">148954</a>
      <span style="display: none"></span>
    </td>

    <td >[search] FindImplementorsAction fills log with newNotPres...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149300">149300</a>
      <span style="display: none"></span>
    </td>

    <td >Unable to install new plugins on Vista Beta 2
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149633">149633</a>
      <span style="display: none"></span>
    </td>

    <td >[implementation] AssertionFailedError in DocumentLineDiff...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149751">149751</a>
      <span style="display: none"></span>
    </td>

    <td >Enum-valued annotation element handles non-enum constant ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=150289">150289</a>
      <span style="display: none"></span>
    </td>

    <td >[hierarchy] NPE in hierarchy builder when region is empty
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=150810">150810</a>
      <span style="display: none"></span>
    </td>

    <td >[Sync View] ConcurrentModificationException in CompoundRe...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=152176">152176</a>
      <span style="display: none"></span>
    </td>

    <td >[quick fix] Request to recognize J9 executable as Java ex...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=152397">152397</a>
      <span style="display: none"></span>
    </td>

    <td >[typing] java.lang.IllegalArgumentException: Index out of...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=152583">152583</a>
      <span style="display: none"></span>
    </td>

    <td >Use proceed label and button id for compile error prompt
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P2             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=153033">153033</a>
      <span style="display: none"></span>
    </td>

    <td >[implementation] Stabilize the BracketInserterTest
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=154735">154735</a>
      <span style="display: none"></span>
    </td>

    <td >[refactoring scripts] Refactoring History Property page s...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=154993">154993</a>
      <span style="display: none"></span>
    </td>

    <td >org.eclipse.jdt.ui.JavaNoTypeCompletionProposalComputer t...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=155115">155115</a>
      <span style="display: none"></span>
    </td>

    <td >UnresolvedReferenceBindings surfacing through DOM AST
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=155255">155255</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] ternary conditional operator returns wron...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=155650">155650</a>
      <span style="display: none"></span>
    </td>

    <td >[Preferences] Accessibility: Tab can't access to the &quot;For...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=155685">155685</a>
      <span style="display: none"></span>
    </td>

    <td >[expressions] allowForcePluginLoad not passed to new context
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=155996">155996</a>
      <span style="display: none"></span>
    </td>

    <td >Old version of installed bundle gets loaded (was: Linkage...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=156410">156410</a>
      <span style="display: none"></span>
    </td>

    <td >[Workbench] [RCP] SaveAllEditors ArrayIndexOutofBoundsExc...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=156591">156591</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] constant-specific methods in enum cannot ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=156873">156873</a>
      <span style="display: none"></span>
    </td>

    <td >Refreshing bundle with native library causes a library lo...
    </td>

  </tr>

  


  

  <tr class="bz_blocker             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=157333">157333</a>
      <span style="display: none"></span>
    </td>

    <td >calling delete on enum constant deletes entire Enum
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=157336">157336</a>
      <span style="display: none"></span>
    </td>

    <td >build output contains unnecessary empty directories
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=157635">157635</a>
      <span style="display: none"></span>
    </td>

    <td >BIDI:StyledText Selection of text, and BIDI formating not...
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=158175">158175</a>
      <span style="display: none"></span>
    </td>

    <td >Java core [WM_BUTTONDOWN] when selecting a tree in Vista
    </td>

  </tr>

  


  

  <tr class="bz_minor             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=158232">158232</a>
      <span style="display: none"></span>
    </td>

    <td >'Terminate and relaunch' action is enabled for non-relaun...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=158860">158860</a>
      <span style="display: none"></span>
    </td>

    <td >[Intro] Dynamic content loses correct page ID with Back/F...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=158982">158982</a>
      <span style="display: none"></span>
    </td>

    <td >Table Headers getting random images on Vista
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159021">159021</a>
      <span style="display: none"></span>
    </td>

    <td >[compiler] Unused locals initialisation is optimized out ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159245">159245</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] Missing raw type usage warning for array ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159250">159250</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] Should better locate raw type usage for a...
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159325">159325</a>
      <span style="display: none"></span>
    </td>

    <td >[classpath] Util.getJDKLevel reading a lot of classpath j...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159366">159366</a>
      <span style="display: none"></span>
    </td>

    <td >HttpService &amp; Port 0, doesn't update service property cor...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159459">159459</a>
      <span style="display: none"></span>
    </td>

    <td >Move eclipse.org site to bottom of mirrors list if using ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159629">159629</a>
      <span style="display: none"></span>
    </td>

    <td >Request to allow profile selection from a profile in osgi...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159631">159631</a>
      <span style="display: none"></span>
    </td>

    <td >[dom] NPE while trying to cleanup specific pair of file
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159641">159641</a>
      <span style="display: none"></span>
    </td>

    <td >patch to refactor Main and add new &quot;GCCMain&quot; driver
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159654">159654</a>
      <span style="display: none"></span>
    </td>

    <td >[compiler] unverifiable bytecode created by current cvs h...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159699">159699</a>
      <span style="display: none"></span>
    </td>

    <td >[content assist] NPE in Content Assist when action has no...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159877">159877</a>
      <span style="display: none"></span>
    </td>

    <td >[OpenModes] Backport fix from bug 158876 to 3.2.2
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159884">159884</a>
      <span style="display: none"></span>
    </td>

    <td >In synchronize view, some changes are hidden when view is...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159973">159973</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5] [compiler] VerifyError due to compiler generating i...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160132">160132</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] Compiler fails with indirect reference er...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160500">160500</a>
      <span style="display: none"></span>
    </td>

    <td >Duplicate classpath entries
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160550">160550</a>
      <span style="display: none"></span>
    </td>

    <td >Infinite build when projects have cycle and build path er...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160637">160637</a>
      <span style="display: none"></span>
    </td>

    <td >getKey(...) for BinaryMethod returns a key with '.' in th...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160647">160647</a>
      <span style="display: none"></span>
    </td>

    <td >Table widget leaks
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160748">160748</a>
      <span style="display: none"></span>
    </td>

    <td >ConfigurationParser.parse does unbuferred I/O from disk
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160962">160962</a>
      <span style="display: none"></span>
    </td>

    <td >[nls] Breaking catalog change for batch compiler
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160969">160969</a>
      <span style="display: none"></span>
    </td>

    <td >[Help] Exception occurred while adding document xxx.xhtml...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161287">161287</a>
      <span style="display: none"></span>
    </td>

    <td >Patching a plugin causes warnings on features that look bad
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161459">161459</a>
      <span style="display: none"></span>
    </td>

    <td >9 tests in org.eclipse.jdt.core.tests.compiler.regression...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161476">161476</a>
      <span style="display: none"></span>
    </td>

    <td >org.eclipse.jdt.core.tests.compiler.regression.BatchCompi...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P2             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161483">161483</a>
      <span style="display: none"></span>
    </td>

    <td >[painting] AnnotationPainter repaints all annotations in ...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161533">161533</a>
      <span style="display: none"></span>
    </td>

    <td >JVM crash [Tree.setSelection] because SWT (Vista?) error
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161555">161555</a>
      <span style="display: none"></span>
    </td>

    <td >org.eclipse.jdt.core.tests.model.ReconcilerTests#testDele...
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161557">161557</a>
      <span style="display: none"></span>
    </td>

    <td >[assist] JavaTypeCompletionProposalComputer throws a runt...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161612">161612</a>
      <span style="display: none"></span>
    </td>

    <td >SiteOptimizer doesn't work properly for NLs
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161665">161665</a>
      <span style="display: none"></span>
    </td>

    <td >[Sync View] Remove from View not honoured when commit per...
    </td>

  </tr>

  


  

  <tr class="bz_blocker             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161830">161830</a>
      <span style="display: none"></span>
    </td>

    <td >incorrect SWT.NO_FOCUS behaviour for Shell windows on Linux
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161846">161846</a>
      <span style="display: none"></span>
    </td>

    <td >Expanding a java project with invalid classpath container...
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161976">161976</a>
      <span style="display: none"></span>
    </td>

    <td >Deadlock in MRUBundleFileList
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162097">162097</a>
      <span style="display: none"></span>
    </td>

    <td >WebStartMain crashes
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_CLOSED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162146">162146</a>
      <span style="display: none"></span>
    </td>

    <td >[Browser] Appending to stream hangs the SWT Browser
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162296">162296</a>
      <span style="display: none"></span>
    </td>

    <td >[compiler] Anonymous and local classes are tagged as fina...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162366">162366</a>
      <span style="display: none"></span>
    </td>

    <td >org.eclipse.jdt.debug.tests.testSimpleStepFilter/testInac...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162368">162368</a>
      <span style="display: none"></span>
    </td>

    <td >Include JRockit-internal classes in the default step filters
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162400">162400</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] Return type inference does not perform we...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162478">162478</a>
      <span style="display: none"></span>
    </td>

    <td >NPE in MethodBinding#signature
    </td>

  </tr>

  


  

  <tr class="bz_blocker             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162598">162598</a>
      <span style="display: none"></span>
    </td>

    <td >Multiple JVM terminations
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162621">162621</a>
      <span style="display: none"></span>
    </td>

    <td >[model][delta] Validation errors do not clear after repla...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162935">162935</a>
      <span style="display: none"></span>
    </td>

    <td >BundleDescription leak in UserState
    </td>

  </tr>

  


  

  <tr class="bz_blocker             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162991">162991</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] Name clash reported for (correct) eclipse...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163082">163082</a>
      <span style="display: none"></span>
    </td>

    <td >Add Memory Rendering Dialog should listen for Memory Rend...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163106">163106</a>
      <span style="display: none"></span>
    </td>

    <td >GenericDescription leak in Resolver
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163234">163234</a>
      <span style="display: none"></span>
    </td>

    <td >VersionedIdentifier equals() logic in update.configurator...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163249">163249</a>
      <span style="display: none"></span>
    </td>

    <td >ICU plug-in should export all packages
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163600">163600</a>
      <span style="display: none"></span>
    </td>

    <td >[compiler] Internal references to static inner classes fa...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163680">163680</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5] [compiler] JDT Internal Exception under import circ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163896">163896</a>
      <span style="display: none"></span>
    </td>

    <td >Failures in maintenance build M20061108-1320
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=164493">164493</a>
      <span style="display: none"></span>
    </td>

    <td >StyledText doesn't support advanced text services for Kor...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165032">165032</a>
      <span style="display: none"></span>
    </td>

    <td >Versioning error in M builds, in debug.core
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165091">165091</a>
      <span style="display: none"></span>
    </td>

    <td >Eclipse 3.2.x consistently crashes on Vista
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165291">165291</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5] Missing diagnosis for illegal forward field ref in ...
    </td>

  </tr>

  
   

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165653">165653</a>
      <span style="display: none"></span>
    </td>

    <td >An internal error occurred during: &quot;Updating Change Sets ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165781">165781</a>
      <span style="display: none"></span>
    </td>

    <td >[Memory View] Leak of memory retrieval objects
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=166113">166113</a>
      <span style="display: none"></span>
    </td>

    <td >Clicking a hyperlink in a stacktrace jumps file with same...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=166361">166361</a>
      <span style="display: none"></span>
    </td>

    <td >[SSH2] Connection is attempted to server before prompting...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=166602">166602</a>
      <span style="display: none"></span>
    </td>

    <td >[viewers] Thread not expanded on STEP_END if no previous ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=166641">166641</a>
      <span style="display: none"></span>
    </td>

    <td >[compiler] uninitialized variable not reported in if (fal...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=166817">166817</a>
      <span style="display: none"></span>
    </td>

    <td >[ICU4J plugin] Need to update ICU4J in 3.2.2 for updated ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=166852">166852</a>
      <span style="display: none"></span>
    </td>

    <td >Update Configurator reconciles platform.xml with newer fe...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=166977">166977</a>
      <span style="display: none"></span>
    </td>

    <td >[vista] Unexpected errors while running JDT/Core tests
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167016">167016</a>
      <span style="display: none"></span>
    </td>

    <td >Update Manager keeps trying to update Eclipse
    </td>

  </tr>

  


  

  <tr class="bz_minor             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167049">167049</a>
      <span style="display: none"></span>
    </td>

    <td >[build path] NPE in JavaModelUtil
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167178">167178</a>
      <span style="display: none"></span>
    </td>

    <td >Backport fix for Bug 164496 to 3.2.x
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167182">167182</a>
      <span style="display: none"></span>
    </td>

    <td >JDIDebugTarget.handleDebugEvents not using getAdapter whe...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167217">167217</a>
      <span style="display: none"></span>
    </td>

    <td >[1.5][compiler] ClassCastException during annotation code...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167411">167411</a>
      <span style="display: none"></span>
    </td>

    <td >[search] Search for references yields java.lang.NumberFor...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167750">167750</a>
      <span style="display: none"></span>
    </td>

    <td >[content assist] From some point in time Eclipse crashes ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167824">167824</a>
      <span style="display: none"></span>
    </td>

    <td >ClasspathManager calls adapor hooks with wrong bytecode
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167831">167831</a>
      <span style="display: none"></span>
    </td>

    <td >check box table images contain extra pixels
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167877">167877</a>
      <span style="display: none"></span>
    </td>

    <td >backport bug 160009 Chkpii error in latest build to 3.2.2
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167925">167925</a>
      <span style="display: none"></span>
    </td>

    <td >org.eclipse.swt.win32.win32.x86 still has 3.2.1 version n...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=167954">167954</a>
      <span style="display: none"></span>
    </td>

    <td >3.2.2 plugins that need to have version numbers updated
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=168483">168483</a>
      <span style="display: none"></span>
    </td>

    <td >On SLED10, context menu does not display on a popup shell...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=168521">168521</a>
      <span style="display: none"></span>
    </td>

    <td >NPE occurs from a currupted state cache.
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=168594">168594</a>
      <span style="display: none"></span>
    </td>

    <td >[JarProcessor] Processor can change hash of eclipse.inf
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=168665">168665</a>
      <span style="display: none"></span>
    </td>

    <td >[1.6][compiler] AIOOBE during stack map frame generation
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=169546">169546</a>
      <span style="display: none"></span>
    </td>

    <td >chkpii error in update.core for build M20070103-0800
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=169573">169573</a>
      <span style="display: none"></span>
    </td>

    <td >update feature versions to 3.2.2
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=169596">169596</a>
      <span style="display: none"></span>
    </td>

    <td >anewarray not propertly supported in 1.6
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=169608">169608</a>
      <span style="display: none"></span>
    </td>

    <td >[Use supertype] refactoring causes infinite loop with sel...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=169691">169691</a>
      <span style="display: none"></span>
    </td>

    <td >Java WebStart support is broken with J2SE 6.0
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=169712">169712</a>
      <span style="display: none"></span>
    </td>

    <td >[Launcher] Eclipse won't launch in Mac OS X 10.5
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=169744">169744</a>
      <span style="display: none"></span>
    </td>

    <td >[AST] character position range wrong for super method cal...
    </td>

  </tr>

  


  

  <tr class="bz_major             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=170192">170192</a>
      <span style="display: none"></span>
    </td>

    <td >[implementation] IllegalStateException when reading spell...
    </td>

  </tr>

  


  

  <tr class="bz_blocker             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=170443">170443</a>
      <span style="display: none"></span>
    </td>

    <td >About dialog for 3.2.2 candidate shows 3.2.1
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=170498">170498</a>
      <span style="display: none"></span>
    </td>

    <td >[CheatSheet] Cheat sheet refers to old CVS repository path
    </td>

  </tr>

  


  

  <tr class="bz_critical             bz_P2             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=170519">170519</a>
      <span style="display: none"></span>
    </td>

    <td >Step keys become disabled
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=170529">170529</a>
      <span style="display: none"></span>
    </td>

    <td >org.eclipse.platform.doc.isv plugin version number needs ...
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_even             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=170767">170767</a>
      <span style="display: none"></span>
    </td>

    <td >SecurityException is thrown from EclipseLazyStarter
    </td>

  </tr>

  


  

  <tr class="bz_normal             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">
             

    <td class="first-child">
      <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=170785">170785</a>
      <span style="display: none"></span>
    </td>

    <td >Table Headers getting random images on Vista when cycling...
    </td>

  </tr>

  
    </table>




139 bugs found.


<br>

<br>

<p>
Note: the above table was generated with the Bugzilla query: <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Eclipse&amp;product=Equinox&amp;product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=3.2.2&amp;target_milestone=3.2.2&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;resolution=FIXED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Importance&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=|">https://bugs.eclipse.org/bugs/buglist.cgi&amp;query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Eclipse&amp;product=Equinox&amp;product=JDT&amp;product=PDE&amp;product=Platform&amp;target_milestone=3.2.2&amp;target_milestone=3.2.2&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;resolution=FIXED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Importance&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=|</a>
</p>



<hr>
<p>Sun, Solaris, 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 2006</p>

<h2><a name="Appendix1">Appendix 1: Execution Environment by Plug-in</a></h2>

<p>In the table below, the "3.2 EE" ("3.2 Execution Environment") column
indicates the minimum Java class library requirements of each plug-in
for the 3.2 release, where the value is one of:</p>
<table border="0" width="90%">
  <tbody>
    <tr>
      <td width="9%" align="center"><b>Entry</b></td>
      <td width="91%" align="left"><b>Meaning</b></td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>M1.0</strong>
      </td>
      <td>OSGi Minimum Execution Environment 1.0 - This is a subset of
      the J2ME Foundation class libraries defined by OSGi to be the base
      for framework implementations. See the OSGi specification for more
      details.</td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>M1.1</strong>
      </td>
      <td>OSGi Minimum Execution Environment 1.1 - This is a
      subset of the J2ME Foundation class libraries defined by OSGi to
      be the base for framework implementations. See the OSGi
      specification for more details.</td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>F1.0</strong>
      </td>
      <td>J2ME Foundation 1.0 - indicates that the plug-in can only be
      run on Foundation 1.0 or greater. Note that with the exception of
      some MicroEdition IO classes, Foundation 1.0 is a subset of J2SE
      1.3. <em>(see note below)</em></td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>F1.1</strong>
      </td>
      <td>J2ME Foundation 1.1 - indicates that the plug-in can only be
      run on Foundation 1.1 or greater. Note that with the exception of
      some MicroEdition IO classes, Foundation 1.1 is a subset of J2SE
      1.4. <em>(see note below)</em></td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>1.2</strong>
      </td>
      <td>J2SE 1.2 - indicates that the plug-in can only be run on JSE
      1.2 or greater.</td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>1.3</strong>
      </td>
      <td>J2SE 1.3 - indicates that the plug-in can only be run on JSE
      1.3 or greater.</td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>1.4</strong>
      </td>
      <td>J2SE 1.4 - indicates that the plug-in can only be run on JSE
      1.4 or greater.</td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>1.4/1.5</strong>
      </td>
      <td>Indicates that the plug-in can run on JSE
      1.4 or greater, but provides enhanced functionality when run on J2SE 5.0.</td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>1.5</strong>
      </td>
      <td>J2SE 5.0 - indicates that the plug-in can only be run on JSE
      5.0 or greater.</td>
    </tr>
    <tr>
      <td valign="top" align="center"><strong>n/a</strong></td>
      <td>Not applicable (e.g. documentation and source plug-ins).</td>
    </tr>
  </tbody>
</table>
<br>
<b>Note:</b> Plug-ins that are Foundation 1.0 should in fact list Foundation 1.0 AND J2SE1.3 in their execution environments.  
This is because Foundation 1.0 is not a proper subset of 1.3.  Listing them both will in essence say that the intersection of the 
two is valid for use in that plug-in. The situation is the same for Foundation 1.1 and J2SE1.4.
<p>
<b>Table of minimum execution environments by plug-in.</b>
<br>
<br>
</p>
<table border="1">
  <tbody>
    <tr>
      <td width="290"><strong>Plug-in</strong></td>
      <td width="60">
      <div align="center"><strong>3.2 EE</strong></div>
      </td>
    </tr>
    <tr>
      <td>com.ibm.icu</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>com.ibm.icu.source</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.apache.ant</td>
      <td>
      <div align="center">1.2</div>
      </td>
    </tr>
    <tr>
      <td>org.apache.lucene</td>
      <td>
      <div align="center">1.3</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ant.core</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ant.ui</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.compare</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.boot</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.commands</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.contenttype</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.expressions</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.filebuffers</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.filesystem</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.jobs</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.resources</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.resources.compatibility</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.runtime</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.runtime.compatibility</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.runtime.compatibility.auth</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.runtime.compatibility.registry</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.core.variables</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.debug.core</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.debug.ui</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.common</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.preferences</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.registry</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.help</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.help.appserver</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.help.base</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.help.ui</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.help.webapp</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.apt.core</td>
      <td>
      <div align="center">1.5</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.apt.ui</td>
      <td>
      <div align="center">1.5</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.core</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.core.manipulation</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.debug</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.debug.ui</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.doc.isv</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.doc.user</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.junit</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.junit.runtime</td>
      <td>
      <div align="center">1.3</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.junit4.runtime</td>
      <td>
      <div align="center">1.5</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.launching</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.source</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.ui</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jface</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jface.databinding</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.jface.text</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ltk.core.refactoring</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ltk.ui.refactoring</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.osgi (system.bundle)</td>
      <td>
      <div align="center">M1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.osgi.services</td>
      <td>
      <div align="center">M1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.osgi.util</td>
      <td>
      <div align="center">M1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.pde</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.pde.build</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.pde.core</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.pde.doc.user</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.pde.junit.runtime</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.pde.runtime</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.pde.source</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ui</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.platform</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.platform.doc.isv</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.platform.doc.user</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.platform.source</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.platform.source.*</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.rcp</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.rcp.source</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.rcp.source.*</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.sdk</td>
      <td>
      <div align="center">n/a</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.search</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.swt</td>
      <td bgcolor="#ffffff">
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.swt.*</td>
      <td bgcolor="#ffffff">
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.team.core</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.team.cvs.core</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.team.cvs.ssh</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.team.cvs.ssh2</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.team.cvs.ui</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.team.ui</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.text</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.tomcat</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.browser</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.cheatsheets</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.console</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.editors</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.externaltools</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.forms</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.ide</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.intro</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.intro.universal</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.navigator</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.navigator.resources</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.presentations.r21</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.views</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.views.properties.tabbed</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.win32</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.workbench</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.workbench.compatibility</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.ui.workbench.texteditor</td>
      <td>
      <div align="center">1.4</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.update.configurator</td>
      <td bgcolor="#ffffff">
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.update.core</td>
      <td bgcolor="#ffffff">
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.update.core.linux</td>
      <td bgcolor="#ffffff">
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.update.core.win32</td>
      <td bgcolor="#ffffff">
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.update.scheduler</td>
      <td bgcolor="#ffffff">
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.eclipse.update.ui</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
    <tr>
      <td>org.junit</td>
      <td>
      <div align="center">1.3</div>
      </td>
    </tr>
    <tr>
      <td>org.junit4</td>
      <td>
      <div align="center">1.5</div>
      </td>
    </tr>
    <tr>
      <td>startup.jar</td>
      <td>
      <div align="center">F1.0</div>
      </td>
    </tr>
  </tbody>
</table>

</body>
</html>