| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | |
| <html> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> | |
| <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> | |
| <meta name="ProgId" content="FrontPage.Editor.Document"> | |
| <title>Eclipse Project Release Notes 2.1.0</title> | |
| </head> | |
| <body> | |
| <h1>Eclipse Project Release Notes</h1> | |
| <p>Release 2.1.0<br> | |
| March 27, 2003</p> | |
| <p align="left"><strong>This software is OSI Certified Open Source Software.<br> | |
| OSI Certified is a certification mark of the Open Source Initiative. </strong></p> | |
| <blockquote> | |
| <p align="left"><a href="#Target Operating Environments">1. Target Operating | |
| Environments</a><br> | |
| <a href="#Compatibility with Previous Release">2. Compatibility with Previous Releases</a><br> | |
| <a href="#Known Issues">3. Known Issues</a><br> | |
| <a href="#Running Eclipse">4. Running Eclipse</a><br> | |
| <a href="#Upgrading">5. Upgrading a Workspace from a Previous Release</a><br> | |
| <a href="#Interoperability with Previous Releases">6. Interoperability with Previous Releases</a><br> | |
| </p> | |
| </blockquote> | |
| <h2>1. <a name="Target Operating Environments"></a> Target Operating | |
| Environments</h2> | |
| <p>Most of the Eclipse SDK is "pure" Java code and has no direct | |
| dependence on the underlying operating system. The chief dependence is therefore | |
| on the Java 2 Platform itself. Like the 2.0 release, the 2.1 release of the | |
| Eclipse Project is written and compiled against version 1.3 of the Java 2 | |
| Platform APIs, and targeted to run on either version 1.3 or 1.4 of the Java 2 | |
| Runtime Environment, Standard Edition.</p> | |
| <p>Eclipse SDK 2.1 has been tested and validated on the following Java 2 | |
| Platform implementations:</p> | |
| <table width="91%" border="1"> | |
| <tbody> | |
| <tr> | |
| <td width="21%"><b>Operating system</b></td> | |
| <td width="18%"><b>Processor architecture</b></td> | |
| <td width="73%"><b>Java 2 Platforms</b></td> | |
| </tr> | |
| <tr> | |
| <td width="21%" rowspan="4">Microsoft<br> | |
| Windows</td> | |
| <td width="18%" rowspan="4">Intel x86</td> | |
| <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1_06 for | |
| Microsoft Windows</td> | |
| </tr> | |
| <tr> | |
| <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4.1_01 for | |
| Microsoft Windows</td> | |
| </tr> | |
| <tr> | |
| <td width="73%">IBM Developer Kit for Windows, Java 2 Technology Edition, | |
| version 1.3.1 SR-2</td> | |
| </tr> | |
| <tr> | |
| <td width="73%">IBM 32-bit SDK for Windows, Java 2 Technology Edition, | |
| version 1.4.0</td> | |
| </tr> | |
| <tr> | |
| <td width="21%" rowspan="3">Linux</td> | |
| <td width="18%" rowspan="3">Intel x86</td> | |
| <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1_06 for | |
| Linux x86</td> | |
| </tr> | |
| <tr> | |
| <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4.1_01 for | |
| Linux x86</td> | |
| </tr> | |
| <tr> | |
| <td width="73%">IBM Developer Kit for Linux, Java 2 Technology Edition, | |
| version 1.3.1 SR-2</td> | |
| </tr> | |
| <tr> | |
| <td width="21%" rowspan="2">Sun Solaris</td> | |
| <td width="18%" rowspan="2">SPARC</td> | |
| <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1_06 for | |
| Solaris SPARC</td> | |
| </tr> | |
| <tr> | |
| <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4.1_01 for | |
| Solaris SPARC</td> | |
| </tr> | |
| <tr> | |
| <td width="21%">HP HP-UX</td> | |
| <td width="18%">hp9000 PA-RISC</td> | |
| <td width="73%"><span class="header">HP-UX SDK for the Java 2 platform, | |
| version 1.3.1 for hp9000 PA-RISC</span></td> | |
| </tr> | |
| <tr> | |
| <td width="21%">IBM AIX</td> | |
| <td width="18%">PowerPC</td> | |
| <td width="73%">IBM Developer Kit for AIX, Java 2 Technology Edition, | |
| version 1.3.1</td> | |
| </tr> | |
| <tr> | |
| <td width="21%" rowspan="2">Apple Mac OS</td> | |
| <td width="18%" rowspan="2">PowerPC</td> | |
| <td width="73%">Java 2 Platform, Standard Edition, version 1.3.1 for Mac | |
| OS X</td> | |
| </tr> | |
| <tr> | |
| <td width="73%">Java 2 Platform, Standard Edition, version 1.4.1 for Mac | |
| OS X</td> | |
| </tr> | |
| <tr> | |
| <td width="21%"><span class="title">QNX | |
| Neutrino RTOS</span></td> | |
| <td width="18%">Intel x86</td> | |
| <td width="73%">IBM J9 VM for QNX, version 2.0</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <p><span class="header">The following table describes the combinations of | |
| operating system and Java 2 Platform used when testing the Eclipse SDK | |
| configurations. The status column indicates the level of testing: | |
| "Primary" means a full tested configuration; "</span>Secondary" | |
| means a configuration which is only lightly tested; "Untested" means a | |
| configuration that has received no testing, but which should work. Note that the | |
| Mac OS X configuration is considered early access for the 2.1 release; it has | |
| been tested, but is not product quality in this release.</p> | |
| <table width="91%" border="1" height="415"> | |
| <tbody> | |
| <tr> | |
| <td width="11%" height="32"><b>Window system</b></td> | |
| <td width="28%" height="32"><b>Java 2 Platform<br> | |
| (see above table)</b></td> | |
| <td width="42%" height="32"><b>Operating Environment</b></td> | |
| <td width="19%" height="32"><b>Testing Status</b></td> | |
| </tr> | |
| <tr> | |
| <td width="11%" rowspan="5" height="104">Win32</td> | |
| <td width="28%" rowspan="5" height="104">Windows on Intel x86</td> | |
| <td width="42%" height="16">Windows XP</td> | |
| <td width="19%" height="16">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="42%" height="16">Windows 2000</td> | |
| <td width="19%" height="16">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="42%" height="16">Windows ME</td> | |
| <td width="19%" height="16">Secondary</td> | |
| </tr> | |
| <tr> | |
| <td width="42%" height="16">Windows 98SE</td> | |
| <td width="19%" height="16">Secondary</td> | |
| </tr> | |
| <tr> | |
| <td width="42%" height="16">Windows NT</td> | |
| <td width="19%" height="16">Secondary</td> | |
| </tr> | |
| <tr> | |
| <td width="11%" rowspan="6" height="152">Motif</td> | |
| <td width="28%" rowspan="3" height="86"> | |
| <p>Linux on Intel x86</p> | |
| <p> </p> | |
| </td> | |
| <td width="42%" height="25">RedHat Linux 8.0 x86</td> | |
| <td width="19%" height="25">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="42%" height="25">SuSE Linux 8.1 x86</td> | |
| <td width="19%" height="25">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="42%" height="24">Other Linux; kernel version 2.4.7, and XFree86 | |
| version 4.1.0</td> | |
| <td width="19%" height="24">Untested</td> | |
| </tr> | |
| <tr> | |
| <td width="28%" height="16">Solaris on SPARC </td> | |
| <td width="42%" height="16">Sun Solaris 8 SPARC</td> | |
| <td width="19%" height="16">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="28%" height="16">HP-UX on hp9000 PA-RISC</td> | |
| <td width="42%" height="16">HP-UX 11i hp9000</td> | |
| <td width="19%" height="16">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="28%" height="16">AIX on PowerPC</td> | |
| <td width="42%" height="16">IBM AIX 5.1 on PowerPC</td> | |
| <td width="19%" height="16">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="11%" rowspan="4" height="81">GTK</td> | |
| <td width="28%" rowspan="4" height="81">Linux on Intel x86</td> | |
| </tr> | |
| <tr> | |
| <td height="15">RedHat Linux 8.0 x86 (GTK 2.2 required for DBCS)</td> | |
| <td height="15">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="42%" height="16">SuSE Linux 8.1 x86 (Latin-1 only)</td> | |
| <td width="19%" height="16">Primary</td> | |
| </tr> | |
| <tr> | |
| <td width="42%" height="16">Other Linux; GTK 2.0.6 (GTK 2.2 required for | |
| DBCS)</td> | |
| <td width="19%" height="16">Untested</td> | |
| </tr> | |
| <tr> | |
| <td width="11%" height="16">Carbon</td> | |
| <td width="28%" height="16">Mac OS X on PowerPC</td> | |
| <td width="42%" height="16">Mac OS X 10.2</td> | |
| <td width="19%" height="16"><i>Early access</i></td> | |
| </tr> | |
| <tr> | |
| <td width="11%" height="16">Photon</td> | |
| <td width="28%" height="16">IBM J9 VM for QNX</td> | |
| <td width="42%" height="16">QNX Neutrino RTOS 6.2.1 </td> | |
| <td width="19%" height="16">Primary</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <h4>Internationalization</h4> | |
| <p>The Eclipse Platform is designed as the basis for internationalized products. | |
| The user interface elements provided by the Eclipse SDK components, including | |
| dialogs and error messages, are externalized. The English strings are provided | |
| as the default resource bundles.</p> | |
| <p>Latin-1 locales are supported by the Eclipse SDK on all of the above | |
| operating environments; DBCS locales are supported by the Eclipse SDK on the | |
| Windows, GTK, and Motif window systems; BIDI locales are supported by the | |
| Eclipse SDK only on Windows operating environments. | |
| <p>The Eclipse SDK supports GB 18030, the new Chinese code page standard, on | |
| Windows 2000 and XP, and Linux. Note, however, that GB 18030 also requires | |
| locale and character encoding support from the Java 2 Runtime Environment; this | |
| support is standard in version 1.4, and also available in some 1.3 JREs. | |
| <p>German and Japanese locales have been tested. | |
| <h4>BIDI support</h4> | |
| <p>The Eclipse SDK is a development environment targeted at technical | |
| professionals - not an end user application. However, the Eclipse SDK tools will | |
| permit technical professionals who are working in English to build Hebrew/Arabic | |
| end user Java programs which are themselves not based on the Eclipse SDK. The | |
| BIDI support in the Eclipse SDK allows a Java programmer to work with BIDI | |
| strings, code comments, etc. but the Eclipse SDK itself is not designed to be | |
| localized for BIDI locales and its widget orientation cannot be changed.</p> | |
| <p><i>IMPORTANT: The above BIDI support is available only for Windows operating | |
| environments.</i></p> | |
| <h2>2. <a name="Compatibility with Previous Release"></a> Compatibility with | |
| Previous Releases</h2> | |
| <h3>Compatibility of Release 2.1 with 2.0</h3> | |
| Eclipse SDK 2.1 is intended to be upwards compatible with Eclipse SDK 2.0. We | |
| have made exceptions only in areas where slavishly maintaining compatibility | |
| would not be in the best interests of Eclipse or its clients. The exceptions are | |
| noted in the next section. | |
| <p><b>API Contract Compatibility:</b> Eclipse SDK 2.1 is upwards | |
| contract-compatible with Eclipse SDK 2.0 except as noted in the next section. | |
| This means that programs in full compliance with contracts specified in Eclipse | |
| SDK 2.0 APIs is automatically in full compliance with Eclipse SDK 2.1 APIs. (API | |
| is construed broadly to include such things as plug-in extension points.) | |
| Downward contract compatibility is not supported. There is no guarantee that | |
| compliance with Eclipse SDK 2.1 APIs ensures compliance with Eclipse SDK 2.0 | |
| APIs. Refer to <i><a href="http://eclipse.org/eclipse/development/java-api-evolution.html">Evolving | |
| Java-based APIs</a></i> for a discussion of the kinds of API changes that | |
| maintain contract compatibility.</p> | |
| <p><b>Binary (plug-in) Compatibility:</b> Eclipse SDK 2.1 is upwards | |
| binary-compatible with Eclipse SDK 2.0 except as noted in the next section. This | |
| means that plug-ins built for Eclipse SDK 2.0 will continue to work correctly in | |
| Eclipse SDK 2.1 without change. Downward plug-in compatibility is not supported. | |
| Plug-ins for Eclipse SDK 2.1 are unlikely to be usable in Eclipse SDK 2.0. | |
| Plug-ins with hard-coded references in their plug-in manifest file to 2.0 | |
| versions of prerequisite Eclipse Project plug-ins will work in 2.1 provided the | |
| version match rule is "greaterOrEqual" or "compatible" (the | |
| default); references using "perfect" or "equivalent" match | |
| rules will be broken. Refer to <i><a href="http://eclipse.org/eclipse/development/java-api-evolution.html">Evolving | |
| Java-based APIs</a></i> for a discussion of the kinds of API changes that | |
| maintain binary compatibility. | |
| <p><b>Source Compatibility:</b> Eclipse SDK 2.1 is upwards source-compatible | |
| with Eclipse SDK 2.0 except as noted in the next section. This means that source | |
| files written to use Eclipse SDK 2.0 APIs can be successfully compiled and run | |
| against Eclipse SDK 2.1 APIs. Since source incompatibilities are easy to deal | |
| with, maintaining source compatibility is considered much less important than | |
| maintaining contract and binary compatibility. Downward source compatibility is | |
| not supported. If source files use new Eclipse SDK APIs, they will not be usable | |
| with an earlier version of Eclipse SDK. | |
| <p><b>Workspace Compatibility:</b> Eclipse SDK 2.1 is upwards | |
| workspace-compatible with Eclipse SDK 2.0 except as noted in the next section. | |
| This means that workspaces and projects created with Eclipse SDK 2.0 can be | |
| successfully opened by Eclipse SDK 2.1 and upgraded to a 2.1 workspace. | |
| This includes both hidden metadata, which is localized to a particular | |
| workspace, as well as metadata files found within a workspace project (e.g., the | |
| .project file), which may propagate between workspaces via file copying or team | |
| repositories. Individual plug-ins developed for Eclipse SDK 2.1 should provide | |
| similar upwards compatibility for their hidden and visible workspace metadata | |
| created by earlier versions; 2.1 plug-in developers are responsible for ensuring | |
| that their plug-ins recognize both 2.1 and 2.0 metadata and process it | |
| appropriately. User interface session state may be discarded when a workspace is | |
| upgraded. Downward workspace compatibility is not supported. A workspace created | |
| (or opened) by Eclipse SDK 2.1 will be unusable with an earlier version of | |
| Eclipse SDK. Visible metadata files created (or overwritten) by Eclipse SDK 2.1 | |
| will generally be unusable with earlier versions of Eclipse SDK. | |
| <p><b>Non-compliant usage of API's</b>: All non-API methods and classes, and | |
| certainly everything in a package with "internal" in its name, are | |
| considered implementation details which may vary between operating environment | |
| and are subject to change without notice. Client plug-ins that directly depend | |
| on anything other than what is specified in the Eclipse SDK API are inherently | |
| unsupportable and receive no guarantees about compatibility within a single | |
| release much less with earlier releases. Refer to <i><a href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html">How | |
| to Use the Eclipse API</a></i> for information about how to write compliant | |
| plug-ins.</p> | |
| <h3>2.1 Incompatibilities between release 2.1 and 2.0</h3> | |
| <p>Eclipse 2.1 breaks compatibility with Eclipse 2.0 in the following areas.</p> | |
| <p>Note: Bug numbers refer to the Eclipse project bug database at <a href="http://dev.eclipse.org/bugs/">http://dev.eclipse.org/bugs/</a></p> | |
| <h3>Platform - Core</h3> | |
| <h4>Linked resources</h4> | |
| <p>Eclipse 2.1 allows a project in the workspace to bring together contents from | |
| several different directories on disk using what are termed linked folders and | |
| files. The presence of linked resources changes a fundamental assumption true | |
| for earlier versions of Eclipse, namely, that all of a project's files are | |
| located under the project's root directory in the local file system. | |
| Furthermore, the target of a linked resource is allowed to overlap that of | |
| another linked resource, or overlap the root directory of any project. This new | |
| potential for overlap means that several distinct files in the workspace might | |
| map to the same file in the local file system. In 2.0, there was no way for | |
| overlap to happen (project root directories are not allowed to overlap).</p> | |
| <p>These changes have several ramifications at the API:</p> | |
| <ul> | |
| <li><code>IResource.getLocation</code> can return <code>null</code> in more | |
| cases than before.</li> | |
| <li><code>IWorkspaceRoot.getContainerForLocation</code> and <code>getFileForLocation</code> | |
| are no longer sufficient to map from file system path to workspace path in | |
| the presence of linked resources, as these calls do not account for linked | |
| files or files under linked folders. Two new methods were added to handle | |
| the possibility of overlap: <code>IWorkspaceRoot.findContainersForLocation</code> | |
| and <code>findFilesForLocation</code>.</li> | |
| </ul> | |
| <p>Since linked resources and their children appear in the workspace as normal | |
| files and folders, client code that works exclusively with the workspace | |
| resource tree is not affected. The clients most likely to be impacted are ones | |
| that assume that all of a project's files are located together in the local file | |
| system under the project's root directory. For example, an export utility that | |
| works directly on the local file system might miss some of a project's files if | |
| it only looks within the project's root directory.</p> | |
| <p>This change was made to give certain kinds of users greater flexibility in | |
| laying out their projects on disk. The behavior of existing plug-ins is | |
| unchanged from 2.0 for projects that do not use linked resources. Depending on | |
| the assumptions made, existing plug-ins might misbehave or fail for projects | |
| containing linked resources. A plug-in can prohibit linked resources for a | |
| project via a project nature (<code>IProjectNatureDescriptor.isLinkingAllowed()</code>), | |
| but this should only be done where there is a good reason to deny the user this | |
| additional flexibility in laying out a project. Users can disable linked resources | |
| via the <b>Workbench > Linked | |
| Resources</b> preference page. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6664">6664</a>)</p> | |
| <h4>Project build order</h4> | |
| <p>The default order in which projects get built was changed in Eclipse 2.1 to | |
| improve the handling of mutually-dependent projects. The old method <code>IWorkspace.computePrerequisiteOrder</code> | |
| was deprecated and replaced by <code>IWorkspace.computeProjectOrder</code>. | |
| Since there are few potential clients of either method beyond the Eclipse | |
| Platform itself, it's unlikely that clients will be affected. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10262">10262</a>, | |
| <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=25952">25952</a>)</p> | |
| <h3>Platform - UI</h3> | |
| <h4>Restructuring of UI plug-ins</h4> | |
| <p>In Eclipse 2.1, the API and code for the <code>org.eclipse.ui</code> plug-in | |
| was partitioned and parceled out to several new plug-ins (<code>org.eclipse.jface</code>, | |
| <code>org.eclipse.text</code>, and <code>org.eclipse.ui.workbench</code>, etc.). | |
| Although this looks on the surface to be a breaking change, it is not. These new | |
| plug-ins are internal and should not be referenced explicitly. As they always | |
| have, plug-ins requiring the Eclipse Platform UI (API found in the <code>org.eclipse.swt.*</code>, | |
| <code>org.eclipse.jface.*</code>, and <code>org.eclipse.ui.*</code> packages) | |
| should continue to state a dependency on the <code>org.eclipse.ui</code> | |
| plug-in.</p> | |
| <h3>Platform - Help</h3> | |
| <h4>Pluggable app server</h4> | |
| <p>Eclipse 2.0 provided interim support for pluggable app servers via an | |
| undocumented <code>org.eclipse.help.app-server</code> extension point, with | |
| interim APIs in the <code>org.eclipse.help</code> package. For 2.1, this support | |
| has been made internal, along with the former interim API classes. Because this | |
| support was marked as interim for 2.0, this is not considered a breaking API change. | |
| Nevertheless, existing clients using the interim support will be broken. Even | |
| though the mechanism is not officially supported, clients that are adamant about | |
| plugging in a different app server can do so (with all the usual risks of | |
| depending on unsupported Eclipse internals).</p> | |
| <h4>Pluggable web browser</h4> | |
| <p>Eclipse 2.0 provided interim support for pluggable web browsers via the <code>org.eclipse.help.ui.browser</code> | |
| extension point, with API in the <code>org.eclipse.help.ui.browser</code> | |
| package. For 2.1, this support appears in finished form in different location: | |
| the <code>org.eclipse.help.browser</code> extension point, with API in the <code>org.eclipse.help.browser</code> | |
| package. Because this support was marked as interim for 2.0, this is not | |
| considered a breaking API change. Nevertheless, existing clients using the interim support will | |
| need to update the extension point and package names.</p> | |
| <h3>Platform - Team</h3> | |
| <b> | |
| <p>Validate edit/save</p> | |
| </b> | |
| <p>There are some new restrictions that repository providers should be aware of | |
| when implementing <code>validateSave/Edit</code>. The first is that the hook can | |
| be invoked from a non-UI thread. The provider should use <code>Display.syncExec()</code> | |
| if they are affecting any UI components. Also, the hook should not display a | |
| progress monitor because there is a good possibility that there already is one | |
| open for the operation being performed; opening another will cause deadlock. | |
| (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=33471">33471</a>)</p> | |
| <b> | |
| <p>Linked resources</p> | |
| </b> | |
| <p>The new support for linked folders and files added in Eclipse 2.1 impacts | |
| repository providers because it changes some of the rules about relationships | |
| between files in the workspace and their corresponding locations in the local | |
| file system. All existing repository providers should be updated to handle | |
| linked resources, as described in the 2.1 Team API. If | |
| a project is shared via an older 2.0 repository provider, the user will be | |
| prohibited from creating linked resources in that project. (bug | |
| <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=26469">26469</a>)</p> | |
| <h3>Platform - SWT</h3> | |
| <h4>Character field in key event</h4> | |
| <p>The specification of the <code>Event.character</code> field now makes it | |
| clear that the character reflects the outcome after any modifier keys are taken | |
| into account (for example, CTRL+A is reduced to the ASCII equivalent character | |
| with integer value 1). Since the treatment of modifier keys was completely | |
| unspecified before, this change affects clients that make assumptions about how | |
| modifiers are handled. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=33592">33592</a>)</p> | |
| <h4>New key modifier: command</h4> | |
| <p>In order to properly support the Mac for Eclipse 2.1, a new <code>SWT.COMMAND | |
| </code>key modifier constant was added to represent the Apple command key. On | |
| the Mac, the command key plays the same role as the control key plays elsewhere, | |
| whereas the control key is used mainly as an additional mouse click modifier. | |
| Clients that merely want to check for the appropriate primary modifier for the | |
| OS should instead use the new bit mask <code>SWT.MOD1</code> in favor of either <code>SWT.CONTROL</code> | |
| or <code>SWT.COMMAND</code>. The advent of the Mac port of Eclipse affects | |
| existing clients that explicitly check for the <code>SWT.CONTROL</code> | |
| modifier. In most cases, they should instead check for <code>SWT.MOD1</code> so | |
| that they work appropriately on both Macs and non-Macs. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24393">24393</a>)</p> | |
| <h4>OLE variant type exceptions</h4> | |
| <p>An <code>SWTError</code> exception is now thrown when a Java type is | |
| requested from an empty variant type (<code>VT_EMPTY</code>). Since existing | |
| clients should already be handling <code>SWTError</code> exceptions as per the | |
| spec for <code>Variant.getInt()</code>, etc., this change should not affect | |
| existing clients. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24402">24402</a>)</p> | |
| <h4>Multiple drag and drop adapters</h4> | |
| <p>An <code>SWTError</code> exception is now thrown if you create a second <code>DragSource</code> | |
| (or <code>DropTarget</code>) for a widget. Across various window systems, the | |
| results of creating multiple drag source or drop target objects were at best | |
| indeterminate. The exception makes it clear that this is not supported. Since | |
| existing clients should already be handling <code>SWTError</code> exceptions as | |
| per the spec for the <code>DragSource</code> and <code>DropTarget</code> | |
| constructors, this change should not impact existing clients. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35214">35214</a>)</p> | |
| <h3>Platform - Install/Update</h3> | |
| <p>None.</p> | |
| <h3>Platform - Ant</h3> | |
| <p>None.</p> | |
| <h3>Platform - Debug</h3> | |
| <p>None.</p> | |
| <h3>Platform - Search</h3> | |
| <h4>Inexact matching</h4> | |
| <p>There is a new preference setting that controls whether the search engine | |
| should report inexact matches. The user can set this via the <b>Workbench > | |
| Search </b>preference page. The new API method <code>SearchUI.arePotentialMatchesIgnored</code> | |
| should be used to query the preference setting. Existing clients that contribute | |
| a particular search engine (or search page) should consider whether the notion | |
| of an inexact match is meaningful in their particular context, and honor this | |
| preference if it is. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20663">20663</a>)</p> | |
| <h3>Platform - Text</h3> | |
| <h4>File encoding preserved</h4> | |
| <p><code>FileDocumentProvider</code> now saves a file in the encoding it has | |
| been read rather than in the workbench's default encoding.</p> | |
| <h4>Key binding scopes</h4> | |
| <p>Clients should be aware of key binding scopes, which were introduced in 2.1. <code>TextEditor</code> | |
| sets "org.eclipse.ui.textEditorScope" as its key binding scope. | |
| Subclasses inherit this setting if they do not override "initializeKeybindingScopes". | |
| <code>AbstractTextEditor</code> does not set any key binding scopes; it leaves | |
| this to its subclasses.</p> | |
| <h4>Action definition ids are mandatory</h4> | |
| <p>All actions registered with an instance of <code>AbstractTextEditor</code> | |
| should have an action definition id. Otherwise they will not be accessible via | |
| accelerators.</p> | |
| <h4>Deprecated API</h4> | |
| <p>The following class, methods, and constants have been deprecated. The Javadoc | |
| indicates what should be used instead.</p> | |
| <ul> | |
| <li>Package <code>org.eclipse.ui.texteditor</code> | |
| <ul> | |
| <li>Field <code>AbstractTextEditor.PREFERENCE_FONT</code> | |
| </li> | |
| </ul> | |
| </li> | |
| <li>Package <code>org.eclipse.jface.text.source</code> | |
| <ul> | |
| <li>Constructor <code>AnnotationBarHoverManager(ISourceViewer, | |
| IVerticalRuler, IAnnotationHover, IInformationControlCreator)</code> | |
| </li> | |
| </ul> | |
| </li> | |
| <li>Package <code>org.eclipse.jface.text.rules</code> | |
| <ul> | |
| <li>Constructor <code>DefaultDamagerRepairer(ITokenScanner, | |
| TextAttribute)</code> | |
| </li> | |
| </ul> | |
| </li> | |
| <li>Package <code>org.eclipse.jface.text.information</code> | |
| <ul> | |
| <li>Method <code>IInformationProvider.getInformation(ITextViewer, IRegion)</code> | |
| </li> | |
| </ul> | |
| </li> | |
| <li>Package <code>org.eclipse.ui.texteditor</code> | |
| <ul> | |
| <li>Constructor <code>IncrementalFindAction(ResourceBundle, String, | |
| IWorkbenchWindow, <b>boolean</b>)</code> | |
| </li> | |
| <li>Constructor <code>MarkerRulerAction(ResourceBundle, String, | |
| IVerticalRuler, ITextEditor, String, <b>boolean</b>)</code> | |
| </li> | |
| <li>Method <code>MarkerRulerAction.getVerticalRuler()</code> | |
| </li> | |
| <li>Constructor <code>SelectMarkerRulerAction(ResourceBundle, String, | |
| IVerticalRuler, ITextEditor)</code> | |
| </li> | |
| </ul> | |
| </li> | |
| </ul> | |
| <h3>Platform - Compare</h3> | |
| <p>None.</p> | |
| <h3>JDT - Core</h3> | |
| <h4>Multiple output folders</h4> | |
| <p>In Eclipse 2.0, all generated class files (and copied resource files) for a | |
| Java project get written to the project's single output folder. As of 2.1, the | |
| generated class files (and copied resource files) can be partitioned across | |
| several output folders, with each source build path entry specifying which | |
| output folder its generated files get written to. This change was made to give | |
| certain kinds of users greater flexibility in laying out their Java projects on | |
| disk. Clients used to be able to assume that a Java project's output files were | |
| in the project's output folder (<code>IProject.getOutputLocation()</code>); now | |
| they need to take into account the possibility of other output locations (<code>IClasspathEntry.getOutputLocation()!=null</code>). Existing code appears to work fine until the user exercises the | |
| additional flexibility. This change is most likely to affect client code that | |
| deploys code directly from the project's output folder (e.g., creates a JAR; | |
| launches a Java VM with the output folder on the runtime class path). (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24123">24123</a>)</p> | |
| <h4>Source folder exclusion patterns</h4> | |
| <p>In Eclipse 2.0, all Java source files under a source folder on a project's | |
| build class path were compiled and included in the Java model. The notion of | |
| exclusion patterns were added in 2.1 to give certain kinds of users greater | |
| flexibility in laying out their Java projects on disk Exclusion patterns | |
| associated with a source entry on the build class path (<code>IClasspathEntry.getExclusionPatterns()</code>) | |
| cause matching files or subdirectories to be ignored for the purposes of | |
| compilation and inclusion in the Java model. Most existing clients traverse the | |
| Java model and will continue to work fine. However, clients that directly | |
| traverse the corresponding source folder in the local file system need to take | |
| into account the possibility that some of the files found there may have been | |
| excluded with this new mechanism. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22039">22039</a>)</p> | |
| <h4>Code formatter positions</h4> | |
| <p>The specification for <code>ICodeFormatter.format</code> was changed to | |
| specify that the positions array passed in must be in non-decreasing order. The | |
| implementation had always been making this assumption, and there would have been | |
| serious performance consequences to specify the method as working with unordered | |
| positions. Existing clients are unlikely to be affected. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=30417">30417</a>)</p> | |
| <h4>Leading comments on AST Statement nodes</h4> | |
| <p><code>Statement.getLeadingComment</code> and <code>setLeadingComment</code> | |
| have been deprecated because they were not a particularly good way to deal with | |
| the general issue of comments and significant whitespace. Since the | |
| implementations of <code>AST.parseCompilationUnit</code> never set the leading | |
| comment for any AST nodes they create, the change is moot for most clients. (bug | |
| <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29176">29176</a>)</p> | |
| <h4>Empty array passed to Java model operation</h4> | |
| <p>In Eclipse 2.0, certain Java model API operations (<code>IJavaModel.delete</code>, | |
| <code>copy</code>, <code>move</code>, and <code>rename</code>) threw an <code>ArrayIndexOutOfBoundsException</code> | |
| if passed an empty array. The behavior in this case was completely unspecified. | |
| For 2.1, the specification and implementation of these operations have been | |
| changed to throw <code>JavaModelException</code> in such cases. Clients need to | |
| be aware that the empty array case does indeed trigger an exception. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32219">32219</a>)</p> | |
| <h4>Non-Java projects included in Java model </h4> | |
| <p>In Eclipse 2.0, non-Java projects and closed projects were excluded from the | |
| Java model. In 2.1, non-Java projects and closed projects are available from the | |
| Java model via <code>IJavaModel.getNonJavaResources</code>. Their inclusion in | |
| the Java model means that they appear in Java model deltas, under <code>IJavaElementDelta.getResourceDeltas</code>. | |
| This change may affect clients that listen for Java element deltas (via <code>JavaCore.addElementChangedListener</code>) | |
| if they make overly strong assumptions about triggering conditions and contents. | |
| (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29274">29274</a>)</p> | |
| <h4>Java element changed events for full working copy lifecycle</h4> | |
| <p>In Eclipse 2.0, Java element changed events were reported for changes to | |
| shared working copies, but not when they were created or destroyed. In 2.1, Java | |
| element changed events are uniformly issued for the full lifecycle of working | |
| copies and apply equally to non-shared as well as shared working copies. This | |
| change may affect clients that listen for Java element deltas (via <code>JavaCore.addElementChangedListener</code>) | |
| if they make overly strong assumptions about triggering conditions and contents. | |
| (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32981">32981</a>)</p> | |
| <h4>IJavaProject.isOnClasspath</h4> | |
| <p>For Eclipse 2.1, the API predicate <code>IJavaProject.isOnClasspath</code> | |
| (both forms) was changed to do the more standard thing of returning false rather | |
| than throwing <code>JavaModelException</code> in some cases. While this change | |
| is within the original spirit of the original API contract, it breaks | |
| source compatibility because <code>JavaModelException</code> is a checked | |
| exception; code that invokes this method and catches <code>JavaModelException</code> | |
| may need to be rewritten. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=33754">33754</a>)</p> | |
| <h3>JDT - UI</h3> | |
| <p>None.</p> | |
| <h3>PDE</h3> | |
| <p>None.</p> | |
| <h2>3. <a name="Known Issues"></a> Known Issues</h2> | |
| <blockquote> | |
| <p><a href="#I-Platform">3.1 Platform</a><br> | |
| <a href="#I-Platform - Core">3.1.1 Core</a><br> | |
| <a href="#I-Platform - Ant">3.1.2 Ant</a><br> | |
| <a href="#I-Platform - Help">3.1.3 Help</a><br> | |
| <a href="#I-Platform - UI">3.1.4 UI</a><br> | |
| <a href="#I-Platform - Text">3.1.5 Text</a><br> | |
| <a href="#I-Platform - SWT">3.1.6 SWT</a><br> | |
| <a href="#I-Platform - Team - CVS">3.1.7 Team</a><br> | |
| <a href="#I-Platform - Install/Update">3.1.8 | |
| Install/Update<br> | |
| </a> <a href="#I-Platform - Debug">3.1.9 Debug<br> | |
| </a> <a href="#I-Java Development Tools (JDT)">3.1.10 Compare<br> | |
| 3.2 Java Development Tools (JDT)<br> | |
| 3.3 Plug-in Development Environment (PDE)</a><br> | |
| <a href="#I-Other - FTP and WebDAV support">3.4 Other<br> | |
| </a> <a href="#I-Other - FTP and WebDAV support">3.4.1 | |
| FTP and WebDAV support</a></p> | |
| </blockquote> | |
| <p>Note: Bug numbers refer to the Eclipse project bug database at <a href="http://dev.eclipse.org/bugs/">http://dev.eclipse.org/bugs/</a></p> | |
| <h3>3.1 <a name="I-Platform">Platform</a></h3> | |
| <h4>DBCS support on Linux GTK (Linux GTK only)</h4> | |
| <p>The versions of GTK included with RedHat Linux 8.0 and SuSE Linux 8.1 that we | |
| tested support Latin-1 locales but not DCBS. The DCBS support in GTK 2.2 should | |
| be sufficient, and in principle Eclipse should work on any recent Linux with GTK | |
| 2.2. We have verified that Eclipse DBCS support works with RedHat Linux 8.0 and | |
| GTK 2.2. However, we were unable to get Eclipse working with SuSE Linux 8.1 and | |
| and GTK 2.2, so this remains an open issue.</p> | |
| <h4>Eclipse process does not exit (HP-UX only)</h4> | |
| <p>On HP-UX, the HP JVM process that runs the Eclipse Workbench does not | |
| terminate upon closing the workbench. The remedy is to always pass the <code>-XdoCloseWithReadPending</code> | |
| to the VM via the Eclipse launcher command line; that is, launch Eclipse with | |
| the command line:</p> | |
| <blockquote> | |
| <p><code>eclipse -vmargs -XdoCloseWithReadPending</code></p> | |
| </blockquote> | |
| <p>(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18321">18321</a>)</p> | |
| <h3>3.1.1 <a name="I-Platform - Core">Platform - Core</a></h3> | |
| <h4>Declaring package name prefixes improves plug-in class loading speed</h4> | |
| <p>A significant (10-15%) speed increase in the time to load a plug-in's classes | |
| can be obtained simply by declaring the package name prefixes found in that | |
| plug-in's runtime library JARs. This is done in the new Package Prefixes section | |
| of the Runtime page in the PDE plug-in manifest editor. (Further information <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-core-home/docs/package-prefixes/prefixes.html">here</a>.)</p> | |
| <h4><b>Invalid characters in install directory prevents Eclipse from starting</b></h4> | |
| <p>Eclipse will fail to launch if installed in a directory whose path contains | |
| certain invalid characters, including :%#<>"!. The workaround is to | |
| install Eclipse in a directory whose path does not contain invalid characters. | |
| (bugs <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3109">3109</a> and <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17281">17281</a>)</p> | |
| <h4><b>Problems with classloaders in created threads</b></h4> | |
| <p>There is a known issue with trying to load classes from a newly-created | |
| thread using a class loader different from the plug-in class loader. The result | |
| will be a <code>ClassNotFoundException</code>. As a workaround, do the | |
| following:</p> | |
| <ol> | |
| <li>Create a thread in which to run your code.</li> | |
| <li>Send yourThread.setContextClassLoader(yourClassLoader); // you can find | |
| your classloader by grabbing a class it loaded (YourPluginClass.class.getClassLoader())</li> | |
| <li>Run your code in the newly created thread.</li> | |
| </ol> | |
| <p>If you set the context class loader for the current thread, you are competing | |
| with other users of the thread (all of Eclipse), so the results will be | |
| unpredictable. However, there should be no problem in practice provided you | |
| reset the context class loader back to its original value when your use in the | |
| current thread is complete. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8907">8907</a>)</p> | |
| <h4>Deadlock creating executable extension in Plugin.startup</h4> | |
| <p>If <code>Plugin.startup</code> code is too complex and performs tasks such as | |
| creating an executable extension, a deadlock situation can be created. Only | |
| simple bookkeeping tasks should be performed in <code>Plugin.startup</code> | |
| code. (bugs <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=12827">12827</a>, | |
| <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5875">5875</a>, <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16141">16141</a>)</p> | |
| <h3>3.1.2 <a name="I-Platform - Ant">Platform - Ant</a></h3> | |
| <h4>Xerces JARs no longer required on runtime Ant classpath</h4> | |
| <p>Explicitly adding the Xerces JARs to the runtime Ant classpath is no longer | |
| required and can cause problems. The Xerces classes are loaded from the <code>org.apache.xerces</code> | |
| plug-in provided with Eclipse. For most Ant | |
| distributions, the Xerces JARs cannot even be in the same physical location as | |
| the <code>ant.jar</code> and <code>optional.jar</code>. This results from the | |
| Ant JARs containing manifest files which contain classpath entries pointing to | |
| the Xerces JARs. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33664">33664</a>, | |
| <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33117">33117</a>, <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34151">34151</a>)</p> | |
| <h4>Custom Ant tasks and Ant types must be separate from plug-in library JARs</h4> | |
| <p>Including the class files for custom Ant tasks or Ant types in the regular | |
| code JAR for your plug-in causes problems. These class files must be provided in | |
| a separate JAR that is contributed to the <code>org.eclipse.ant.core.antTasks</code> | |
| or <code>antTypes</code> extension point (and not declared as a library in the | |
| plug-in's manifest). This ensures that the Ant tasks and types are loaded by the | |
| special Ant class loader and not by a plug-in classloader. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34466">34466</a>).</p> | |
| <h4>Concurrent Ant builds not supported</h4> | |
| <p>Eclipse runs Ant in the same JVM as the rest of Eclipse. Several aspects of | |
| Ant and its use of global Java resources (such as System.out and System.err), | |
| make it unsafe to run more than one Ant build concurrently. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24129">24129</a>).</p> | |
| <h4>Running certain Ant tasks cause memory leakage</h4> | |
| <p>Certain Ant tasks are known to leak memory. Please see the bug report for | |
| details, patches, and possible workarounds. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24448">24448</a>)</p> | |
| <h4>Tasks that require input lock up workspace</h4> | |
| <p>As with using Ant from the command line, prompts for input from the console | |
| is not handled. This is not the same as making use of the <input> task, | |
| which works correctly within Eclipse. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21748">21748</a>)</p> | |
| <h4>Ant Editor code completion based on Ant 1.5</h4> | |
| <p>Code completion provided by the Ant editor does not respect the | |
| user-specified version of <code>org.eclipse.ant.core</code> plug-in or ANT_HOME. | |
| Code completion proposals are always based on Ant 1.5. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30886">30886</a>).</p> | |
| <h3>3.1.3 <a name="I-Platform - Help">Platform - Help</a></h3> | |
| <h4>Help documents not displayed in a browser or very slow | |
| document loading (Windows only)</h4> | |
| If your LAN settings are not properly configured for local | |
| host access, your Help browser might open to a blank page or display an HTTP | |
| error instead of a help page, or you may experience long delays when loading | |
| help documents. Your system administrator can configure your LAN settings so | |
| that help documents can be accessed from the local help server. | |
| <blockquote> | |
| <ol> | |
| <li>In the Control Panel, open <b>Internet Options</b>, | |
| select the <b>Connections</b> tab and choose <b>LAN Settings</b>.</li> | |
| <li>If your host was configured to use DHCP for IP | |
| assignment, make sure that the "Automatically detect settings" | |
| check box is cleared.</li> | |
| <li>If you use a proxy server, ensure that the | |
| "Bypass proxy server for local addresses" is selected.</li> | |
| <li>In "Advanced" settings for proxies, add | |
| "127.0.0.1;localhost" to the "Exceptions" 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 | |
| "Use automatic configuration script" check box.</li> | |
| </ol> | |
| </blockquote> | |
| <p>If the above steps do not fix your problem, try | |
| changing the port and host properties on the <b>Help > Help Server</b> | |
| preference page. In general, setting <code>host</code> to <code>localhost</code> | |
| or <code>127.0.0.1</code> should work. Also, especially when running a firewall, | |
| you may want to specify port 80 or some other firewall-friendly value. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7036">7036</a>, | |
| <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9418">9418</a>, <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11394">11394</a>)</p> | |
| <h4>Working disconnected from the network (Windows only)</h4> | |
| If you are experiencing problems when not connected to the | |
| network, you must install the loopback adapter from the Windows installation CD. | |
| (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=831">831</a>) | |
| <h4>Using Internet Explorer in offline mode (Windows only)</h4> | |
| If you have been using Internet Explorer in Offline mode, | |
| when you access the help system you will get a message indicating that the web | |
| page you requested is not available offline or a blank page will display. Click <b>Connect</b> | |
| or deselect "Work Offline" in the Internet Explorer "File" | |
| menu to return the system behavior to normal. | |
| <h4>Using the custom browsers (Unix and Linux only)</h4> | |
| <p>On Unix and Linux, when using the Custom Browser setting on the Help | |
| preference page, ensure that the program you select is not enclosed by double | |
| quotes ("), and that the program path does not contain spaces. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35673">35673</a>)</p> | |
| <h3>3.1.4 <a name="I-Platform - UI">Platform - UI</a></h3> | |
| <h4>Minimum display resolution</h4> | |
| <p>A number of dialogs in Eclipse, such as the Preferences | |
| dialog, require a minimum display resolution of at least 1024 x 768.</p> | |
| <h4>Manual refresh required when files modified outside | |
| Eclipse</h4> | |
| <p>When files within a project are added or removed | |
| outside of Eclipse, or when an external editor is used to modify a file within a | |
| project, a manual refresh must be done in order for the changes to show up in | |
| the Workbench. To do this, select the project in the Navigator view and choose <b>Refresh</b> | |
| from the pop-up menu. This refreshes only the selected project. Alternatively, | |
| activate the Navigator view and press F5, which refreshes all projects.</p> | |
| <h4>Default text file encoding may be detected incorrectly | |
| (Windows XP/2000 only)</h4> | |
| <p>The "Text file encoding" value displayed in | |
| the Preferences dialog under "Editors" may be wrong on platforms | |
| running Windows XP (or 2000) when the user locale and system locale | |
| differ. </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 "Text file | |
| encoding" value displayed by Eclipse is incorrect: "Cp1252" | |
| (English). It should display the system locale "MS932" (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 | |
| "Text file encoding" value will then be correct: "MS932" | |
| (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 "Language for non-Unicode programs".</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 "Standards and formats".</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 | |
| "Language settings for the system" 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 "Settings for the current user".</li> | |
| </ul> | |
| <p>(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20641">20641</a>)</p> | |
| <h4>External Tools will automatically quote path variables containing spaces</h4> | |
| <p>When an external tool is launched, expanded path variables that contain | |
| spaces will be enclosed in double quotes ( " ). While it is typical for | |
| Windows executables to expect paths containing spaces to be quoted, this is | |
| known to cause problems on platforms such as Linux which do not expect these | |
| quotes. A workaround is to make the external tool a script which strips off the | |
| quotes before launching the executable with those parameters. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20599">20599</a>)</p> | |
| <h4>KDE takes Ctrl+Fn keys</h4> | |
| <p>When using the KDE desktop on Linux systems, the Ctrl+Fn key sequences are | |
| used for switching between virtual desktops. This means that Eclipse commands | |
| bound to these key sequences do not get activated, including Ctrl+F1 (Help), | |
| Ctrl+F4 (File > Close) and Ctrl+F6 (Next Editor).</p> | |
| <p>These keys can be reassigned in KDE using the Control Center. Choose Look | |
| & Feel > Shortcuts > Shortcut Sequences > Shortcut Sequences > | |
| System > Desktop Switching, and set all items to None or to a different key | |
| sequence such as Ctrl+Alt+Fn. The other alternative is to assign different key | |
| sequences in Eclipse using the <b>Workbench > Keys</b> preference page. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=26361">26361</a>)</p> | |
| <h4>JAWS screen reader does not read Eclipse dialog boxes properly</h4> | |
| <p>There is a known problem with the JAWS screen reader (up to version 4.5) | |
| whereby its "Read Box in Tab Order" command (Ins+B) does not read all | |
| controls in Eclipse dialogs. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13895">13895</a>)</p> | |
| <h4>Unable to open a fast view if no editors are open (Solaris Motif only)</h4> | |
| <p>On Solaris Motif, attempting to open a fast view when no editors are open | |
| will result in a NullPointerException and can cause some painting problems. | |
| (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35244">35244</a>).</p> | |
| <h4>Dirty state not tracked properly for OLE documents | |
| (Windows only)</h4> | |
| <p>The dirty state for an OLE document is not updated | |
| properly. This causes Eclipse to prompt to save the contents of the editor when the document is | |
| closed, even if the contents have already been saved. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=2564">2564</a>)</p> | |
| <h4>OLE document crashes can cause Eclipse to also crash | |
| (Windows only)</h4> | |
| <p>If an OLE document crashes, Eclipse can crash, or the workbench menus can become inconsistent.</p> | |
| <h3>3.1.5 <a name="I-Platform - Text">Platform - Text</a></h3> | |
| <h4>Overwrite mode cannot be disabled for AbstractTextEditor and subclasses</h4> | |
| <p>When removing the key binding for the "Toggle Overwrite Mode" command on the <b>Workbench | |
| > Keys</b> preference page, the mode is still toggled when pressing the "Insert" key. The mode indication in the editor's status line is then out of sync with the actual mode. | |
| (bug <a href="(http:/bugs.eclipse.org/bugs/show_bug.cgi?id=35248)">35248</a>)</p> | |
| <h3>3.1.6 <a name="I-Platform - SWT">Platform - SWT</a></h3> | |
| <h4>Printing and drag and drop not available on Mac (Mac OS X Carbon only)</h4> | |
| <p>The Mac OS X Carbon implementation of SWT does not yet support printing or | |
| drag and drop. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33637">33637</a>, | |
| <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30104">30104</a>)</p> | |
| <h4>Unable to drag data between applications in simplified Chinese locale (Motif | |
| only)</h4> | |
| <p>When configured for the simplified Chinese locale, it is not possible to drag | |
| data between applications running on the Motif window system. This is a known | |
| limitation of the Open Motif library. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29777">29777</a>)</p> | |
| <h4>Hang opening font or color dialogs (Mac OS X Carbon only)</h4> | |
| <p>When running with J2SE 1.4.1 for Mac OS X, opening a font or color dialog can | |
| hang Eclipse. This is a bug in Apple's J2SE 1.4.1 involving Cocoa-based dialogs. | |
| Note that J2SE 1.3.1 for Mac OS X does not have this problem. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=30021">30021</a>)</p> | |
| <h4>Crash when attempting to launch file browser (AIX Motif only)</h4> | |
| <p>There is a known AIX graphics bug affecting certain levels of AIX releases. | |
| Ensure that the AIX install includes the necessary service updates as | |
| described in the "Install notes/requirements for Eclipse on AIX" attachment to the Eclipse bug report. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34524">34524</a>)</p> | |
| <h4>Available colors on 8-bit Linux (Linux only)</h4> | |
| <p>Typically, in Gnome Linux installs running with 8-bit visuals (i.e. 256 color | |
| mode), before the Eclipse application is started there are no | |
| free colors. This may mean that Eclipse is unable to allocate the default widget | |
| background color, causing it to display a white background. The functionality, | |
| however, is otherwise unaffected.</p> | |
| <h4>List and ComboBox on Windows NT (Windows NT only)</h4> | |
| <p>On Windows NT only, you should avoid creating items in a <code>List</code> or | |
| <code>ComboBox</code> with strings longer than 1000 characters. Doing so may | |
| result in a General Protection Fault. This has been fixed in more recent | |
| versions of Windows.</p> | |
| <h4>Excessive CPU consumption (Linux GTK only)</h4> | |
| <p>When using Linux GTK 2.2.1, there are some scenarios where the CPU usage goes | |
| to 100% for no good reason. When this occurs, resizing or closing the dialog | |
| seems to return the CPU usage to normal. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35443">35443</a>)</p> | |
| <h4> | |
| IME-related crash (Linux Motif only) | |
| </h4> | |
| <p>When using Linux Motif and GB18030 IME "chinput", Eclipse can crash if | |
| the IME client window is left open when the parent window is disposed. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32045">32045</a>)</p> | |
| <h4>Problems with Japanese IME (Linux Motif only)</h4> | |
| <p>On Linux Motif, the Japanese IME Wnn7 Personal is not working properly with | |
| Eclipse: the pre-edit text does not appear in the text widget, making it | |
| unusable. The IME that we tested - Kinput2 on the client + Canna on the server | |
| side (default IME in RedHat 8.0) - works fine. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31754">31754</a>)</p> | |
| <h4>BiDi support</h4> | |
| <p>The <code>StyledText</code> widget provides bidirectional language support | |
| for Hebrew and Arabic locales. Currently this support is available only on | |
| Windows and has several known problems.</p> | |
| <h4>Cursor constructor arguments</h4> | |
| <p>In the constructor <code>Cursor(Device device, ImageData source, ImageData | |
| mask, int hotspotX, int hotspotY)</code>, when both a source and mask argument | |
| are specified (that is, the mask is not null), the meaning of the two arguments | |
| is reversed. That is, the "mask" argument should be the source image | |
| and the "source" argument should be the mask image. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=4809">4809</a>)</p> | |
| <h4>Using IBM J9 VM (Photon and AIX)</h4> | |
| <p>On QNX Photon and IBM AIX, the SWT library will not be found when running | |
| with an IBM J9 1.5 VM. This is a bug in the IBM J9 class library in version 1.5. | |
| You can workaround this problem by adding the SWT library directory to your | |
| LD_LIBRARY_PATH environment variable.</p> | |
| <h4>Missing permissions for SWT native libraries in workspace (HP-UX only)</h4> | |
| <p>When retrieving the SWT Motif fragment into an Eclipse workspace, the | |
| permissions of the native libraries are reset. This creates a problem on HP-UX | |
| because shared libraries need to have execute permission. Attempting to | |
| self-host with this fragment throws an UnsatisfiedLinkError...Permission Denied | |
| error. You must manually change the permissions to make these libraries | |
| accessible (assume the workspace is at <code>/workspace</code>):</p> | |
| <blockquote> | |
| <blockquote> | |
| <p><code>cd /workspace/org.eclipse.swt.motif/os/hpux/PA_RISC<br> | |
| chmod 555 *.sl</code></p> | |
| </blockquote> | |
| </blockquote> | |
| <p>(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20305">20305</a> | |
| describes a related problem)</p> | |
| <h4>JAWS requires MSAA for List Views to read checkboxes in Tables (Windows | |
| only)</h4> | |
| <p>In order for JAWS to detect the checkbox information in Tables, MSAA support | |
| for List Views must be activated as follows:</p> | |
| <blockquote> | |
| <ol> | |
| <li>Open Eclipse and hit INSERT + F2.</li> | |
| <li>In the Run JAWS Manager dialog select Configuration Manager.</li> | |
| <li>In the Jaws Configuration Manager that opens up, select Set Options and | |
| then select Advanced Options.</li> | |
| <li>Check "Rely on MSAA for List views".</li> | |
| <li>Hit the OK button.</li> | |
| <li>Choose <b>File > Save</b> from the menu bar.</li> | |
| </ol> | |
| </blockquote> | |
| <h3>3.1.7 <a name="I-Platform - Team - CVS">Platform - Team - CVS</a></h3> | |
| <p>The following are known problems with the CVS repository provider only, and | |
| do not apply to other repository providers. Additional information on how to use | |
| CVS from Eclipse can be found in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-vcm-home/docs/online/cvs_features2.0/cvs-faq.html">Eclipse | |
| CVS FAQ</a>.</p> | |
| <h4>Cached authorization information lost when workspace is upgraded</h4> | |
| <p>The Platform's internal authorization database file format has changed for | |
| 2.1. Because of this, authorization information cached with a workspace created | |
| with an earlier version of Eclipse will be unusable, and the user will need to | |
| reauthenticate. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32899">32899</a>)</p> | |
| <h4>"extssh" is not a supported command line method</h4> | |
| <p>Since the "extssh" connection method is not a supported command | |
| line method, you cannot use the command line tool when a project uses this | |
| method. Instead, use the Eclipse supported "ext" method and set the | |
| appropriate environment variables so that the command line tool will work. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7943">7943</a>)</p> | |
| <h4>Connection cannot be found after initially missing</h4> | |
| <p>If a connection initially fails due to a network problem, the connection may | |
| continue to fail even when the network problem is fixed. In order to establish | |
| the connection you must exit and restart Eclipse. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9295">9295</a>)</p> | |
| <h4>CVS meta-folders appear in some cases</h4> | |
| <p>There are some cases where CVS folders are not hidden from the UI as the user | |
| would expect. For instance, CVS folders will appear if a user imports a CVS | |
| project into Eclipse before the CVS plug-in is loaded. To avoid this, open the | |
| CVS Repositories view (thus loading the CVS plug-in) before importing CVS | |
| projects into Eclipse. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21128">21128</a>)</p> | |
| <h4>"Received broken pipe signal" error from server</h4> | |
| <p>Eclipse sometimes performs multiple commands within a single connection to the | |
| server. This may cause problems with CVS servers that are running server scripts | |
| in response to certain commands. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23575">23575</a> | |
| and <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23581">23581</a>)</p> | |
| <h4>"Terminated with fatal signal 10" error from server</h4> | |
| <p>There is a bug in the CVS server related to some compression levels. If you | |
| get this error, changing the compression level on the CVS preference page may | |
| help. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15724">15724</a>)</p> | |
| <h4>"Unknown response" error using ext connection method</h4> | |
| <p>There are a few situations that can result in an "Unknown response" | |
| error messages when using the ext connection method. One situation involves | |
| using an external communications client (e.g. rsh or ssh) that adds CRs to the | |
| communications channel (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21180">21180</a>). | |
| Another involves Eclipse not properly reading the stderr output of the external | |
| communications tool (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11633">11633</a>).</p> | |
| <h4>No way to update folder excluding subfolders</h4> | |
| <p>There is currently no way in Eclipse to run a non-recursive update on a | |
| folder (i.e., there is nothing equivalent to the cvs -l option). (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33210">33210</a>).</p> | |
| <h3>3.1.8 <a name="I-Platform - Install/Update">Platform - Install/Update</a></h3> | |
| <h4>Update manager claims that a cycle has been detected in a multiple path case</h4> | |
| <p>When a feature includes other features, it is an error to have multiple paths | |
| from the parent to any of its children (there must be exactly one path from the | |
| root to any of the included features). Update manager reports the error but is | |
| not capable of differentiating cycles (when a child includes a parent) and | |
| multiple paths. Consequently, it will claim that there is a cycle in both cases. | |
| (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26808">26808</a>)</p> | |
| <h4>Bundled e-fixes that patch the same feature can clash</h4> | |
| <p>When patches (e-fixes) are created by bundling (including) several patches, | |
| care must be taken that they do not carry different versions of the same | |
| feature. If they do, both features may end up disabled. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31407">31407</a>)</p> | |
| <h4>Update manager does not support https protocol</h4> | |
| <p>Update manager currently cannot open connections to the remote update sites | |
| if the provided URL has <b>https </b>protocol. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31979">31979</a>)</p> | |
| <h4>Internal Error in Update Manager while installing/updating when features | |
| include the same plug-in</h4> | |
| <p>If two or more features in the feature tree formed by inclusion have the same | |
| plug-in entry, install or update will fail. This happens because update manager | |
| attempts to install the same plug-in more than once and fails to rename files | |
| since they already exist. To work around this problem, ensure that no two | |
| features in the single feature hierarchy (starting from the root feature) | |
| reference the same plug-in (have a plug-in entry with the same id and version). | |
| (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33937">33937</a>)</p> | |
| <h4>Non-responsive sites may use all free threads</h4> | |
| <p>Prior to Eclipse 2.1, if the connection to an | |
| update site did not respond (the site did not exist or was down), the workbench | |
| became non-responsive until the connection request timed out. In 2.1, | |
| connections are made by a separate thread so that the UI stays responsive. | |
| Typically, unresponsive connections eventually time out and these threads | |
| terminate. In rare cases, servers accept the connection but never send a | |
| response, thereby keeping the connection thread live indefinitely. Update | |
| manager limits the number of active connection threads and will refuse to create | |
| more once the limit is reached. To work around the problem, exit and restart | |
| Eclipse. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18598">18598</a>, | |
| <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19775">19775</a>)</p> | |
| <h4>URL validity checking on input</h4> | |
| <p>URL syntax is currently not completely checked on input. Ensure that the entered | |
| URL uses forward slash ('/') separators and does not | |
| contain invalid characters. (bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19685">19685</a>, | |
| <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20247">20247</a>) | |
| <h4>Running "headless" applications that do not handle restart</h4> | |
| <p>When install changes are detected, the changes are automatically processed | |
| and the workbench restarts. The executable launcher supplied with the | |
| application correctly handles the restart. However, if you have applications | |
| that directly call the platform (eg. by calling the BootLoader APIs) and do not | |
| handle restart, the startup reconciliation processing can be suppressed by | |
| specifying <tt>-noupdate</tt> command line option. In this case, the application | |
| will start with the set of features and plug-ins that were processed and | |
| configured on the previous start. If prior configuration cannot be found, the | |
| application will start with the full set of plug-ins found in the installation | |
| location. | |
| <h4>Link file entry with trailing blanks is invalid</h4> | |
| <p>If a link file used to connect product extensions with products contains an | |
| entry with trailing blank characters, it will be considered invalid. The | |
| workaround is to ensure that the entry ends with an end-of-line character (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22993">22993</a>). | |
| <h4>Enabling two versions of the same feature</h4> | |
| <p>Care should be taken when enabling and disabling multiple versions of the | |
| same feature. If they include other features and the inclusion is set with a | |
| match attribute that is not "perfect", disabling old feature version | |
| may have a consequence of disabling new children. To avoid this situation, | |
| disable the new version first, then enable the old one; i.e., never have two | |
| versions of the same feature simultaneously enabled (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25236">25236</a>).</p> | |
| <h4>Upgrading very old workspaces</h4> | |
| <p>If you upgrade to 2.1 from a pre-2.0 workspace that existed prior to the introduction of | |
| features, the next time you add a feature you will be prompted on startup with a dialog asking which features to install. If you de-select all features and click OK, then all features are disabled. This prevents | |
| you from ever using that workspace again (since the Eclipse Platform feature is disabled). The | |
| solution is to delete the <code>.config</code> subdirectory in the workspace's | |
| metadata area and then restart Eclipse. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35703">35703</a>)</p> | |
| <h3>3.1.9 <a name="I-Platform - Debug">Platform - Debug</a></h3> | |
| <p>None. (Known problems with the Java debugger appear below in the <a href="#I-Java Development Tools (JDT)">JDT</a> | |
| section.)</p> | |
| <h3>3.1.10 <a name="I-Platform - Compare">Platform - Compare</a></h3> | |
| <p>None.</p> | |
| <h3>3.2 <a name="I-Java Development Tools (JDT)">Java Development Tools (JDT)</a></h3> | |
| <h4>Running Java programs with non-Latin-1 characters in | |
| package or class names</h4> | |
| You get a <code>java.lang.NoClassDefFoundError</code> when | |
| running Java programs with non-Latin characters in the package or class names. | |
| The workaround is to package the class files as a JAR file and run the program | |
| out of the JAR and not from the file system directly. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=4181">4181</a>) | |
| <h4>Cannot run or debug class in a project with GB18030 characters in project | |
| name</h4> | |
| <p>Most class libraries do not properly support the creation of a system process | |
| (via <code>java.lang.Runtime.exec(...)</code>) when the specified command line | |
| contains GB18030 characters. This limitation means the debugger cannot launch | |
| applications when the command line it generates contains GB18030 characters. | |
| (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32206">32206</a>)</p> | |
| <h4>Unable to debug stack overflows</h4> | |
| <p>If a debug session suspends on a <code>java.lang.StackOverflowError</code> | |
| exception (due to an exception breakpoint), the debugger may not be able to | |
| retrieve any debug information from the target JVM. As well, the debugger may | |
| not be able to reliably interact with the target JVM past this point. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19217">19217</a>)</p> | |
| <h4>Evaluation limitation</h4> | |
| <p>The debugger uses threads in the target JVM to perform evaluations (both | |
| explicit evaluations that the user requests, and implicit evaluations such as <code>toString()</code> | |
| invocations in the <b>Variables</b> view). The Java Debug Interface (JDI) | |
| requires that the thread in which an evaluation is performed be suspended by a | |
| user event (that is, a breakpoint or step request). Evaluations cannot be | |
| performed on threads suspended by the suspend action. As well, when a breakpoint | |
| is configured to suspend the JVM rather than just the individual thread, the | |
| threads which did not encounter the breakpoint are not in a valid state to | |
| perform an evaluation. When an evaluation is attempted in a thread that is not | |
| in a valid state to perform an evaluation, an error message will appear to the | |
| effect of "Thread must be suspended by step or breakpoint to perform method | |
| invocation". (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=34440">34440</a>)</p> | |
| <h4>Breakpoints outside of the build class path</h4> | |
| <p>Breakpoints can only be created on Java elements that are contained on the | |
| build class path of a project. The Java debugger automatically deletes | |
| breakpoints if their associated Java element is removed from the build path of a | |
| project. However, if the Java debug plug-in is not loaded when a build path is | |
| changed, such breakpoints will remain in the workspace, and can cause errors | |
| when the user attempts to go to the file associated with the breakpoint, from | |
| the Breakpoints view. (bug 34845)</p> | |
| <h4>Missing debug attributes</h4> | |
| The debugger requires that class files be compiled with debug attributes if it | |
| is to be able to display line numbers and local variables. Quite often, class | |
| libraries (for example, "<code>rt.jar</code>") are compiled without | |
| complete debug attributes, and thus local variables and method arguments for | |
| those classes are not visible in the debugger. | |
| <h4>Setting breakpoints</h4> | |
| In general the debugger will not allow you to place breakpoints on lines of code | |
| that are not executable (comments, blank lines, etc.). However, there are some | |
| cases where the debugger will allow breakpoints on lines of code that are not | |
| executable. For example, the debugger will allow a breakpoint to be placed on a | |
| variable declaration that does not contain an initializer ("int x;"). | |
| Note that enabled breakpoints which are successfully installed on an executable | |
| line in a running (debuggable) VM are displayed with a checkmark. Breakpoints | |
| that are displayed without a checkmark are not installed in a running (debuggable) | |
| VM. (bugs <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8473">8473</a>, <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=12696">12696</a>) | |
| <h4>Using Hot Code Replace</h4> | |
| Hot code replace is supported on JDK 1.4.x VMs, and IBM J9 VMs. Hot code replace | |
| is limited to changes which do not effect the shape of a class. That is, changes | |
| within existing methods are supported, but the addition or removal of members is | |
| not supported. | |
| <p>Note that hot code replace and stepping on JDK 1.4.0 VMs was unreliable. The | |
| underlying VM problems were fixed in JDK 1.4.1.</p> | |
| <h4>Scrapbook</h4> | |
| Setting a breakpoint inside a scrapbook page is not supported. | |
| <p>When a snippet is run in the scrapbook which directly or indirectly calls <code>System.exit(int)</code>, | |
| the evaluation cannot be completed, and will result in a stack trace for a <code>com.sun.jdi.VMDisconnectedException</code> | |
| being displayed in the scrapbook editor. | |
| <p>Terminating a scrapbook page while it is performing an evaluation results in | |
| a <code>com.sun.jdi.VMDisconnectedException</code> being displayed in the | |
| scrapbook editor. | |
| <h4>Debugging over slow connections</h4> | |
| A global Java debug preference specifies the debugger timeout, which is the | |
| maximum amount of time the debugger waits for a response from the target VM | |
| after making a request of that VM. Slow connections may require that this value | |
| be increased. The timeout value can be edited from the <b>Java > 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 "delete" key). Associated system | |
| processes in the OS may not be properly cleaned up. If a debug target has no | |
| suspended threads, termination works properly. (bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=1631">1631</a>) | |
| <h4>Searching for constant field references</h4> | |
| Search does not find references to constant fields inside | |
| binaries because the Java Language Specification mandates that constant field | |
| values be inlined in the class file's bytecodes, leaving no trace of a field | |
| reference. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12044">12044</a>) | |
| <h4>Quick fix and imports from default packages</h4> | |
| <p>Quick fix does not handle imports from default packages. Note that importing from a default package is no longer supported in JDK 1.4 (bug | |
| <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19487">19487</a>)</p> | |
| <h4>Javadoc hover in the Java editor</h4> | |
| <p>The Javadoc hover help shown when hovering over | |
| identifiers in the Java editor does not handle links inside of Javadoc comments | |
| properly. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20644">20644</a>)</p> | |
| <h4>Cut, copy, paste not working for linked resources in views showing Java | |
| elements</h4> | |
| <p>The cut, copy, and paste actions do not work for linked files and folders | |
| appearing in views that show Java elements, including the Package Explorer. The | |
| workaround is to use these actions from the Navigator view instead. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34568">34568</a>)</p> | |
| <h4>Java working sets not working correctly for elements from JRE system library | |
| container</h4> | |
| <p>Appling a working set consisting entirely of elements from the JRE System | |
| library container as a filter to the packages view might result in an empty | |
| Package Explorer. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35395">35395</a>)</p> | |
| <h4>Problems with files named "java"</h4> | |
| <p>If a Java project contains a file named "java", it will trigger an | |
| internal error when it is classified (incorrectly) as a Java compilation unit. | |
| There are no problems with the string "java" occurs as a part of the | |
| name (e.g, javaRefs.txt) or as the file extension part of the name (e.g, A.java). | |
| The workaround is to ensure that there are no files named "java" | |
| within a Java project. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35614">35614</a>)</p> | |
| <h4>Cannot generate Javadoc for packages with GB18030 characters in the name</h4> | |
| <p>Most class libraries do not properly support the creation of a system process | |
| (via <code>java.lang.Runtime.exec(...)</code>) when the specified command line | |
| contains GB18030 characters. Since Javadoc is created using the Javadoc | |
| executable provided with the JDK, generating Javadoc fails if the package or | |
| class name contains GB18030 characters. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32215">32215</a>)</p> | |
| <h4>Linked editing does not work correctly in overwrite mode</h4> | |
| <p>Linked editing is used for renaming elements within a single compilation unit | |
| and for templates with multiple occurrences of the same template variable. | |
| Linked editing does not work correctly in overwrite mode. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35216">35216</a>)</p> | |
| <h4>Catch block code generation template must end with newline if last line is | |
| line comment</h4> | |
| <p>If the last line of the catch block code generation template is a line comment then the line | |
| must be terminated with a newline. Otherwise the closing curly bracket ends up on the comment | |
| line, resulting in a compilation error. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35746">35746</a>)</p> | |
| <h4>Problem opening class file editor</h4> | |
| <p>If the "Use classpath containers" preference has been enabled on the <b>Plug-in | |
| Development > Java Build Path Control</b> preference page, you may not be | |
| able to open a class file editor for a class file contained in a JAR in the "Required plug-in entries" container. | |
| One way to work around the problem is to expand the class file in the Packages | |
| Explorer; this displays the class file's structure just as the editor would. If | |
| a source code zip is available for the JAR, another option is to attach source to the JAR file.</p> | |
| <p>To attach source to a JAR in the "Required plug-in entries" | |
| container, follow these steps:</p> | |
| <ol> | |
| <li>In the Package Explorer, select the project and open <b>Project > | |
| Properties</b> from the context menu</li> | |
| <li>Select the <b>Java Build Path</b> page</li> | |
| <li>Flip to the <b> Libraries</b> page</li> | |
| <li>Expand the "Required plug-in entries" item</li> | |
| <li>Expand the item for the JAR</li> | |
| <li>Select "Source Attachment" and press <b>Edit</b></li> | |
| <li>Enter the location of the corresponding source zip</li> | |
| <li>OK to acknowledge</li> | |
| </ol> | |
| <p>(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35769">35769</a>)</p> | |
| <h3>3.3 <a name="I-Plug-in Development Environment (PDE)">Plug-in Development | |
| Environment (PDE)</a></h3> | |
| <h4>PDE source page colors do not take effect on Apply</h4> | |
| <p>Changes to the colors PDE uses for source pages of its multi-page editors are | |
| not immediately visible in opened editors after pressing the Apply button | |
| on the <b>Plug-in Development > Editors preference</b> page. To work | |
| around this problem, close the editor and and reopen it. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33640">33640</a>)</p> | |
| <h4>Icons folder not included in bin.includes of some PDE templates</h4> | |
| <p>PDE provides a number of templates that can be used to create fully | |
| functioning plug-in projects and/or extensions. When projects are created, the <code>build.properties</code> | |
| file is created with the initial content, which includes the property 'bin.includes' | |
| listing the plug-in manifest and its code JARs. However, it omits mention of | |
| other files created by the template, such as the <code>icons/</code> folder. As | |
| a request, these extra files do not end up in the plug-in when built using Ant | |
| build file or exported using 'Export deployable plug-ins and fragments' wizard. | |
| To work around this problem, add these files and directories manually in | |
| build.properties file. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35554">35554</a>)</p> | |
| <h4>Emacs key bindings do not work in manifest editor fields</h4> | |
| <p>Non-default key bindings currently do not work in fields on non-source pages | |
| of the PDE manifest editors. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19482">19482</a>)</p> | |
| <h4>Comments in source pages of PDE XML editors</h4> | |
| <p>PDE provides a number of multi-page editors that include a raw source page. | |
| Editors that handle XML files (plug-in, fragment and feature manifests) will | |
| preserve comments in most cases. However, comments will not be preserved if | |
| added before the root XML element, or if added after the last child element | |
| contained in the parent element. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8000">8000</a>)</p> | |
| <h4>Problem while importing fragments</h4> | |
| <p>If a workspace contains binary projects for a plug-in and a fragment that | |
| references that plug-in, fragment libraries are added to the class path of the | |
| referenced plug-in project. When an attempt is made to overwrite the plug-in and | |
| the fragment with versions from another build, deletion of the old fragment may | |
| fail. If that happens, repeat the operation to repair the workspace. Only the | |
| affected plug-in and fragment need to be re-imported. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16921">16921</a>)</p> | |
| <h4>Plug-in import wizard does not allow plug-ins of different versions to be | |
| imported</h4> | |
| <p>The Eclipse platform allows two plug-ins with the same ID but different | |
| versions to coexist if the only thing they contribute is run-time libraries. | |
| However, PDE cannot handle these plug-ins because it creates project names using | |
| plug-in IDs during binary project import. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18500">18500</a>)</p> | |
| <h4>PDE nature required for plug-in manifest syntax checking</h4> | |
| <p>PDE will only be able to provide syntax checking and error/warning markers | |
| for plug-in manifests if the plug-in project has the PDE plug-in nature. A | |
| plug-in project automatically gets this nature when created by a PDE wizard. | |
| This situation can only occur if a regular Java project has been used to host a | |
| plug-in. The problem can be fixed by converting it into a PDE project. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19248">19248</a>)</p> | |
| <h4>PDE does not preserve original manifest file layout</h4> | |
| <p>When non-Source page of a PDE manifest editor is used, PDE will convert | |
| changes back into XML by regenerating the file. Although the overall content and | |
| the comments are preserved, the actual file layout is not. This may cause | |
| problems by showing false changes during file compare. If file layout is | |
| important, perform all editing in the Source page. Alternatively, avoid using | |
| Source pages altogether. Since XML files are generated in a way that respects | |
| and preserves the relative order of major elements (extensions, extension points | |
| etc.), changes made in a non-Source page of a PDE manifest editor do not result | |
| in false deltas during file compare. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19251">19251</a>)</p> | |
| <h4>Go To Line in manifest editor causes Outline view to go blank</h4> | |
| <p>When the <b>Source > Go To Line</b> command is invoked in the Source page | |
| of a PDE manifest editor, the Outline view will become gray. Since the Source | |
| page does not have a functional outline, there is no actual loss of function. | |
| (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19361">19361</a>)</p> | |
| <h3>3.4 <a name="I-Other - FTP and WebDAV support">Other</a></h3> | |
| <h3>3.4.1 F<a name="I-Other - FTP and WebDAV support">TP and WebDAV support</a></h3> | |
| <h4>When mapped to a target, the project folder is ignored</h4> | |
| <p>Ignoring the project folder is by design. Normally with target management you | |
| put/get the contents of the project, not the actual project. The place you pick | |
| in the site explorer is where the project contents will go. This allows your | |
| local project to have a different name than the container in the WebDAV/FTP | |
| server. If you want to map several projects to the same site location, you | |
| create a new folder for each one. This is why "New Folder" is in the | |
| mapping page. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17657">17657</a>)</p> | |
| <h4>FTP messages cause an exception</h4> | |
| <p>With some servers, the FTP client may receive messages that it did not | |
| anticipate. These will cause an exception. Trying the operation again usually | |
| works. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18108">18108</a>)</p> | |
| <h4>FTP problems with spaces in resource names</h4> | |
| <p>FTP does not work properly when file or folder name contains spaces. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20220">20220</a>)</p> | |
| <h4>FTP problems retrieving remote timestamps with NT server</h4> | |
| <p>Problems have occurred with some servers (NT server Serv-U FTP-Server v2.5k ) | |
| when trying to obtain the timestamp of a newly uploaded file. This causes a | |
| "file does not exist" error. The workaround is to <b>Synchronize</b> | |
| again and continue. (bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19715">19715</a>)</p> | |
| <h2>4. <a name="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 JRE, included with the Eclipse SDK). On Windows, the executable file is called <samp>eclipse.exe</samp>, | |
| and is located in | |
| the <code>eclipse</code> subdirectory of the install. If installed at <code>c:\eclipse-SDK-2.1-win32</code>, | |
| the executable is <code>c:\eclipse-SDK-2.1-win32\eclipse\eclipse.exe</code>. <b>Note:</b> Set-up on | |
| other operating environments is | |
| analogous.</p> | |
| <p>If you do not specify otherwise, Eclipse creates a default workspace in a | |
| subdirectory as a sibling of the executable (that is, at, <code>c:\eclipse-SDK-2.1-win32\eclipse\workspace</code>). | |
| This workspace directory is used as the default content area for your projects | |
| as well as for holding any required metadata. For shared or multi-workspace | |
| installs you must explicitly specify the location for your workspace using the | |
| "<code>-data</code>" command line | |
| argument; for example, </p> | |
| <blockquote> | |
| <p><code>eclipse -data c:\myworkspace -vm c:\jdk1.4.1_01\jre\bin\javaw</code></p> | |
| </blockquote> | |
| <p><i>Tip:</i> It's generally a good idea to explicitly specify which Java VM to | |
| use when running Eclipse. This is achieved with the "<code>-vm</code>" command line | |
| argument as illustrated above. If you don't use "<code>-vm</code>", Eclipse will look | |
| on the O/S path. When you install other Java-based products, they may change your | |
| path and could result | |
| in a different Java VM being used when you next launch Eclipse. | |
| </p> | |
| <p>To create a Windows shortcut to an installed Eclipse and a particular | |
| workspace (e.g., <code>c:\myworkspace</code>):</p> | |
| <ol> | |
| <li>Navigate to <code> eclipse.exe</code> in Windows Explorer and use Create | |
| Shortcut on the content menu. | |
| <li>Select the shortcut and edit its Properties. In the Target: field append | |
| the <code>-data</code> option followed by the location of the workspace | |
| (e.g., "<code>-data c:\myworkspace</code>"). | |
| </ol> | |
| <p>Opening this shortcut launches Eclipse on the specified workspace. (You can | |
| drag the shortcut to the Windows Desktop if you want to keep it in easy reach.)</p> | |
| <h2>5. <a name="Upgrading"></a>Upgrading Workspace from a Previous Release</h2> | |
| <p> | |
| If you are upgrading to a newer release of Eclipse from an older release, there are | |
| simple steps to follow to migrate your workspace to the new release. Your workspace | |
| is the directory on disk that contains all of your project files, as well as | |
| metadata such | |
| as preferences you may have customized. The steps to follow for upgrading depend on | |
| whether or not you used the "<code>-data</code>" command line argument when starting | |
| Eclipse. The "<code>-data</code>" argument is recommended because it clearly specifies the | |
| location of your workspace. If this argument is not used, Eclipse will place the workspace | |
| in the current working directory at the time Eclipse was launched. | |
| </p> | |
| <p>Note that if you installed additional features and plug-ins into your older Eclipse, you | |
| should re-install them in the new Eclipse prior to upgrading workspaces. | |
| <p><i>Tip:</i> It doesn't hurt to make a backup copy of your workspace before | |
| upgrading. After you've upgraded your workspace, you won't be able to use it | |
| again with an older version of Eclipse. If you ever want to go "back in time" | |
| to an earlier release, you'll need that backup! | |
| </p> | |
| <h3>Users who don't use "-data"</h3> | |
| <p> | |
| If you weren't previously using "-data" to specify your workspace, follow | |
| these steps to upgrade: | |
| <ol> | |
| <li>Find the workspace directory used by your old version of Eclipse. Typically this | |
| is located inside the directory in which Eclipse was installed in a subdirectory called "<code>workspace</code>". | |
| If you are using a shortcut or script to launch Eclipse, then it will be under the current | |
| working directory of that shortcut or script in a subdirectory called "workspace". | |
| For Windows users, this is specified by the Start in: argument in your shortcut properties.</li> | |
| <li>Copy this workspace directory to a new, empty location outside of any Eclipse | |
| install directory.</li> | |
| <li>Install the new version of Eclipse in a new location, separate from any old version | |
| of Eclipse.</li> | |
| <li>Start this new version of Eclipse, using the "<code>-data</code>" command line argument to | |
| point to the workspace location.</li> | |
| </ol> | |
| <h3>Users who do use "-data"</h3> | |
| <p> | |
| If you were previously using the "<code>-data</code>" argument to start Eclipse, your | |
| upgrade path is much easier: | |
| <ol> | |
| <li>Install the new version of Eclipse in a new location, separate from any old versions | |
| of Eclipse.</li> | |
| <li>Start this new version of Eclipse, using the "<code>-data</code>" command line argument to | |
| point to your old workspace location.</li> | |
| </ol> | |
| <h2>6. <a name="Interoperability with Previous Releases">Interoperability with | |
| Previous Releases</a></h2> | |
| <h3>6.1 Interoperability of Release 2.1 and 2.0</h3> | |
| <h4>Sharing projects between heterogeneous Eclipse 2.0 and 2.1</h4> | |
| <p>Special care is required when a project in a team repository is being loaded | |
| and operated on by developers using Eclipse-based products based on different | |
| feature or plug-in versions. The general problem is that the existence, | |
| contents, and interpretation of metadata files in the workspaces may be specific | |
| to a particular feature or plug-in version, and differ between versions. The | |
| workspace compatibility guarantees only cover cases where all developers upgrade | |
| their Eclipse workspaces in lock step. In those cases there should be no problem | |
| with shared metadata. However, when some developers are working in Eclipse 2.1 | |
| while others are working in Eclipse 2.0, there are no such guarantees. This | |
| section provides advice for what to do and to not do. It addresses the specific | |
| issues with the Eclipse SDK.</p> | |
| <p>The typical failure mode is noticed by the 2.1 user. 2.1 metadata is lost | |
| when a 2.0 user saves changes and then commits the updated metadata files to the | |
| repository. Here's how things typically go awry:</p> | |
| <ul> | |
| <li>A user working in Eclipse 2.1 creates or modifies a project in a way that | |
| results in changes to a shared metadata file that rely on 2.1-specific | |
| information. The user then commits the updated project files, including the | |
| shared metadata file, to the shared repository.</li> | |
| <li>Another user working in Eclipse 2.0 shares this project from the same | |
| repository. The 2.1-specific information in the shared metadata file is not | |
| understood by Eclipse 2.0, and is generally discarded or ignored without | |
| warning. The user modifies the project in a way that results in changes to | |
| the shared metadata file, causing the shared metadata file to be rewritten | |
| without any of the 2.1-specific information. The user commits the updated | |
| project files, including the shared metadata file, to the shared repository. | |
| The user is generally unaware that shared information has just been lost as | |
| a result of their actions.</li> | |
| <li>A user working in Eclipse 2.1 picks up the changes to a project from the | |
| shared repository, including the updated shared metadata file. The user may | |
| be unaware that they have just taken a retrograde step until later when | |
| things start to malfunction.</li> | |
| </ul> | |
| <p>Here are a list of things to watch out for when the project is to be shared | |
| between users of Eclipses 2.1 and 2.0:</p> | |
| <ul> | |
| <li><b>Linked folders and files<br> | |
| </b>This support was added in 2.1. Information about linked resources is | |
| recorded in the project's <code>.project</code> file. Recommendation: do not | |
| use. Better still, disable linked resources via the <b>Workbench > Linked | |
| Resources</b> preference page.</li> | |
| <li><b>External tool (Ant) builders</b><br> | |
| Information about external tool builder is recorded in the project's <code>.project</code> | |
| file. The format of the information changed between 2.0 and 2.1. Builders | |
| created or changed in 2.1 use the new format, which is not understood by a | |
| 2.0 workspace. Builders created in 2.0 use the old format and continue to | |
| work in 2.1. Recommendation: Always create or edit external tools builders | |
| from a 2.0 workspace.</li> | |
| <li><b>Optional exclusion patterns on Java source entries on the build class | |
| path</b><br> | |
| This support was added in 2.1. This information is recorded in the project's | |
| <code>.classpath</code> file. Recommendation: do not specify exclusion | |
| patterns. Better still, disable exclusion patterns via the<b> Java | |
| > Compiler > Build Path</b> preference page.</li> | |
| <li><b>Output folders associated with Java source entries on the build class | |
| path</b><br> | |
| This support was added in 2.1. This information is recorded in the project's | |
| <code>.classpath</code> file. Recommendation: do not specify anything other | |
| than the default (project-wide) output folder. Better still, disable | |
| multiple output locations via the<b> Java > Compiler > Build Path</b> | |
| preference page.</li> | |
| <li><b>Source attachment root path associated with Java library entries on the | |
| build class path</b><br> | |
| When attaching a source ZIP to a library JAR on the Java build path, the | |
| source root path prefix is inferred automatically. This has changed from | |
| 2.0, where it could be explicitly set via the UI and explicitly recorded in | |
| the project's <code>.classpath</code> file. Consequently, a Java project | |
| created in a 2.1 workspace might not find the attached source. | |
| Recommendation: Use 2.0 to specify the source attachment root path. There is | |
| additional source attachment flexibility provided in 2.1: you can provide a | |
| folder instead of a JAR or zip as a source attachment, and you can attach | |
| source to a class file folder; this functionality is not available in 2.0 | |
| (where the 2.1 information is ignored). Recommendation: Use 2.0 to | |
| specify the source attachment.</li> | |
| <li><b>PDE classpath containers for dependent plug-ins</b><br> | |
| PDE's use of classpath containers was added in 2.1. Classpath containers are | |
| recorded in the project's <code>.classpath</code> file. If PDE classpath | |
| containers are used, then a 2.0 workspace will have unresolved classpath | |
| entries and therefore most Java capabilities (including compilation, search, | |
| run, debug) will not produce the expected results. Recommendation: Ensure | |
| that the setting on the <b>Plug-in Development > Java Build Path Control </b>preference | |
| page for using classpath containers is disabled before creating any new plug-in | |
| (or fragment) projects.</li> | |
| </ul> | |
| <h4>Using Eclipse 2.1 to develop plug-ins that work in Eclipse 2.0</h4> | |
| <p>It is also possible (and reasonable) to use Eclipse 2.1 to develop a plug-in | |
| intended to work in Eclipse 2.0. Use the <b>Plug-in Development > Target | |
| Platform </b>preference page to locate non-workspace plug-ins in an 2.0 Eclipse | |
| install. This ensures that the code for your plug-in is being compiled and | |
| tested against Eclipse 2.0 APIs, extension points, and plug-ins. (The above list | |
| of concerns do not apply since they affect the layout and interpretation of | |
| files in the plug-in <i>project</i> but none affect the actual deployed form of | |
| the plug-in.)</p> | |
| <hr> | |
| <p>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. | |
| in the United States, other countries, or both.</p> | |
| <p>IBM is a trademark of International Business Machines Corporation in the | |
| United States, other countries, or both.</p> | |
| <p>Microsoft, Windows, Windows NT, and the Windows logo are trademarks of | |
| Microsoft Corporation in the United States, other countries, or both.</p> | |
| <p>Apple and Mac OS are trademarks of Apple Computer, Inc., registered in the | |
| U.S. and other countries.</p> | |
| <p>QNX, Neutrino, and Photon are trademarks or registered trademarks of QNX | |
| Software Systems Ltd.</p> | |
| <p>Other company, product, and service names may be trademarks or service marks | |
| of others.</p> | |
| <p>(c) Copyright IBM Corp. and others 2003</p> | |
| </body> | |
| </html> |