Incompatibilities between Eclipse 3.3 and 3.4
Eclipse changed in incompatible ways between 3.3 and 3.4 in ways that affect
plug-ins. The following entries describe the areas that changed and provide
instructions for migrating 3.3 plug-ins to 3.4. Note that you only need to look
here if you are experiencing problems running your 3.3 plug-in on 3.4.
FileEditorInput#getPath throws IllegalArgumentException for non local files
Changed scheduling rules for IProject#setDescription
IWorkbenchActionConstants.MB_ADDITIONS no longer supported in Marker views
org.eclipse.tomcat no longer included
Corrected API for tabbed properties view to not require the usage of internal types
What is affected: Clients that call getPath() on FileEditorInput.
Description:In release 3.3 and earlier,
null when called on an input whose file was not in the local
file system. This violated the contract of
did not allow a null result. The method now throws
in this case. The convenience method
has been added so that callers who are unsure of the state of a supplied
IFile can check
Action required: Clients that call
should check if they are calling it on an input that is not in the local file system, and react
What is affected: Clients that call
Description: In the 3.3 release, all calls to
required the caller to own
was implemented with the
IWorkspaceRoot scheduling rule. This was
too restrictive in most cases, and unnecessarily prevented other threads from modifying
other projects in the workspace while
modifyRule was held. In the 3.4
IWorkspaceRoot scheduling rule is now only needed when configuring project
natures: clients calling
IProject#setDescription without the
IResourceRuleFactory#modifyRule now only locks the project resource by default, allowing
more concurrency when opening or closing projects, or when setting the description but
not configuring project natures.
Action required: Clients calling
should ensure they own the correct scheduling rule. See the API javadoc for a description
of what rules are required for this and other workspace operations.
What is affected: Clients adding to the Problems, Tasks or Markers Views using
Description: The Problems, Tasks or Markers Views no longer have an entry
IWorkbenchActionConstants.MB_ADDITIONS as the pop-up and view menus are now all commands
Action required: Additions to these views can be made using the
org.eclipse.ui.menus extension point.
What is affected: Any RCP application with a dependency on the org.eclipse.tomcat plugin.
Description: Up to and including Eclipse 3.2 the help system used a Tomcat server and included the plug-in org.eclipse.tomcat.
Since Eclipse 3.3 the help system no longer uses Tomcat and instead uses the Equinox web server. In Eclipse 3.4 org.eclipse.tomcat was removed
from platform and sdk builds.
Action required: Remove any dependencies to org.eclipse.tomcat. If you need a web server use
the Equinox server defined in org.eclipse.equinox.http.jetty.
What is affected: Clients calling
TabbedPropertySheetPage.updateTabs(), or implementing
Description: The above mentioned methods and types were not usable because they required clients
to refer to internal, non-API types. To fix the leakage of internal types, methods were removed/renamed in a binary
incompatible way. For details, please refer to bug 224390.
Action required: Clients who were referring to internal non-API types to make use of the mentioned
methods and types will have to be updated to refer to the cleaned up API. Plug-ins that need to work against both versions
3.3 and 3.4 will have to use reflection to protect themselves from the binary incompatibilities.