<!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.5.2</title>
</head>
<body>

<h1>Eclipse Project Release Notes</h1>
<p>Release 3.5.2<br>
  Last revised April 7, 2010</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>
  <a href="#DefectsFixed">7. Defects Fixed since Previous Release</a><br>  
  </p>
</blockquote>

<h2>1. <a name="TargetOperatingEnvironments"></a>Target Operating Environments</h2>
<p>In order to remain current, each Eclipse Project release targets reasonably current
  operating environments.</p>
<p>Most of the Eclipse SDK is &quot;pure&quot; Java code and has no direct dependence
  on the underlying operating system. The chief dependence is therefore on the
  Java Platform itself. Portions 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>In general, the 3.5 release of the Eclipse Project is developed on a mix
  of Java 1.4, Java 5 and Java 6 VMs. As such, the Eclipse SDK as a whole
  is targeted at all modern, desktop Java VMs. Full functionality is available for
  1.4 level development everywhere, and extended development capabilities are made
  available on the VMs that support them.</p>
<p><a href="#Appendix1">Appendix 1</a> contains a table that indicates the class
  library level required for each bundle.</p>
<p>There are many different implementations of the Java Platform running atop
  a variety of operating systems. We focus our 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 will
  be given lower priority than problems with running Eclipse on a reference platform.</p>
<p>Eclipse 3.5 is tested and validated on the following reference platforms</p>
  

  <table border="1" cellpadding="2" cellspacing="2" width="80%" summary="Eclipse Reference Platforms">
    <tbody>
      <tr align="center">
        <td><b>Reference Platforms</b></td>
      </tr>
      <tr>
        <td><b>Microsoft Windows Vista, x86-32, Win32</b> running (any of):
          <ul>
            <li>Sun Java Standard Edition 5 Update 14 for Microsoft Windows</li>
            <li>IBM 32-bit SDK for Windows, Java 2 Technology Edition 5.0, SR6b</li>
            <li>BEA JRockit 27.4.0, for Microsoft Windows</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Microsoft Windows XP, x86-32, Win32</b> running (any of):
          <ul>
            <li>Sun Java Standard Edition 6 Update 3 for Microsoft Windows</li>
            <li>Sun Java Standard Edition 5 Update 14 for Microsoft Windows</li>
            <li>IBM 32-bit SDK for Windows, Java 2 Technology Edition 5.0, SR6b</li>
            <li>BEA JRockit 27.4.0, for Microsoft Windows</li>
            <li>Sun Java Standard Edition 1.4.2_16 for Microsoft Windows</li>
            <li>IBM 32-bit SDK for Windows, Java 2 Technology Edition 1.4.2 SR10</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Red Hat Enterprise Linux 5.0, x86-32, GTK</b> running (any of):
          <ul>
            <li> Sun Java Standard Edition 6 Update 3 for Linux x86</li>
            <li>Sun Java Standard Edition 5 Update 14 for Linux x86</li>
            <li>IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology Edition 5.0, SR6b</li>
            <li>BEA JRockit 27.4.0, for Linux x86</li>
            <li>Sun Java Standard Edition 1.4.2_16 for Linux x86</li>
            <li>IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology Edition 1.4.2 SR10</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>SUSE Linux Enterprise Server 10, x86-32, GTK</b> running (any of):
          <ul>
            <li>Sun Java Standard Edition 5 Update 14 for Linux x86</li>
            <li>IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>SUSE Linux Enterprise Server 10, x86-64, GTK</b> running (any of):
          <ul>
            <li>Sun Java Standard Edition 5 Update 14 for Linux x86-64</li>
            <li>IBM 64-bit SDK for Linux on Intel architecture, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Microsoft Windows Vista, x86-64, Win32</b> running (any of):
          <ul>
            <li>Sun Java Standard Edition 5 Update 14 for Microsoft Windows (AMD64/EM64T)</li>
            <li>IBM 64-bit SDK for Windows, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Microsoft Windows XP Professional x64 Edition, x86-64, Win32</b> running (any of):
          <ul>
            <li>Sun Java Standard Edition 5 Update 14 for Microsoft Windows (AMD64/EM64T)</li>
            <li>IBM 64-bit SDK for Windows, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Red Hat Enterprise Linux 4.0 update 2, x86-64, GTK</b> running:
          <ul>
            <li>Sun Java Standard Edition 5 Update 14 for Linux x86-64</li>
            <li>IBM 64-bit SDK for Linux on Intel architecture, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Sun Solaris 10, SPARC, GTK</b> running:
          <ul>
            <li>Sun Java Standard Edition 5 Update 14 for Solaris SPARC</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Sun Solaris 10, x86, GTK</b> running:
          <ul>
            <li>Sun Java Standard Edition 5 Update 14 for Solaris</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>HP-UX 11i v2, ia64, Motif 2.1, GTK</b> running:
          <ul>
            <li>HP-UX Java Standard Edition 5 Update 7 for Itanium</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>IBM AIX 5.3, Power, Motif 2.1</b> running:
          <ul>
            <li>IBM 32-bit SDK, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Red Hat Enterprise Linux 5.0, Power, GTK</b> running:
          <ul>
            <li>IBM 32-bit SDK for Linux on pSeries architecture, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>SUSE Linux Enterprise Server 10, Power, GTK</b> running:
          <ul>
            <li>IBM 32-bit SDK for Linux on pSeries architecture, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Apple Mac OS X 10.5, Universal, Carbon</b> running:
          <ul>
            <li>Apple Java for Mac OS X 10.5, Update 1</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Apple Mac OS X 10.5, Universal 32-bit, Cocoa</b> running:
          <ul>
            <li>Apple Java for Mac OS X 10.5, Update 1</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Apple Mac OS X 10.5, Universal 64-bit, Cocoa</b> running:
          <ul>
            <li>Apple Java for Mac OS X 10.5, Update 1</li>
          </ul></td>
      </tr>
	</tbody>    
  </table>


<p>As stated above, <i>we expect that Eclipse works fine on other current
  Java VM and OS versions but we cannot flag these as reference platforms without
  significant community support for testing them.</i></p>
<h4>Internationalization</h4>
<p>The Eclipse SDK 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 and DBCS locales are supported by the Eclipse SDK on all reference platforms;
  BIDI locales are supported by the Eclipse SDK everywhere but on Motif.</p>
<p>The Eclipse SDK supports GB 18030 (level 1), the Chinese code page standard,
  on Windows XP and 2000, Linux/GTK and the Macintosh.</p>
<p>German and Japanese locales are tested.</p>

<h2>2. <a name="Compatibility"></a>Compatibility with Previous Releases</h2>
<h3>Compatibility of Release 3.5 with 3.4</h3>
<p>Eclipse 3.5 is compatible with Eclipse 3.4 (and all earlier 3.x versions).</p>

<p><strong>API Contract Compatibility:</strong> Eclipse SDK 3.5 is upwards
  contract-compatible with Eclipse SDK 3.4 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_5_porting_guide.html" target="_top">
    <em>Eclipse 3.5 Plug-in Migration Guide</em>
  </a>. Programs that use affected APIs and extension points will need to be ported
  to Eclipse SDK 3.5 APIs. Downward contract compatibility
  is not supported. There is no guarantee that compliance with Eclipse SDK 3.5
  APIs would ensure compliance with Eclipse SDK 3.4 APIs. Refer to
  <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">
    <em>Evolving Java-based APIs</em>
  </a> for a discussion of the kinds of API changes that maintain contract compatibility.</p>
  
<p><strong>Binary (plug-in) Compatibility:</strong> Eclipse SDK 3.5 is upwards
  binary-compatible with Eclipse SDK 3.4 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_5_porting_guide.html" target="_top">
    <em>Eclipse 3.5 Plug-in Migration Guide</em>
  </a>. Downward plug-in compatibility is not supported. Plug-ins developed for Eclipse SDK
  3.5 will not be usable in Eclipse SDK 3.4. Refer to
  <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">
    <em>Evolving Java-based APIs</em>
  </a> for a discussion of the kinds of API changes that maintain binary compatibility.</p>
  
