Users, Text Chat and Mic windows are black

4 views
Skip to first unread message

John

unread,
Jul 6, 2011, 9:04:47 AM7/6/11
to Open Wonderland Forum
I am setting up OWL on a Windows 7 PC as we do not require shared apps
for our specific application. It all works fine when I start the
client via the web browser/jnlp. However if I run the client from the
command line using org.jdesktop.wonderland.client.jme.JmeClientMain
then the User, Text Chat and mic windows are black. Everything else
appears to be ok. I get the following error message. Could anyone help
me solve this please?

WARNING: Error initializing plugin
org.jdesktop.wonderland.modules.appbase.clien
t.AppClientPlugin
java.lang.Error: Cannot call invokeAndWait from the event dispatcher
thread
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1025)
at
javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1326)
at
org.jdesktop.wonderland.modules.appbase.client.cell.view.viewdefault.
HeaderPanelAllocator.createHeader(HeaderPanelAllocator.java:83)
at
org.jdesktop.wonderland.modules.appbase.client.cell.view.viewdefault.
HeaderPanelAllocator.initialize(HeaderPanelAllocator.java:51)
at
org.jdesktop.wonderland.modules.appbase.client.cell.view.viewdefault.
HeaderPanelAllocator.<init>(HeaderPanelAllocator.java:43)
at
org.jdesktop.wonderland.modules.appbase.client.cell.view.viewdefault.
FrameHeaderSwing.staticInitialize(FrameHeaderSwing.java:127)
at
org.jdesktop.wonderland.modules.appbase.client.cell.view.viewdefault.
View2DCellFactoryDefault.initialize(View2DCellFactoryDefault.java:34)
at
org.jdesktop.wonderland.modules.appbase.client.AppClientPlugin.initCe
llViewFactory(AppClientPlugin.java:88)
at
org.jdesktop.wonderland.modules.appbase.client.AppClientPlugin.initAp
pBaseUserClient(AppClientPlugin.java:67)
at
org.jdesktop.wonderland.modules.appbase.client.AppClientPlugin.initia
lize(AppClientPlugin.java:54)
at
org.jdesktop.wonderland.client.login.ServerSessionManager.initPlugins
(ServerSessionManager.java:702)
at
org.jdesktop.wonderland.client.login.ServerSessionManager.access$400(
ServerSessionManager.java:80)
at org.jdesktop.wonderland.client.login.ServerSessionManager
$LoginContro
l.loginComplete(ServerSessionManager.java:850)
at org.jdesktop.wonderland.client.login.ServerSessionManager
$WebServiceL
oginControl.loginComplete(ServerSessionManager.java:957)
at org.jdesktop.wonderland.client.login.ServerSessionManager
$WebServiceL
oginControl.authenticate(ServerSessionManager.java:947)
at org.jdesktop.wonderland.client.login.ServerSessionManager
$UserPasswor
dLoginControl.authenticate(ServerSessionManager.java:1003)
at org.jdesktop.wonderland.client.jme.login.JmeLoginUI
$2.run(JmeLoginUI.
java:107)
at
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext
$1.doIntersectionPrivilege(AccessCo
ntrolContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:
122)

Jonathan Kaplan

unread,
Jul 6, 2011, 12:36:23 PM7/6/11
to openwon...@googlegroups.com
That's an odd one -- it looks like the login threads are a bit different in the local binary case than in the web start case, which is tripping up some initialization code. I guess I'm just surprised more people don't run into this. Does it happen consistently?

In any case, I think the workaround is in appbase here:


Change the code to check if it is already on the awt event thread, and only call invokeAndWait() if it isn't:

if (SwingUtilities.isEventDispatchThread()) {
    // create object directly
    newlyCreatedHeader = new HeaderPanel();
} else {
    // existing code
    SwingUtilities.invokeAndWait(new Runnable () {
        ...
    }
}

If that fixes the issue, I'll commit the change.

John

unread,
Jul 11, 2011, 7:26:49 AM7/11/11
to Open Wonderland Forum
Thanks Jonathan. I changed the code as you suggested and that fixed
it.

.

On Jul 6, 5:36 pm, Jonathan Kaplan <jonathan...@gmail.com> wrote:
> That's an odd one -- it looks like the login threads are a bit different in
> the local binary case than in the web start case, which is tripping up some
> initialization code. I guess I'm just surprised more people don't run into
> this. Does it happen consistently?
>
> In any case, I think the workaround is in appbase here:
>
> http://code.google.com/p/openwonderland/source/browse/trunk/modules/f...
> > 122)- Hide quoted text -
>
> - Show quoted text -
Reply all
Reply to author
Forward
0 new messages