[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipse-dev] Eclipse beginner threading question...
|
Horst
This list is meant for news about the development of Eclipse - these sort
of questions are better asked in the newsgroups.
All calls to SWT must be done in the UI Thread. You can do this using
Display.asyncExec() Display,syncExec() or a UIJob.
Tod
Horst Heistermann <horst.heistermann@xxxxxxxxxx>
Sent by: eclipse-dev-bounces@xxxxxxxxxxx
04/26/2005 04:19 PM
Please respond to
"General development mailing list of the Eclipse project."
To
eclipse-dev@xxxxxxxxxxx
cc
Subject
[eclipse-dev] Eclipse beginner threading question...
Hi,
I am new to eclipse and I am having a problem with threads. I have
created a MultiPageEditorPart
editor. I have a background thread listening to model changes in my
application. I am notified of these changes
in a non -gui thread. I want to set MultiPageEditorPart as dirty
whenever I receive a model change event.
So I wrote a function like this
public void setEditorModified() {
m_bModified = true;
if (!super.isDirty()) {
firePropertyChange(IEditorPart.PROP_DIRTY);
}
}
This method crashes whenever I call it from the background thread. Below
is the error stack. But it is a bit misleading. From the debugger, I can
see the issue is with the thread I am calling firePropertyChange() from.
Can anyone tell me what is the proper way to update the dirty state
from a background thread. Also, the background thread is not aware of
the GUI components it only has a refer.
java.lang.NullPointerException
at
org.eclipse.jface.dialogs.IconAndMessageDialog.getSWTImage(IconAndMessageDialog.java:225)
at
org.eclipse.jface.dialogs.IconAndMessageDialog.getErrorImage(IconAndMessageDialog.java:172)
at
org.eclipse.jface.dialogs.MessageDialog.<init>(MessageDialog.java:141)
at
org.eclipse.jface.dialogs.MessageDialog.openError(MessageDialog.java:310)
at
org.eclipse.jface.util.SafeRunnable.handleException(SafeRunnable.java:59)
at
org.eclipse.core.internal.runtime.InternalPlatform.handleException(InternalPlatform.java:703)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1023)
at org.eclipse.core.runtime.Platform.run(Platform.java:757)
at
org.eclipse.ui.part.WorkbenchPart.firePropertyChange(WorkbenchPart.java:121)
at
horst.modeler.editors.BPELModelerEditor.setEditorModified(BPELModelerEditor.java:103)
at
horst.modeler.editors.BPELModelerEditor.threadSafeSetEditorModified(BPELModelerEditor.java:96)
at
horst.modeler.editors.BPELModelerEditor$1.graphNodesInserted(BPELModelerEditor.java:142)
at
oracle.tip.tools.ide.common.graph.AbstractGraphModel.fireGraphNodesInserted(AbstractGraphModel.java:391)
at
oracle.tip.tools.ide.common.graph.AbstractGraphModel.insertChildNode(AbstractGraphModel.java:132)
at
oracle.tip.tools.ide.pm.bpelgraph.collaxalaf.BPELDNDDropHandler.handleDrop(BPELDNDDropHandler.java:202)
at
oracle.tip.tools.ide.common.graph.DefaultGraphPaneDropTargetListener.routeToDropHandler(DefaultGraphPaneDropTargetListener.java:212)
at
oracle.tip.tools.ide.common.graph.DefaultGraphPaneDropTargetListener.handleDrop(DefaultGraphPaneDropTargetListener.java:200)
at
oracle.tip.tools.ide.pm.bpelgraph.collaxalaf.BPELGraphPaneDropTargetListener.handleDrop(BPELGraphPaneDropTargetListener.java:75)
at
oracle.tip.tools.ide.common.graph.DefaultGraphPaneDropTargetListener.drop(DefaultGraphPaneDropTargetListener.java:260)
at java.awt.dnd.DropTarget.drop(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(Unknown
Source)
at sun.awt.dnd.SunDropTargetContextPeer.access$800(Unknown Source)
at
sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(Unknown
Source)
at
sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Unknown
Source)
at sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processDropTargetEvent(Unknown
Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
_______________________________________________
eclipse-dev mailing list
eclipse-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipse-dev