<p><strong>Source Compatibility:</strong> Eclipse SDK 3.5 is upwards source-compatible
  with Eclipse SDK 3.4 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_5_porting_guide.html" target="_top">

    <em>Eclipse 3.5 Plug-in Migration Guide</em>
  </a>. This means that source files written
  to use Eclipse SDK 3.4 APIs might successfully compile and run against Eclipse
  SDK 3.5 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><strong>Workspace Compatibility:</strong> Eclipse SDK 3.5 is upwards
  workspace-compatible with earlier 3.x versions of the Eclipse SDK unless noted.
  This means that workspaces and projects created with Eclipse SDK 3.0 to 3.4 can be successfully
  opened by Eclipse SDK 3.5 and upgraded to a 3.5 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.5 should provide similar upwards compatibility
  for their hidden and visible workspace metadata created by earlier versions;
  3.5 plug-in developers are responsible for ensuring that their plug-ins recognize
  metadata from earlier versions 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.5 will be unusable with a product based on an earlier
  version of Eclipse. Visible metadata files created (or overwritten) by Eclipse
  3.5 will generally be unusable with earlier versions of Eclipse. </p>
  
<p><strong>Non-compliant usage of API's</strong>: All non-API methods and classes,
  and certainly everything in a package with &quot;internal&quot; in its name,
  are considered implementation details which may vary between operating environment
  and are subject to change without notice. Client plug-ins that directly depend
  on anything other than what is specified in the Eclipse SDK API are inherently
  unsupportable and receive no guarantees about compatibility within a single
  release much less with earlier releases. Refer to
  <a href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html">
    <em>How to Use the Eclipse API</em></a> 
    for information about how to write compliant plug-ins. </p>

<h2>3. <a name="Known Issues"></a> Known Issues</h2>
<blockquote>
  <a href="#I-General">
  3.1 General problems</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-General-Startup">3.1.1 Startup</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-General-GCJ">3.1.2 GCJ</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-General-64bitJava">3.1.3 64-bit Java HotSpot(TM) VM</a><br>
  <a href="#I-Platform">3.2 Platform</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Core">3.2.1 Core</a><br>

  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Ant">3.2.2 Ant</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-User-Assistance">3.2.3 User Assistance</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-UI">3.2.4 UI</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Text">3.2.5 Text</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-SWT">3.2.6 SWT</a><br>

  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Team-CVS">3.2.7 Team and CVS</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Install-Update">3.2.8  Install/Update</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Debug">3.2.9 Debug</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp; <a href="#I-Platform-Compare">3.2.10 Compare</a><br>
  <a href="#I-JDT">
  3.3 Java development tools (JDT)</a><br>
  <a href="#I-PDE">
  3.4 Plug-in Development Environment (PDE)</a><br>

</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-General">General problems</a></h3>
<h3>3.1.1 <a name="I-General-Startup">General - Startup</a></h3>
<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.5 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>
    Running Eclipse on Gentoo Linux may result in the following error message:
    <div style="margin-left: 40px;">
<tt>* run-java-tool is not available for sun-jdk-1.6 on i686<br>* IMPORTANT: some Java tools are not available on some VMs on some architectures</tt>
    </div>

