Jump to: navigation, search

OTTroubleShooting

Trouble Shooting — Error messages, causes and solutions

This page collects error messages of the Object Teams Development Tooling that may pop up in dialogs and/or appear in the log file at {$workspace_loc}/.metadata/.log, along with explanations of root causes and possible solutions.

fragment has no host bundle

Error message
 OT/Equinox: Required fragment org.eclipse.jdt.compiler.apt has no host bundle (aspect binding of org.objectteams.otdt.apt.adaptor)
Cause
The plugin org.objectteams.otdt.apt.adaptor tries to adapt the bundle fragment org.eclipse.jdt.compiler.apt, which requires an execution environment JavaSE-1.6. On platforms where JavaSE-1.6 is not available this fragment cannot be resolved, which in turn causes the adaptor plugin to fail, too.
Solution
No action required.

AbortCompilation

Exception
 org.eclipse.jdt.internal.compiler.problem.AbortCompilation
Cause
This exception likely signals an incomplete classpath. In some cases the problem view will give further information by specifying a specific type that could not be resolved.
Solutions
Some occurrences of this exception are harmless. Only if this exception is paired with other unexpected behavior it might be a hint to the underlying root cause.


No OT/J plug-in project found

Exception
 No OT/J plug-in project found, debug functionality not fully available.
Cause
An eclipse application (or JUnit plugin test) was launched in debug mode, while no project with OTJavaNature was open in the workspace. As the only result of this problem the team monitor view will not work.
Solution
Open any project that has the OTJavaNature.

ClassCircularityError

Exception
java.lang.ClassCircularityError: org/eclipse/jface/dialogs/IDialogSettings
Cause
When this happens in an OT/Equinox project, it could mean that you are trying to combine the following two elements
  • Define an aspectBinding to bundle org.eclipse.ui.workbench
  • Define an activator that extends org.eclipse.ui.plugin.AbstractUIPlugin
  • In this situation we get the following cyclical dependencies:
  1. when starting org.eclispe.ui.workbench the adapting team must be instantiated and activated
  2. when instantiating the team its bundle must be activated using the activator
  3. when loading the activator class AbstractUIPlugin must be loaded
  4. org.eclipse.ui.workbench must be started
More complex structures may occurr when the aspect bundle adapts another bundle, which has an activator extending AbstractUIPlugin. This could also cause the ClassCircularityError.
Workaround
For the simple variant just split the bundle into two, to make the activator independent of the aspect bundle.
An future version of OT/Equinox will support runtime re-weaving which should allow us to defer weaving until all involved bundles have been activated, thus reducing the impact on load orders.