[ 
https://issues.apache.org/jira/browse/PIVOT-780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13079276#comment-13079276
 ] 

Chris Bartlett edited comment on PIVOT-780 at 8/4/11 8:50 AM:
--------------------------------------------------------------

Noel - The Display check sounds good to me, but as mentioned elsewhere I would 
prefer the EDT check to be optional if it makes sense.  

Is the purpose to prevent threading issues like deadlocks, or just to ensure 
that updates will be visible without an explicit repaint or some kind of layout 
change, or something else?

      was (Author: cbartlett):
    Noel - The Display check sounds good to me, but as mentioned elsewhere I 
would prefer the check to be optional if it makes sense.

Is the purpose to prevent threading issues like deadlocks, or just to ensure 
that updates will be visible without an explicit repaint or some kind of layout 
change, or something else?
  
> Can't use BXMLSerializer from non-AWT threads makes background resource 
> loading impossible
> ------------------------------------------------------------------------------------------
>
>                 Key: PIVOT-780
>                 URL: https://issues.apache.org/jira/browse/PIVOT-780
>             Project: Pivot
>          Issue Type: Bug
>          Components: core-beans, wtk
>    Affects Versions: 2.0.1
>            Reporter: Piotr Kołaczkowski
>              Labels: background, initialization, thread
>             Fix For: 2.0.1
>
>
> Calling bxmlSerializer.readObject from a non-AWT thread causes the following 
> exception:
> An error occurred at line number 5 in file 
> /C:/Users/Piotr/Projekty/viungo/viungo-editor/target/scala_2.9.0/classes/com/viungo/editor/CircuitEditor.bxml:
> org.apache.pivot.serialization.SerializationException: 
> java.lang.IllegalStateException: this method can only be called from the AWT 
> event dispatch thread
>       at 
> org.apache.pivot.beans.BXMLSerializer.processStartElement(BXMLSerializer.java:769)
>       at 
> org.apache.pivot.beans.BXMLSerializer.readObject(BXMLSerializer.java:441)
>       at 
> org.apache.pivot.beans.BXMLSerializer.readObject(BXMLSerializer.java:624)
>       at 
> org.apache.pivot.beans.BXMLSerializer.readObject(BXMLSerializer.java:579)
>       at 
> org.apache.pivot.beans.BXMLSerializer.readObject(BXMLSerializer.java:540)
>       at 
> com.viungo.editor.CircuitEditor$$anon$1.execute(CircuitEditor.scala:21)
>       at 
> com.viungo.editor.CircuitEditor$$anon$1.execute(CircuitEditor.scala:18)
>       at 
> org.apache.pivot.util.concurrent.Task$ExecuteCallback.run(Task.java:42)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>       at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>       at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.IllegalStateException: this method can only be called 
> from the AWT event dispatch thread
>       at org.apache.pivot.wtk.Container$1.run(Container.java:864)
>       at 
> org.apache.pivot.wtk.Container.assertEventDispatchThread(Container.java:871)
>       at org.apache.pivot.wtk.WTKListenerList.add(WTKListenerList.java:36)
>       at 
> org.apache.pivot.wtk.skin.ComponentSkin.install(ComponentSkin.java:96)
>       at 
> org.apache.pivot.wtk.skin.ContainerSkin.install(ContainerSkin.java:129)
>       at org.apache.pivot.wtk.skin.WindowSkin.install(WindowSkin.java:66)
>       at org.apache.pivot.wtk.Component.setSkin(Component.java:749)
>       at org.apache.pivot.wtk.Component.installSkin(Component.java:812)
>       at org.apache.pivot.wtk.Window.<init>(Window.java:453)
>       at org.apache.pivot.wtk.Window.<init>(Window.java:448)
>       at com.viungo.editor.EditorWindow.<init>(EditorWindow.scala:20)
>       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>       at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>       at java.lang.Class.newInstance0(Class.java:355)
>       at java.lang.Class.newInstance(Class.java:308)
>       at 
> org.apache.pivot.beans.BXMLSerializer.newTypedObject(BXMLSerializer.java:1556)
>       at 
> org.apache.pivot.beans.BXMLSerializer.processStartElement(BXMLSerializer.java:767)
>       ... 11 more
> Loading objects in background is very important, so that the user can see 
> e.g. a progress indicator while the rest of the UI is deserialized. 
> Doing this in AWT thread, blocks what is currently displayed.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to