If this occurs, start Eclipse by specifying a -vm argument, either
specify the path to a java vm or use: <tt>eclipse -vm `java-config</tt>
--java` (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=176021">176021</a>)</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><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>Hanging during class loading when out of permanent generation memory</h4>
<p>
The Sun VM may hang indefinitely during class loading if it runs out of permanent
generation memory.  This will cause CPU usage to stay at 100% until the process
is ended.  See the section <a href="#Running Eclipse">Running Eclipse</a> for details
on addressing this VM problem.
</p>

<h3>3.1.2 <a name="I-General-GCJ">General - GCJ</a></h3>
<p>GCJ is an effort by the GCC team to provide an open source Java compiler and
runtime environment to interpret Java bytecode. Unfortunately, the GCJ runtime
environment is not an environment that is often tested on by Eclipse developers.</p>

<p>The most common problems surrounding GCJ are:</p>
<ul>
<li>Eclipse does not start at all</li>
<li>Eclipse throws a 'java.lang.ClassNotFoundException: org.eclipse.core.runtime.Plugin' that can be found in the logs (located in
workspace/.metadata/.log)</li>	
</ul>

<p>The workspace's log file is a good place to check to identify whether GCJ is
being used or not. Every Eclipse log session is prepended with
information about the runtime environment that was used to run Eclipse. The log
may include something like the following:</p>

<code>java.fullversion=GNU libgcj 4.2.1 (Debian 4.2.1-5)</code>

<p>If Eclipse does start, one can check which runtime environment is being used to
run Eclipse by going to <b>Help &gt; About Eclipse SDK &gt; Installation Details &gt; Configuration</b>. The
<b>About</b> dialog itself can also provide other information, the build identifier
can be of particular interest as it is tagged by some distributions. This allows the
user to identify whether Eclipse was downloaded through the distribution's
package management system or directly from the eclipse.org website.</p>

Eg: <code>Build id: M20070212-1330 (Ubuntu version: 3.2.2-0ubuntu3)</code>

<p>The two most common workarounds are:</p><ul>
<li>download the Eclipse binary from eclipse.org directly</li>
<li>run Eclipse using an alternate Java runtime environment</li></ul>

<p>To download Eclipse, try one of the links below:</p><ul>
<li><a href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></li>
<li><a href="http://download.eclipse.org/eclipse/downloads/">http://download.eclipse.org/eclipse/downloads/</a></li></ul>

It is imperative that 64-bit builds are downloaded and used if a 64-bit Java
runtime environment has been installed. Below are two sample tarball names of
version 3.5.0 of the Eclipse SDK packaged for 32-bit and 64-bit processors.

<pre>eclipse-SDK-3.5-linux-gtk.tar.gz (32-bit)
eclipse-SDK-3.5-linux-gtk-x86_64.tar.gz (64-bit)</pre>

<p>To run Eclipse with an alternate Java runtime environment, the path to the Java
virtual machine's binary must be identified. With an Eclipse installation from
the distribution, altering the $PATH variable to include the path to the
alternate Java runtime environment is often not enough as the Eclipse that
Linux distributions package often performs a scan internally to pick up GCJ by
itself whilst ignoring what's on the $PATH. An example of the terminal's output
is shown below:</p>

<code>searching for compatible vm...<br>
  testing /usr/lib/jvm/java-7-icedtea...not found<br>
  testing /usr/lib/jvm/java-gcj...found</code>

<p>Once the path to the virtual machine's binary has been identified, try running
Eclipse with the following command:</p>

<code>./eclipse -vm /path/to/jre/bin/java</code>

<p>For an actual example, it might look something like the following:</p>

<code>./eclipse -vm /usr/lib/jvm/sun-java-6/bin/java<br>
./eclipse -vm /opt/sun-jdk-1.6.0.02/bin/java</code>

<p>If this seems to solve the problem, it is likely that the problem really was
related to the use of GCJ as the Java runtime for running Eclipse. The
eclipse.ini file located within Eclipse's folder can be altered to
automatically pass this argument to Eclipse at startup. An example of its
content is presented below:</p>

<code>-showsplash<br>
org.eclipse.platform<br>
--launcher.XXMaxPermSize<br>
256m<br>
-vm<br>
/opt/sun-jdk-1.6.0.02/bin/java<br>
-vmargs<br>
-Xms40m<br>
-Xmx512m</code>

<p>Note that every argument must be on its own line. More information about the
eclipse.ini file can be found at <a href="http://wiki.eclipse.org/Eclipse.ini">http://wiki.eclipse.org/Eclipse.ini</a>.</p>

<p>If problems persists after downloading an installation of Eclipse from
eclipse.org and using a supported Java runtime environment (a list of which may be found <a href="#TargetOperatingEnvironments">above</a>), 
you can seek further assistance through the <a href="http://www.eclipse.org/newsgroups/">newsgroups</a>, 
the IRC <a href="irc://irc.freenode.net/#eclipse">channel</a>, 
and/or <a href="https://bugs.eclipse.org/bugs/">bugzilla</a>.
</p>

<h3>3.1.3 <a name="I-General-64bitJava">General - 64-bit Java HotSpot(TM) VM</a></h3>
<p>
There is a known issue with the Java HotSpot(TM) 1.6.0 VM compiler which causes eclipse to 
crash (see Sun bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6614100">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6614100</a>,
and Eclipse bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=214092">214092</a>).
The crash usually occurs within a VM CompilerThread when attempting to compile the method org.eclipse.core.internal.dtree.DataTreeNode.forwardDeltaWith.
</p>
<p>
This problem has been addressed in Sun Java 6 update 11, so the simplest resolution is
to obtain the latest JRE release for your platform.
To work around the issue you can exclude the method org.eclipse.core.internal.dtree.DataTreeNode.forwardDeltaWith from being compiled with the following
VM argument:
</p>

<code>
-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith
</code>

<p>
This VM argument can be placed in the eclipse.ini file after the -vmargs line like the following:
</p>

<code>
-startup<br>
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090306-1900<br>
--launcher.library<br>
plugins/org.eclipse.equinox.launcher_1.0.200.v20090429-1630.jar<br>
-showsplash<br>
org.eclipse.platform<br>
--launcher.XXMaxPermSize<br>
256m<br>
-vmargs<br>
-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith<br>
-Xms40m<br>
-Xmx256m<br>
</code>

<p>
There have been reports of other classes that cause the compiler to crash.  If all else fails you can 
disable the compiler with the VM arg &quot;-Xint&quot;. 
</p>

<h3>3.2 <a name="I-Platform">Platform</a></h3>

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

<h4>Installing plug-ins by unzipping them into the plugins directory</h4>
<p>New plug-ins can be installed into the system by unzipping them into the plugins
directory. However this is not recommended, and the dropins directory should be
used for this purpose instead. Note that unzipping a different
version of a plug-in that is already installed will have no effect. To change the version
of a plug-in installed in your system, you need to either perform an update, or install
a feature patch.</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>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>
  <li>Send yourThread.setContextClassLoader(yourClassLoader); // you can find
    your classloader by grabbing a class it loaded (YourPluginClass.class.getClassLoader())</li>
  <li>Run your code in the newly created thread.</li>
</ol>
<p>If you set the context class loader for the current thread, you are
competing with other users of the thread (all of Eclipse), so the results will
be unpredictable. However, there should be no problem in practice provided you
reset the context class loader back to its original value when your use in the
current thread is&nbsp;complete. (bug <a href="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>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:</p>
<pre>
static JavaVM* jvm;  // Global variable

void myCallback(void) {
    JNIEnv* env;
    jvm-&gt;AttachCurrentThread((void**)&amp;env, NULL);
    // Fails if some/class is not in the application classloader:
    jclass cls = env-&gt;FindClass(&quot;some/class&quot;);
    jmethodID methodID = env-&gt;GetMethodID(cls, &quot;methodName&quot;,
      &quot;(Ljava/lang/String;)V or whatever signature&quot;);
    env-&gt;CallVoidMethod(callback, methodID, ...);
    jvm-&gt;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-&gt;FindClass(className&quot;some/class&quot;);
    if(!cls) goto ERR;

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

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


<h3>3.2.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&gt; task (Windows 9X
only)</h4>
<p>On Windows 9X, using:&lt;property environment="env"/&gt; 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>

<h4>Failure to run Ant builds on non-Windows platforms if Eclipse installed in location with spaces in the path</h4>
<p>Due to a bug in Ant 1.7.0, Ant builds will fail with an IllegalArgumentException if the Eclipse installation is in a location with spaces in the path.
Embedded usage of Ant builds, such as plug-in export will also fail.
See bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=187993">187993</a> for possible workarounds</p>

<h3>3.2.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>
    <li>If your host was configured to use DHCP for IP assignment, make sure
      that the &quot;Automatically detect settings&quot; check box is cleared.</li>
    <li>If you use a proxy server, ensure that the &quot;Bypass proxy server
      for local addresses&quot; is selected.</li>
    <li>In &quot;Advanced&quot; settings for proxies, add
      &quot;127.0.0.1;localhost&quot; to the &quot;Exceptions&quot; if these
      addresses are not listed.</li>
    <li>If you are using an automatic configuration script for proxy
      settings, and are not sure that the script is correct, clear the &quot;Use
      automatic configuration script&quot; check box.</li>

  </ol>
</blockquote>
<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>

<h3>3.2.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>
  <li>To change the user locale: Open the Control Panel. Go to Regional and
    Language Options. The user locale can be modified by changing the language
    in &quot;Standards and formats&quot;.</li>
</ul>
<p>For Windows 2000:</p>
<ul>
  <li>To check the system locale: Open the Control Panel. Go to Regional
    Options. Look up the items in the General tab, inside the &quot;Language
    settings for the system&quot; group. The system locale is the item marked as
    (Default).</li>
  <li>To change the user locale: Open the Control Panel. Go to Regional
    Options. The user locale can be modified by changing the location in
    &quot;Settings for the current user&quot;.</li>

</ul>
<p>(bug <a href="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>2.1 Presentation based workspaces incorrectly get new Min/Max behavior</h4>
<p>
Workspaces that are currently using the Eclipse 2.1 Presentation will incorrectly
'inherit' the new min/max behavior when opened with 3.3.
</p>
<p>
Workaround:</p>
<ol>
 <li>Go to the 'Preferences -&gt; Appearance' page, change the current presentation to 'Default' and select apply</li>
 <li>Change it back to the 2.1 Presentation, select 'OK' and 'Yes' to the restart prompt</li>
</ol>
When the workbench re-opens the old min/max behavior will be restored.
<h4>Toolbars only containing contributed controls exhibit display errors on Mac/Linux</h4>
<p>
Currently there is no way on the Max or Linux platforms to define the <b>height</b> for controls contributed to
toolbars, nor will those platforms respect the size returned by the control's <code>computeSize</code> method. If you
encounter this issue there is currently no truly viable workaround.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=183003">183003</a>)
</p>


<h3>3.2.5 <a name="I-Platform-Text">Platform - Text</a></h3>
None.

<h3>3.2.6 <a name="I-Platform-SWT">Platform - SWT</a></h3>
<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>Opening File Dialog crashes eclipse (Vista only)</h4>
<p>On Vista, launching eclipse using <code>-vmargs -Xmx[any size]</code> can crash eclipse when the FileDialog is opened.
The workaround is to use the default heap size, i.e. do not use the <code>-Xmx</code> VM args.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188317">188317</a>)</p>

<h4>Crash while editing text (Windows XP with SP2 only)</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 (Motif only)</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 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 Eclipse bug report number <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>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>IME conversion problem (Solaris GTK only)</h4>
<p>When typing Japanese text, the conversion to Kanji must be done one ideogram at
a time. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=226636">226636</a>)</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>Typing in an editor crashes with IBM 1.5 VM (Linux GTK PPC only)</h4>
<p>When running on the IBM Java 5.0 VM, Eclipse crashes while the user is typing in an editor.
If using this VM you must disable the JIT with the -Xnojit vm argument to avoid the crashes
(see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116730">116730</a>).
The command line for launching Eclipse with this vm should be: <br>
<code>eclipse -vmargs -Dosgi.locking=none -Xnojit</code>
</p>

<h4>Eclipse won't start (Linux GTK PPC only)</h4>
<p>Eclipse fails to create a lock file with reason &quot;No locks available&quot;. 
To launch eclipse you must disable file locking using the osgi.locking property.
For example, you could launch eclipse as follows: <br>
<code>eclipse -vmargs -Dosgi.locking=none</code>
</p>

<h4>SWT for carbon cannot be used with OS X JRE version 1.6 (Mac OSX only)</h4>
<p>OS X JRE version 1.6 assumes that pointers have a size of 64 bits, but SWT's Carbon
port only uses 32-bit pointers, so SWT and Eclipse cannot be used with OS X JRE version
1.6.  The workaround is to use the cocoa version of SWT or an earlier supported version
of the OS X JRE.
</p>

<h4>Strings may be truncated or incorrectly wrapped on RHEL5 (Linux GTK only)</h4>
<p>
Strings on wrapping Controls may not appear correctly in some locales on RHEL5 as a result
of a bug in Pango version 1.14.x.  This problem can be fixed by upgrading the installed
Pango library to a version that is newer than 1.14.x.  (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=231951">231951</a>)
</p>

<h4>Block Selection functionality provided by StyledText is not BIDI aware</h4>
<p>
When the orientation of characters under the left and right edges of the block
selection rectangle are not the same, the actual selection ranges (in memory)
differ from the visual representation of the selection.(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=277929">277929</a>)
</p>


<h3>3.2.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.22). As for the 1.12.X
feature releases of CVS, the Eclipse CVS client has been tested with builds up
to 1.12.13. 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.</p>
  
<h4>SSH2 proxy settings lost upgrading to 3.3</h4>
<p>CVS now uses the Platform proxy settings. As a result, any CVS proxy settings
will be lost and must be re-entered on the General&gt;Network Connections 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.</p>

<h4>Enabling GNOME proxy support</h4>
<p>GNOME applications can make use of proxy settings defined in this environment.
If set, Eclipse will use it prior to proxy settings declared using env variables.
This feature is disabled by default, to enable it launch Eclipse with
<code>"-Dorg.eclipse.core.net.enableGnome"</code> switch. That is,</p>
<pre>eclipse -Dorg.eclipse.core.net.enableGnome</pre>

<h3>3.2.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>

<h4>Connecting to untrusted sites using https</h4>
<p>You cannot install or update software from a site using https whose certificate
is not chained to a trusted root certificate in your local certificate store. This typically
means the server is using a self-signed certificate, or a certificate authenticated by
an unknown third party.</p>

<h4>Extension location is lost if the install path changes</h4>
<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>

<h4>Feature patches can only be installed from Eclipse 3.4-based update sites</h4>
<p>Feature patches can only be installed from update sites designed for Eclipse 3.4 or greater.
Specifically, the update site must have the necessary metadata for Equinox p2 (a content.xml
or content.jar file). This data can be generated by building an update site using Eclipse 3.4
or newer, or running the p2 metadata generator on an update site built using earlier versions
of the Eclipse SDK. See the help topic <i>Generating p2 metadata</i> for more details on running the p2 metadata
generator (bug <A HREF="https://bugs.eclipse.org/bugs/show_bug.cgi?id=244483">244483</A>).
</p>

<h3>3.2.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.2.10 <a name="I-Platform-Compare">Platform - Compare</a></h3>
<p>None.</p>

<h3>3.3 <a name="I-JDT">Java development tools (JDT)</a></h3>

<h4>Multiple regions formatting in a given source snippet</h4>
In version 3.4, the new API method <code>org.eclipse.jdt.core.formatter.CodeFormatter.format(int, String, IRegion[], int, String)</code>
has been added to allow the formatting of several regions in a source snippet with a single pass.<br>
Even if specified, this method does not currently accept comments of the following kinds:
<ul>
<li><code>org.eclipse.jdt.core.formatter.CodeFormatter#K_SINGLE_LINE_COMMENT</code></li>
<li><code>org.eclipse.jdt.core.formatter.CodeFormatter#K_MULTI_LINE_COMMENT</code></li>
<li><code>org.eclipse.jdt.core.formatter.CodeFormatter#K_JAVA_DOC</code></li>
</ul>
This will be fixed in a future release (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=233967">233967</a>).

<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> 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=30442">30442</a>)</p>

<h4>Breakpoints unreliable running Sun 1.6.0_14</h4>
Developers debugging applications on Sun's 1.6.0_14 
virtual machine should be aware that breakpoints are unreliable (i.e. do 
not always suspend execution). The problem occurs on Windows and Linux 
platforms. This is an issue with the VM and not with Eclipse.
The workaround is to use the <code>-XX:+UseParallelGC</code> VM option. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=279137">279137</a>).

<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>Some refactoring script operations fail with Sun 6.0 JREs</h4>
<p>Creating and applying refactoring scripts sometimes fails with Sun 6.0 JREs
due to a bug in the XML parser that is shipped with those VMs.
A workaround is to use a J2SE 5.0 VM or an IBM 6.0 VM.
Another workaround is to replace the XML parser using the
<a href="http://java.sun.com/javase/6/docs/technotes/guides/standards/index.html">Java Endorsed Standards Override Mechanism</a>:
</p>
<ol>
  <li>Get original versions of xml-apis.jar, xercesImpl.jar, xalan.jar, and serializer.jar from Apache, e.g.
    xalan-j_2_7_1-bin.zip from <a href="http://xml.apache.org/xalan-j/downloads.html">here</a>.
  </li>
  <li>Unpack the archive and copy the 4 JARs into <code>&lt;path-to-your-JavaSE6.0-install&gt;\jre\lib\endorsed\</code>.
  </li>
</ol>
(see Sun bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6760982">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6760982</a>,
Eclipse bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=262820">262820</a>)

<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>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>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> 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>
<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.</p>
<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>Java 6 and MacOS</h4>
Apple JavaSE-1.6 VMs only execute on 64-bit architectures but JDT will detect 1.6 VMs installed on 32-bit
architectures when a new workspace is started or when the user presses the &quot;Search...&quot; button
on the Installed JREs preference page. Error messages will appear in the log each time JDT attempts to
determine which execution environments a 1.6 VM is compatible with. JDT can be configured to ignore 1.6
JREs by removing them from the Installed JREs preference page.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=262542">262542</a>)

<h4>Java Annotation Processing</h4>
<p>Some methods in the processing API are unimplemented when compiling within the IDE, and will
throw <code>UnsupportedOperationException</code>.</p>
<p>
Java 6 annotation processors are supported in the batch compiler and in the
IDE. By design, Java 6 processors are only executed during a build, not while
editing (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188558">188558</a>).</p>
<p>
Java 5 annotation processors are supported in the IDE only. Java 5 processors
can be executed while editing, as well as during a build. Slow annotation
processors can cause a slowdown of the editing experience. If this occurs, you
may wish to turn off <b>Enable processing in editor</b> on the <b>Java Compiler &gt; Annotation Processing</b> properties
page of your Java project.</p>

<h4>Refactoring fails with invalid package name error when jaxb-xjc.jar is on build path</h4>
This JAR contains some entries that start with "1.0/". This leads to an invalid package name error once
this JAR has been added to the indexes. The problem is reported in bug 
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=293861">293861</a> and it is fixed for 3.6. A patch for the <code>org.eclipse.jdt.core</code>
bundle will be available on the JDT/Core update page after 3.5.2 is released to fix this issue.
Check this <a href="http://www.eclipse.org/jdt/core/r3.5/index.php#UPDATES">link</a> for updates on this issue.


<h3>3.4 <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>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>

<h4>Target Platform only sees installed plug-ins</h4>
<p>With the new p2 provisioning system in 3.4, PDE introduced a preference to control how target platforms are built. 
By default, this preference is on if your target equals your host, otherwise it's off. When this preference is enabled, PDE attempts to
read a target platform's configuration and build the target platform based in the target's list of installed plug-ins. If a configuration
can't be found (a bundles.info or platform.xml file), PDE will simply manually scan the target directory and populate the target platform's
list of plug-ins.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=226037">226037</a> and bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=225148">225148</a>)
</p>

<h4>Delta pack is not seen by PDE when installed</h4>
<p>If you're using the delta pack, the target platform preference for building a target based on the target's installed plug-ins must be checked off.
This is because a target's runtime configuration only contains plug-ins specific to the platform it's running on.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=230146">230146</a>)
</p>

<h4>The org.osgi.util.tracker package is exported at wrong version</h4>
<p>The Equinox OSGI Framework (org.eclipse.osgi) exports the org.osgi.util.tracker package
at the incorrect version of 1.4.2.  The correct org.osgi.util.tracker package version for 
the OSGi Release 4 Version 4.2 specification is version 1.4.0.  Bundles that 
wish to run on other vendor frameworks should import the org.osgi.util.tracker package at
version 1.4.0.  By default PDE will suggest the version 1.4.2 to be used when a bundle imports 
the org.osgi.util.tracker package (using Import-Package manifest header).  Developers can 
manually change the import to use 1.4.0 version of the package to be able to run on both
Equinox and other vendor frameworks.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=279622">279622</a>)
</p>

<h4>Importing plug-ins as source misses resources</h4>
<p>When importing plug-ins as source (from associated binary plug-ins and source bundles), resources
such as property files and images will not be imported into the workspace. The workaround is to retrieve
projects from their associated CVS repository or import binary plug-ins with attached source (if the ability
to edit the imported plug-ins is not required).
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=280259">280259</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.5-win32</code>, the executable is <code>c:\eclipse-SDK-3.5-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.  When the VM runs
out of permanent generation memory, it may crash or hang during class loading.
This failure is less common when using Sun JRE version 1.5.0_07 or greater.
The maximum permanent generation size is increased using the -XX:MaxPermSize=&lt;memory size&gt; argument:</p>
<blockquote>
  <p><code>eclipse -vmargs -XX:MaxPermSize=&lt;memory size&gt;</code></p>
</blockquote>
<p>This argument may not be available for all VM versions and platforms; consult your VM documentation
for more details.
</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>
<h3>Specifying the Java virtual machine</h3>
<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>
  <li>Select the shortcut and edit its Properties. In the Target: field append
    the command line arguments.</li>
</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 than 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:</p>

<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:</p>

<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.5 with previous releases</h3>
<h4>Sharing projects between heterogeneous Eclipse 3.5 and 3.4</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.5
while others are working in Eclipse 3.4, there are no such guarantees.
This section provides advice for what to do and not to do. It addresses the
specific issues with the Eclipse SDK.</p>

<p>The typical failure mode is noticed by the 3.5 user. 3.5 metadata is lost
when a 3.4 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.5 creates or modifies a project in a way that
    results in changes to a shared metadata file that rely on 3.5-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.4 shares this project from the same
    repository. The 3.5-specific information in the shared metadata file is not
    understood by Eclipse 3.4, 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.5-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.5 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.5 and earlier 3.x releases:</p>
<ul>
  <li><b>Linked resources in the .project file</b> - 
  Eclipse 3.5 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.5, 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.5 to develop plug-ins that work in Eclipse 3.4</h4>
<p>It is also possible (and reasonable) to use Eclipse 3.5 to develop a plug-in 
  intended to work in Eclipse 3.4 or earlier. Use the <b>Plug-in Development &gt; 
  Target Platform </b>preference page to locate non-workspace plug-ins in an Eclipse 
  3.4 install. This ensures that the code for your plug-in is being compiled and 
  tested against Eclipse 3.4 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.5.2 since 3.5.1</h3>
<p>Release 3.5.2 is a maintenance release to fix serious defects present in
release 3.5.1 These changes only affect some plug-ins and
features.</p>

<p>Maintenance release 3.5.2 contains fixes for the following defects and others:</p>
<p>
<p>
Note: Bug fixes since the 3.5.1 release can be obtained by the following the Bugzilla query: </p> 
<p>
<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_file_loc_type=allwordssubstr;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;classification=Eclipse;classification=RT;field-1-0-0=bug_status;field-1-1-0=classification;field-1-2-0=product;field-1-3-0=resolution;field-1-4-0=target_milestone;field0-0-0=noop;keywords_type=allwords;long_desc_type=allwordssubstr;product=Equinox;product=JDT;product=PDE;product=Platform;query_format=advanced;remaction=;resolution=FIXED;short_desc=;short_desc_type=allwordssubstr;status_whiteboard=;status_whiteboard_type=allwordssubstr;target_milestone=3.5.2;type-1-0-0=anyexact;type-1-1-0=anyexact;type-1-2-0=anyexact;type-1-3-0=anyexact;type-1-4-0=anyexact;type0-0-0=noop;value-1-0-0=RESOLVED%2CVERIFIED%2CCLOSED;value-1-1-0=Eclipse%2CRT;value-1-2-0=Equinox%2CJDT%2CPDE%2CPlatform;value-1-3-0=FIXED;value-1-4-0=3.5.2;value0-0-0=|;query_based_on=">Bugs fixed in the 3.5.2 release</a>

</p>



  <span class="bz_result_count">149 bugs found.
  </span>









<table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
    <colgroup>
      <col class="bz_id_column">
      <col class="bz_short_desc_column">
    </colgroup>

    <tr class="bz_buglist_header bz_first_buglist_header" align="left">
      <th colspan="1" class="first-child">
        <a href="buglist.cgi?bug_file_loc_type=allwordssubstr&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Eclipse&amp;classification=RT&amp;columnlist=short_desc&amp;field0-0-0=noop&amp;keywords_type=allwords&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.5.2&amp;type0-0-0=noop&amp;value0-0-0=%7C&amp;order=bug_id%20DESC&amp;query_based_on=">ID</a>
      </th>

<th colspan="1">
    <a href="buglist.cgi?bug_file_loc_type=allwordssubstr&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Eclipse&amp;classification=RT&amp;columnlist=short_desc&amp;field0-0-0=noop&amp;keywords_type=allwords&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.5.2&amp;type0-0-0=noop&amp;value0-0-0=%7C&amp;order=short_desc%2Cbug_id&amp;query_based_on=">Summary</a>
  </th>


    </tr>

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

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

    <td >[Contributions] ToolItem.setWidth fails when ToolItem on ViewPart toolbar
    </td>

  </tr>

  


  

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

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

    <td >[Launcher] AIX still requires motif libraries installed
    </td>

  </tr>

  


  

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

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

    <td >[Browser] Arrow_Down does not scroll after tabbing into Browser
    </td>

  </tr>

  


  

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

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

    <td >[Browser] JVM crashes after closing several Browser control instances with PDF files opened
    </td>

  </tr>

  


  

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

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

    <td >Save dialog does not show filter extensions
    </td>

  </tr>

  


  

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

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

    <td >Korean Input text flickers in StyledText widget in case the sentence  exceeds a row.
    </td>

  </tr>

  


  

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

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

    <td >Generics compile error
    </td>

  </tr>

  


  

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

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

    <td >[DND] COM leak during drag and drop
    </td>

  </tr>

  


  

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

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

    <td >[block selection] Caret height wrong after enabling block selection
    </td>

  </tr>

  


  

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

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

    <td >[block selection] Block selection font size not honored
    </td>

  </tr>

  


  

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

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

    <td >[browser] Execue / evaluate crashes with out of memory error
    </td>

  </tr>

  


  

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

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

    <td >workbench ant runner should not suspend the job manager
    </td>

  </tr>

  


  

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

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

    <td >[product] not added to feature based product without deltapack
    </td>

  </tr>

  


  

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

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

    <td >[ds tooling] NPE in DSErrorReporter.reportIllegalPolicy(...)
    </td>

  </tr>

  


  

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

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

    <td >Eclipse hangs in SourceMapper while doing java proposals
    </td>

  </tr>

  


  

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

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

    <td >[jar exporter] JAR export not workspace relative if folder does not exist
    </td>

  </tr>

  


  

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

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

    <td >Radio button group not read correctly by JAWS
    </td>

  </tr>

  


  

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

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

    <td >Launch External Tool does not save dirty editors regardless of preference setting
    </td>

  </tr>

  


  

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

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

    <td >[publisher] Mismatch between PDE and p2 interpretation of icon paths in .product file
    </td>

  </tr>

  


  

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

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

    <td >Regression: No longer possible to post an event to the Browser
    </td>

  </tr>

  


  

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

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

    <td >[1.5][compiler] Error on use generic interface in abstract super class
    </td>

  </tr>

  


  

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

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

    <td >[Widgets] TableColumn.pack() results in a table that does not fit the header on SWT cocoa
    </td>

  </tr>

  


  

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

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

    <td >[Viewers] New column scrolling breaks on first cell selection if you have scrolled the table
    </td>

  </tr>

  


  

  <tr class="bz_bugitem
             bz_enhancement             bz_P3             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">

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

    <td >serialVersionUID still causes error/warning
    </td>

  </tr>

  


  

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

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

    <td >[performance] expensive inner loop in JavaSourceLookupUtil
    </td>

  </tr>

  


  

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

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

    <td >[Image Saving] o.e.swt.internal.image.PngEncoder is very slow on writing large images
    </td>

  </tr>

  


  

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

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

    <td >[ViewMgmt] [GlobalActions] Closing project ignores Saveables
    </td>

  </tr>

  


  

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

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

    <td >[Graphics][GTK2.18] clipping broken when setting a transform with Gtk 2.17.7
    </td>

  </tr>

  


  

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

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

    <td >[StyledText] styled text widget content can be shifted left with out scroll bar when line wraps
    </td>

  </tr>

  


  

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

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

    <td >[DND] drag/drop onto empty table generates exception in SWT
    </td>

  </tr>

  


  

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

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

    <td >[Widgets] [GTK2.18] Control.setZOrder broken on Gtk+ &gt;= 2.17.3
    </td>

  </tr>

  


  

  <tr class="bz_bugitem
             bz_major             bz_P3             bz_CLOSED             bz_FIXED                                       bz_row_even             ">

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

    <td >[Browser] SWT crashes JVM when disposing of browser using XULRunner &gt;=1.9.1 via XULRunnerPath
    </td>

  </tr>

  


  

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

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

    <td >[1.5][compiler] Wrong ambiguous compilation error
    </td>

  </tr>

  


  

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

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

    <td >[Progress] Finished Tasks Still Show In Progress View
    </td>

  </tr>

  


  

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

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

    <td >[formatter] Formatter removes the first character after the * in the &lt;pre&gt; tag
    </td>

  </tr>

  


  

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

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

    <td >[publisher] custom config.ini in product definition causes NPE
    </td>

  </tr>

  


  

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

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

    <td >[IDE] [browser] Default external browser should be pre-configured on Solaris 10 sparc GTK
    </td>

  </tr>

  


  

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

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

    <td >APT uses a lot of memory
    </td>

  </tr>

  


  

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

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

    <td >Saving a docx file fails silently due to not killing WINWORD process on close
    </td>

  </tr>

  


  

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

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

    <td >BundleContext#getServiceReference does not return highest ranked service
    </td>

  </tr>

  


  

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

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

    <td >NPE in NameVersionDescriptor hashCode() method when the version is null
    </td>

  </tr>

  


  

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

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

    <td >GDI Handle Resource Leak
    </td>

  </tr>

  


  

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

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

    <td >[Widgets] Black screen in windows 7 aero mode using Tracker
    </td>

  </tr>

  


  

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

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

    <td >Concurrency issues in XMLParser.acquireXMLParsing()
    </td>

  </tr>

  


  

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

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

    <td >[compiler] NPE during binaryTypeBinding field initialization
    </td>

  </tr>

  


  

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

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

    <td >JavaScript function on overview pages does not open in Help View
    </td>

  </tr>

  


  

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

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

    <td >[Webapp] TocToolbar in Help window shows 404 with org.apache.jasper from Tomcat 5.5.27
    </td>

  </tr>

  


  

  <tr class="bz_bugitem
             bz_blocker             bz_P1             bz_VERIFIED             bz_FIXED                                       bz_row_even             ">

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

    <td >R3_5_maintenance branch in inconsistent state
    </td>

  </tr>

  


  

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

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

    <td >Errant &quot;Comparing identical expressions&quot; warning with assignment
    </td>

  </tr>

  


  

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

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

    <td >ArrayIndexOutOfBoundsException in MarkerAttributeMap
    </td>

  </tr>

  


  

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

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

    <td >[Widgets] [GTK2.18] Update problem in the Eclipse's &quot;Install new software&quot; dialog.
    </td>

  </tr>

  


  

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

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

    <td >ServiceRegistry doesn't remove BundleContextImpl keys from publishedServicesByContext HashMap when list of services becomes empty
    </td>

  </tr>

  


  

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

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

    <td >'Next Change' does not selected last small diff (button disabled)
    </td>

  </tr>

  


  

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

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

    <td >The org.eclipse.equinox.executable feature has gone backwards in version numbering
    </td>

  </tr>

  


  

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

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

    <td >SWT &amp; Launcher fragments using 'HEAD' as qualifier
    </td>

  </tr>

  


  

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

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

    <td >[launcher] motif.solaris.sparc has bad HEAD tag in map files
    </td>

  </tr>

  


  

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

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

    <td >Rewriting SwitchStatement throws NPE
    </td>

  </tr>

  


  

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

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

    <td >[quick fix] BadLocationException (race condition with preview calculation)
    </td>

  </tr>

  


  

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

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

    <td >[DOM] If using a tag named @enum the ASTParser ignores this
    </td>

  </tr>

  


  

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

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

    <td >[formatter] Certain formatter pref constellation cause endless loop ==&gt; OOME
    </td>

  </tr>

  


  

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

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

    <td >[Widgets] eclipse &gt;= 3.5 crash when closing a first level modal window (Install, Run Configurations)
    </td>

  </tr>

  


  

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

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

    <td >org.eclipse.platform-p2repo-3.5.1.zip missing IUs that were present in Galileo repository
    </td>

  </tr>

  


  

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

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

    <td >Menu images (PNG) does not support semi-alpha-transparency on Windows Vista/7
    </td>

  </tr>

  


  

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

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

    <td >Test errors when running JDT Core tests on Windows 7
    </td>

  </tr>

  


  

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

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

    <td >validateEdit not called for launch configuration stored locally
    </td>

  </tr>

  


  

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

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

    <td >[Widgets] Windows 7: small indeterminate ProgressBar looks broken
    </td>

  </tr>

  


  

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

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

    <td >Cocoa should defer window creation
    </td>

  </tr>

  


  

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

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

    <td >[1.5][compiler] Access to a generic method is compiled incorrectly
    </td>

  </tr>

  


  

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

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

    <td >[Browser] Browser widget crashes VM after failed Ctrl+L in hover
    </td>

  </tr>

  


  

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

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

    <td >[package explorer] hides jars non-java resources when working set is selected
    </td>

  </tr>

  


  

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

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

    <td >[formatter] Backport fixes for known issues around 'Never Join Lines' preference to 3.5 maintenance stream
    </td>

  </tr>

  


  

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

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

    <td >[compiler][jsr14] Translating Enum with jsr14 target: ECJ causes a runtime error while Sun compiler works fine
    </td>

  </tr>

  


  

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

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

    <td >[target] Target environment settings not persisted on Mac OS
    </td>

  </tr>

  


  

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

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

    <td >plug window lost focus when create a NO_FOCUS shell from socket
    </td>

  </tr>

  


  

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

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

    <td >Compiler error on implementation of raw sub interface
    </td>

  </tr>

  


  

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

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

    <td >[Presentations] need to tag org.eclipse.ui.presentations.r21 bundle in 3.5.2 stream
    </td>

  </tr>

  


  

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

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

    <td >org.eclipse.core.resources.compatibility needs to be tagged in the 3.5.2 stream
    </td>

  </tr>

  


  

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

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

    <td >[1.5][compiler] Compiler error: ambiguous method since 3.5.1 using generics and interface inheritance
    </td>

  </tr>

  


  

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

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

    <td >NPE during Export -&gt; Product
    </td>

  </tr>

  


  

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

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

    <td >Plugin export creates faulty bundle when using custom target platform and junit4 dependency
    </td>

  </tr>

  


  

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

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

    <td >[Doc] Bad link in Export Preferences Wizard help page
    </td>

  </tr>

  


  

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

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

    <td >[content assist] Esc Tab on additional info does not bring back the additional info
    </td>

  </tr>

  


  

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

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

    <td >unpack=&quot;true&quot; doesn't work for customBuildCallbacks
    </td>

  </tr>

  


  

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

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

    <td >[backport][Import/Export] Timestamps updated on archive export and on project import
    </td>

  </tr>

  


  

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

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

    <td >LocalFile#move fails when a link with nonexistent target is moved
    </td>

  </tr>

  


  

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

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

    <td >AbortCompilation when invoking content assist
    </td>

  </tr>

  


  

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

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

    <td >[backport] OutOfMemoryError during workspace refresh due to leak in UnifiedTree
    </td>

  </tr>

  


  

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

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

    <td >Remove Google search from help system in 3.5.2
    </td>

  </tr>

  


  

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

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

    <td >[prefs] Thread safety problem in InstancePreferences
    </td>

  </tr>

  


  

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

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

    <td >[launcher] AIX needs jre/lib/&lt;arch&gt; on library search path
    </td>

  </tr>

  


  

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

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

    <td >Need ability to disable status handlers
    </td>

  </tr>

  


  

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

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

    <td >[import] Import holding on to import streams longer than it should be
    </td>

  </tr>

  


  

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

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

    <td >bundle versions have decreased in 3.5.x stream
    </td>

  </tr>

  


  

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

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

    <td >-target jsr14 flags error on foreach over Collection that does not implement Iterable
    </td>

  </tr>

  


  

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

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

    <td >[FieldAssist] ControlDecoration#showHoverText doesn't check if the widget is visible
    </td>

  </tr>

  


  

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

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

    <td >Handling of unknown arguments/targets
    </td>

  </tr>

  


  

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

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

    <td >ClassCastException while invoking quick assist
    </td>

  </tr>

  


  

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

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

    <td >Backport of bug 283283 into 3.5.x is required
    </td>

  </tr>

  


  

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

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

    <td >[Backport] OutOfMemoryError during workspace refresh due to FileInfo carrying substring baggage
    </td>

  </tr>

  


  

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

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

    <td >[Backport] Symbolic link support doesn't work on the AIX
    </td>

  </tr>

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

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

    <td >[Backport] Symbolic link support doesn't work on the Mac
    </td>

  </tr>

  


  

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

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

    <td >[launcher] AIX build of eclipse binary needs adjusting.
    </td>

  </tr>

  


  

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

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

    <td >[Browser] Refresh of PDF in SWT browser leads to jvm crash
    </td>

  </tr>

  


  

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

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

    <td >3.5.x regression: UI randomly freezes
    </td>

  </tr>

  


  

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

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

    <td >[KeyBindings] Exporting key preferences to CSV does not allow context being null
    </td>

  </tr>

  


  

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

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

    <td >[1.5][compiler] ClassCastException in unchecked warning report
    </td>

  </tr>

  


  

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

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

    <td >[CommonNavigator] Source of Contribution set to lowest priority NCE, not the NCE providing the children
    </td>

  </tr>

  


  

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

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

    <td >[Widgets] Embedded native view can not receive Enter key event on Mac.
    </td>

  </tr>

  


  

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

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

    <td >[KeyBindings] Set extension point &quot;org.eclipse.ui.bindings&quot; 's element 'sequenceModifier' becomes disabled key bindings.
    </td>

  </tr>

  


  

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

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

    <td >org.eclipse.core.filesystem.aix.ppc should be added to 3.5.2 build
    </td>

  </tr>

  


  

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

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

    <td >[CommonNavigator] An empty label is not properly shown when it is the only contributed label
    </td>

  </tr>

  


  

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

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

    <td >[browser] xulrunner 1.9.2 changes
    </td>

  </tr>

  


  

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

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

    <td >OOM error caused by java indexing referencing classloader from threadLocal
    </td>

  </tr>

  


  

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

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

    <td >[Widgets] FileDialog can not open a directory correctly on linux gtk swt
    </td>

  </tr>

  


  

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

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

    <td >[CommonNavigator] Problem with enablement on navigatorContent extension point
    </td>

  </tr>

  


  

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

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

    <td >pluginCustomization argument should be removed from nonFrameworkArgs after being processed
    </td>

  </tr>

  


  

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

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

    <td >Debugger opens &quot;.java&quot; files instead of &quot;.class&quot; files if target platform is inside the workspace
    </td>

  </tr>

  


  

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

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

    <td >missing bundles in 3.5.2 stream sdk.examples features
    </td>

  </tr>

  


  

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

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

    <td >[JUnit] JUnit not found when JDT installed as dropin
    </td>

  </tr>

  


  

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

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

    <td >[fwkAdmin] fail to check for null causes NPE when eclipse is installed in the root folder
    </td>

  </tr>

  


  

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

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

    <td >CompareEditorInputs are leaked when reusing editors
    </td>

  </tr>

  


  

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

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

    <td >Documentation has incorrect default for osgi.bundlefile.limit
    </td>

  </tr>

  


  

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

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

    <td >Wrong version attribute for the self provided capability of a category IU
    </td>

  </tr>

  


  

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

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

    <td >[widgets] gtk2.18 - Blank pages in the install wizard
    </td>

  </tr>

  


  

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

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

    <td >Problem applying multiple patches to the same IU
    </td>

  </tr>

  


  

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

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

    <td >getRequirements on a ResolverIU is incorrect
    </td>

  </tr>

  


  

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

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

    <td >UpdateQuery does not account for version properly
    </td>

  </tr>

  


  

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

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

    <td >[Graphics] Eclipse 2010 splash screen
    </td>

  </tr>

  


  

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

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

    <td >IllegalArgumentException can occur during PackagePermission check
    </td>

  </tr>

  


  

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

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

    <td >[Intro] label attribute of tag link doesn't substitute variables like $varName$
    </td>

  </tr>

  


  

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

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

    <td >[Program] org.eclipse.swt.program.Program.launch() will add prefix &quot;file://&quot; before fileName
    </td>

  </tr>

  


  

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

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

    <td >Bad memory performance with multiple p2.repo2runnable calls
    </td>

  </tr>

  


  

  <tr class="bz_bugitem
             bz_enhancement             bz_P3             bz_RESOLVED             bz_FIXED                                       bz_row_odd             ">

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

    <td >[CommonNavigator] Move expanded HEAD CNF tests to 3.5.2
    </td>

  </tr>

  


  

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

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

    <td >several bundles in the 3.5.2 stream need to have their versions incremented
    </td>

  </tr>

  


  

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

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

    <td >version of org.eclipse.core.resources.compatibility bundle in 3.5.2 stream needs to be updated
    </td>

  </tr>

  


  

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

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

    <td >change perf baselines to run with extssh vs pserver
    </td>

  </tr>

  


  

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

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

    <td >[CommonNavigator] CNF viewer state non properly reset when NCEs are activated or deactivated
    </td>

  </tr>

  


  

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

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

    <td >[publisher] Category not exported from update wizard with IBM 1.6 VM
    </td>

  </tr>

  


  

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

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

    <td >EventManager.EventThread.run holding excess memory
    </td>

  </tr>

  


  

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

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

    <td >org.eclipse.pde.ds.core service version needs to be incremented in 3.5.2 stream builds
    </td>

  </tr>

  


  

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

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

    <td >service version of org.eclipse.pde.build needs to be incremented in 3.5.2 stream
    </td>

  </tr>

  


  

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

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

    <td >[CommonNavigator] org.eclipse.ui.navigator bundle needs to be incremented in 3.5.2 stream
    </td>

  </tr>

  


  

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

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

    <td >Update copyright in Help &gt; About
    </td>

  </tr>

  


  

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

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

    <td >Tracker contains a println()
    </td>

  </tr>

  


  

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

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

    <td >Filter does not allow !, | or &amp; as first character of attr names
    </td>

  </tr>

  


  

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

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

    <td >Eclipse 3.5.2: readme_eclipse.html refers to a missing preference page: Help -&gt; Help Server
    </td>

  </tr>

  


  

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

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

    <td >update to Galielo Orbit SR2 build for 3.5.2
    </td>

  </tr>

  


  

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

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

    <td >Incorrect version number and copyright year About dialog
    </td>

  </tr>

  


  

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

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

    <td >org.eclipse.equinox.sdk needs to be tagged in 3.5.2 stream
    </td>

  </tr>

  
    </table>





<span class="bz_result_count">149 bugs found.
</span>

<br>









<p>





<br>




<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, Vista, 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 2010</p>

<h2><a name="Appendix1">Appendix 1: Execution Environment by Bundle</a></h2>

<p>In the table below, the &quot;3.5 minimum execution environment&quot;
  column indicates the minimum Java class library requirements of each bundle
  for the 3.5 release, where the value is one of:</p>
  <table border="0" width="90%">
   <tbody>
    <tr>
      <td align="center"><b>Entry</b></td>
      <td align="left"><b>Meaning</b></td>
    </tr>
    <tr>
      <td width="9%">
      <div align="center"><strong>M1.1</strong></div>
      </td>
      <td width="91%">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><div align="center"><strong>F1.0</strong></div></td>
      <td>J2ME Foundation 1.0 - indicates that the bundle 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.</td>
    </tr>
    <tr>
      <td><div align="center"><strong>F1.1</strong></div></td>
      <td>J2ME Foundation 1.1 - indicates that the bundle 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.</td>
    </tr>
    <tr>
      <td><div align="center"><strong>1.3</strong></div></td>
      <td>J2SE 1.3 - indicates that the bundle can only be run on JSE 1.3 or
        greater.</td>
    </tr>

    <tr>
      <td><div align="center"><strong>1.4</strong></div></td>
      <td>J2SE 1.4 - indicates that the bundle can only be run on JSE 1.4 or
        greater.</td>
    </tr>
    <tr>
      <td><div align="center"><strong>1.5</strong></div></td>
      <td>Java SE 5 - indicates that the bundle can only be run on Java SE 5 or
        greater.</td>

    </tr>
    <tr>
      <td><div align="center"><strong>1.6</strong></div></td>
      <td>Java SE 6 - indicates that the bundle can only be run on Java SE 6 or
        greater.</td>
    </tr>
    <tr>
      <td align="center"><b>n/a</b></td>
      <td>Not applicable. For example the bundle does not contain Java code.</td>
    </tr>
  </tbody>
</table>
<br>
<b>Table of minimum execution environments by bundle.</b><br>
<table border="1">
  <tbody>
    <tr>
      <td width="290"><strong>Bundle</strong></td>
      <td width="60"><div align="center">
          <p align="center"><b>3.5<br>
            minimum<br>
            execution<br>
            environment </b></p>
        </div></td>
    </tr>
    <tr>
      <td>aa.compute.bundle.ee</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>com.ibm.icu</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>com.jcraft.jsch</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>javax.servlet</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>javax.servlet.jsp</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.apache.ant</td>
      <td><div align="center">J2SE-1.2</div></td>
    </tr>
    <tr>
      <td>org.apache.commons.codec</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.apache.commons.el</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.apache.commons.httpclient</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.apache.commons.logging</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.apache.jasper</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.apache.lucene</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.apache.lucene.analysis</td>
      <td><div align="center">not specified</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.compare.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.compare.win32</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.boot</td>
      <td><div align="center">F1.0</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.databinding</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.databinding.beans</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.databinding.observable</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.databinding.property</td>
      <td><div align="center">F1.1</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.filesystem.win32.x86</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.jobs</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.net</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.net.win32.x86</td>
      <td><div align="center">1.4</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.resources.win32.x86</td>
      <td><div align="center">not specified</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.cvs</td>
      <td><div align="center">not specified</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.ecf</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.filetransfer</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.identity</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.provider.filetransfer</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.provider.filetransfer.httpclient</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.provider.filetransfer.httpclient.ssl</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.provider.filetransfer.ssl</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.ssl</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.app</td>
      <td><div align="center">M1.2</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.common</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.concurrent</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.ds</td>
      <td><div align="center">M1.2</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.frameworkadmin</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.frameworkadmin.equinox</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.http.jetty</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.http.registry</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.http.servlet</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.jsp.jasper</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.jsp.jasper.registry</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.launcher</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.launcher.win32.win32.x86</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.artifact.repository</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.console</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.core</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.director</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.director.app</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.directorywatcher</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.engine</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.exemplarysetup</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.extensionlocation</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.garbagecollector</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.jarprocessor</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.metadata</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.metadata.generator</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.metadata.repository</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.publisher</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.reconciler.dropins</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.repository</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.repository.tools</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.touchpoint.eclipse</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.touchpoint.natives</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.ui</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.ui.sdk</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.ui.sdk.scheduler</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.updatechecker</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.updatesite</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.preferences</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.registry</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.security</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.security.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.security.win32.x86</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.simpleconfigurator</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.simpleconfigurator.manipulator</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.util</td>
      <td><div align="center">M1.1</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">not specified</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.pluggable.core</td>
      <td><div align="center">1.6</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.compiler.apt</td>
      <td><div align="center">1.6</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.compiler.tool</td>
      <td><div align="center">1.6</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">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.doc.user</td>
      <td><div align="center">not specified</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.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jface</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jface.databinding</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jface.text</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jsch.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jsch.ui</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</td>
      <td><div align="center">M1.2</div></td>
    </tr>
    <tr>
      <td>org.eclipse.osgi.services</td>
      <td><div align="center">M1.2</div></td>
    </tr>
    <tr>
      <td>org.eclipse.osgi.util</td>
      <td><div align="center">M1.2</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.api.tools</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.api.tools.ui</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">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ds.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ds.ui</td>
      <td><div align="center">1.4</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.ua.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ua.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ui.templates</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">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.platform.doc.user</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.rcp</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.sdk</td>
      <td><div align="center">not specified</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><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.swt.win32.win32.x86</td>
      <td><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.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">1.4</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">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.ide</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.ide.application</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.intro</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.intro.universal</td>
      <td><div align="center">1.4</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.net</td>
      <td><div align="center">F1.1</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.log</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.1</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><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.update.core</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.update.core.win32</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.update.scheduler</td>
      <td><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.hamcrest.core</td>
      <td><div align="center">1.5</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>org.mortbay.jetty.server</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.mortbay.jetty.util</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.objectweb.asm</td>
      <td><div align="center">1.3</div></td>
    </tr>
    <tr>
      <td>org.sat4j.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.sat4j.pb</td>
      <td><div align="center">1.4</div></td>
    </tr>
  </tbody>
</table>

</body>
</html>

