World Wind Forums

Go Back   World Wind Forums > WorldWind JAVA forums > WWJ Release Announcements

WWJ Release Announcements WWJava release announcements thread, no other topics please.

Reply
 
Thread Tools Display Modes
Old 12-06-2007, 04:00 AM   #1
tag
WWJ Technical Manager
 
Join Date: May 2007
Location: Seattle
Posts: 459
Default WWJ SDK Alpha 4.1 - 0.4.1 available

The World Wind Java SDK alpha 4 - version 0.4.1 is available.
Download WWJ SDK 0.4 (Zip 6.5M) or try the java web start demo 0.4 from the NASA World Wind site.

WWJ changes from 0.4.0 to 0.4.1
  • Fixed NetworkStatus bug causing freeze for some
  • Added an off-line attribute to the WorldWind class to elect not to use the network
  • Added a show-network-status attribute to StatusBar
WorldWind Java SDK home pages at NASA Learning Technologies and WorldWind Central.
tag is offline   Reply With Quote
Old 12-06-2007, 05:09 AM   #2
patmurris
WWJ Consultant
 
patmurris's Avatar
 
Join Date: Jun 2005
Location: Saint-Paul de Vence, Alpes Maritimes, France
Posts: 3,412
Default

Note that this version also contains an updated set of great circle and rhumb line computation methods in LatLon. Previous spherical methods have been renamed to greatCircleAzimuth, Distance and EndPosition. New rhumb methods are named rhumbAzimuth, Distance and EndPosition.

A few non unicode characters have also been removed from a couple classes.
__________________
My World Wind Java Blog & WW.net Plugins page
patmurris is offline   Reply With Quote
Old 12-06-2007, 06:05 AM   #3
tag
WWJ Technical Manager
 
Join Date: May 2007
Location: Seattle
Posts: 459
Default

The new great circle and rhumb line code didn't make it into 0.4.1. I wanted to quickly make the network status fix available first. They'll be in an update in the next day or two.
tag is offline   Reply With Quote
Old 12-06-2007, 03:41 PM   #4
Chiss
Senior Member
 
Join Date: Jul 2007
Location: Mirabel, Quebec, Canada
Posts: 222
Default Feedback

Hi Tag and Pat,

Testing with 0.4.1 "out-of-the-box" behind my corporate firewall (ref the thread about problems with 0.4.0):

-> The globe still freezes for 20 seconds or so, and then it's ok for 5 seconds or so, and then it freezes again. This cycle repeats many times, but after a minute or two I didn't think the pattern would change, so I stopped trying. Here's the thread dump:
Code:
2007-12-06 09:30:42
Full thread dump Java HotSpot(TM) Client VM (1.6.0_01-b06 mixed mode):

"Idle World Wind Task " daemon prio=2 tid=0x0b0c4800 nid=0xa40 waiting on condition [0x1ea3f000..0x1ea3fc14]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff83f8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.ArrayBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Idle World Wind Retriever" daemon prio=2 tid=0x0b37dc00 nid=0x394 waiting on condition [0x1e9ef000..0x1e9efc94]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff8810> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.PriorityBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Idle World Wind Retriever" daemon prio=2 tid=0x0b35ec00 nid=0x9e0 waiting on condition [0x1e99f000..0x1e99fd14]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff8810> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.PriorityBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Idle World Wind Retriever" daemon prio=2 tid=0x0b3c7800 nid=0xa2c waiting on condition [0x1e14f000..0x1e14fd94]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff8810> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.PriorityBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Idle World Wind Retriever" daemon prio=2 tid=0x0b2b7400 nid=0x7d8 waiting on condition [0x1e0ff000..0x1e0ffa14]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff8810> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.PriorityBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Idle World Wind Retriever" daemon prio=2 tid=0x0b261800 nid=0x8d8 waiting on condition [0x1e0af000..0x1e0afa94]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff8810> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.PriorityBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Idle World Wind Task " daemon prio=2 tid=0x0b0c6800 nid=0x940 waiting on condition [0x1ca8f000..0x1ca8fb14]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff83f8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.ArrayBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Idle World Wind Task " daemon prio=2 tid=0x0b0adc00 nid=0x8a4 waiting on condition [0x1ca3f000..0x1ca3fb94]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff83f8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.ArrayBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Idle World Wind Task " daemon prio=2 tid=0x0b0ad400 nid=0x958 waiting on condition [0x1c9ef000..0x1c9efc14]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x02ff83f8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(Unknown Source)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
	at java.util.concurrent.ArrayBlockingQueue.take(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"DestroyJavaVM" prio=6 tid=0x00266800 nid=0xa1c waiting on condition [0x00000000..0x0094fd4c]
   java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-0" prio=6 tid=0x0b200400 nid=0x970 runnable [0x0b63f000..0x0b63fd14]
   java.lang.Thread.State: RUNNABLE
	at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
	at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source)
	at java.net.InetAddress.getAddressFromNameService(Unknown Source)
	at java.net.InetAddress.getAllByName0(Unknown Source)
	at java.net.InetAddress.getAllByName0(Unknown Source)
	at java.net.InetAddress.getAllByName(Unknown Source)
	at java.net.InetAddress.getByName(Unknown Source)
	at gov.nasa.worldwind.util.BasicNetworkStatus.isHostReachable(Unknown Source)
	at gov.nasa.worldwind.util.BasicNetworkStatus.isNetworkUnavailable(Unknown Source)
	at gov.nasa.worldwind.util.BasicNetworkStatus.isNetworkUnavailable(Unknown Source)
	at gov.nasa.worldwind.retrieve.BasicRetrievalService.isAvailable(Unknown Source)
	at gov.nasa.worldwind.layers.placename.PlaceNameLayer.sendRequests(Unknown Source)
	at gov.nasa.worldwind.layers.placename.PlaceNameLayer.doRender(Unknown Source)
	at gov.nasa.worldwind.layers.AbstractLayer.render(Unknown Source)
	at gov.nasa.worldwind.AbstractSceneController.draw(Unknown Source)
	at gov.nasa.worldwind.BasicSceneController.doRepaint(Unknown Source)
	at gov.nasa.worldwind.AbstractSceneController.repaint(Unknown Source)
	at gov.nasa.worldwind.WorldWindowGLAutoDrawable.doDisplay(Unknown Source)
	at gov.nasa.worldwind.WorldWindowGLAutoDrawable.display(Unknown Source)
	at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
	at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
	at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
	at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:412)
	at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
	at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277)
	at javax.media.opengl.GLCanvas.update(GLCanvas.java:354)
	at sun.awt.RepaintArea.updateComponent(Unknown Source)
	at sun.awt.RepaintArea.paint(Unknown Source)
	at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(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)

"TimerQueue" daemon prio=6 tid=0x0b090400 nid=0xa88 in Object.wait() [0x0b5ef000..0x0b5efd94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x031a4be8> (a javax.swing.TimerQueue)
	at javax.swing.TimerQueue.run(Unknown Source)
	- locked <0x031a4be8> (a javax.swing.TimerQueue)
	at java.lang.Thread.run(Unknown Source)

"Timer-0" prio=6 tid=0x0b1fbc00 nid=0xa68 in Object.wait() [0x0b59f000..0x0b59fa14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x03003b58> (a java.util.TaskQueue)
	at java.lang.Object.wait(Object.java:485)
	at java.util.TimerThread.mainLoop(Unknown Source)
	- locked <0x03003b58> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Unknown Source)

"AWT-Windows" daemon prio=6 tid=0x0b029400 nid=0xa24 runnable [0x0b50f000..0x0b50fa94]
   java.lang.Thread.State: RUNNABLE
	at sun.awt.windows.WToolkit.eventLoop(Native Method)
	at sun.awt.windows.WToolkit.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"AWT-Shutdown" prio=6 tid=0x0b028800 nid=0x214 in Object.wait() [0x0b4bf000..0x0b4bfb14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x02fc4180> (a java.lang.Object)
	at java.lang.Object.wait(Object.java:485)
	at sun.awt.AWTAutoShutdown.run(Unknown Source)
	- locked <0x02fc4180> (a java.lang.Object)
	at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x0b010c00 nid=0x8a8 in Object.wait() [0x0b46f000..0x0b46fb94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x02fc4218> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	- locked <0x02fc4218> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	at sun.java2d.Disposer.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Low Memory Detector" daemon prio=6 tid=0x0ab2bc00 nid=0x910 runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x0ab27000 nid=0x924 waiting on condition [0x00000000..0x0ad7f698]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x0ab26000 nid=0xa34 runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x0ab25000 nid=0xa28 waiting on condition [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x0ab13800 nid=0x3a4 in Object.wait() [0x0ac8f000..0x0ac8fa94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x02ef1300> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	- locked <0x02ef1300> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x0ab12800 nid=0x998 in Object.wait() [0x0ac3f000..0x0ac3fb14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x02ef1390> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
	- locked <0x02ef1390> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x0ab0f800 nid=0x950 runnable 

"VM Periodic Task Thread" prio=10 tid=0x0ab4e800 nid=0x288 waiting on condition 

JNI global references: 1226

Heap
 def new generation   total 960K, used 310K [0x02a00000, 0x02b00000, 0x02ee0000)
  eden space 896K,  32% used [0x02a00000, 0x02a49b60, 0x02ae0000)
  from space 64K,  24% used [0x02af0000, 0x02af3e88, 0x02b00000)
  to   space 64K,   0% used [0x02ae0000, 0x02ae0000, 0x02af0000)
 tenured generation   total 16340K, used 13503K [0x02ee0000, 0x03ed5000, 0x06a00000)
   the space 16340K,  82% used [0x02ee0000, 0x03c0fe00, 0x03c0fe00, 0x03ed5000)
 compacting perm gen  total 14080K, used 13939K [0x06a00000, 0x077c0000, 0x0aa00000)
   the space 14080K,  99% used [0x06a00000, 0x0779cf28, 0x0779d000, 0x077c0000)
No shared spaces configured.
...but from the looks of it, I think there's not much that can be done on that front, except maybe not calling "BasicNetworkStatus.isHostReachable( )" from the Event dispatch thread...

The good news, though, is that once I modified ApplicationTemplate to set the offline mode to true via the WorldWind class, everything works like a charm. I believe you should make this method static (which I did for my test), because it's itself calling a static method (getNetworkStatus()). Probably just an oversight.

Many thanks for that offline mode, by the way, it will be very usefull for me too.. My users, like myself, are typically on a Defense network behind an (understandably) paranoid firewall, so I'll be either packaging my layers or get them from an internal WMS server...but I guess at that point I'll have to re-enable the network... hmmmm....something to think about

Glad to be of help!

Chiss!

Last edited by Chiss; 12-06-2007 at 03:42 PM. Reason: Added contextual details
Chiss is offline   Reply With Quote
Old 12-06-2007, 04:17 PM   #5
Chiss
Senior Member
 
Join Date: Jul 2007
Location: Mirabel, Quebec, Canada
Posts: 222
Default

Hello again,

What a fantastic set of examples! I'm drooling all over it ! I didn't get the time to check 0.3.0 when it got released, so maybe I'm late to the party..!

I did notice, however, that the Tracks.java is missing its "tuolumne.gpx" file... All I found was the 3 PipeTracks gpx files.

Great job with the SDK!

Chiss!
Chiss is offline   Reply With Quote
Old 12-06-2007, 06:33 PM   #6
tag
WWJ Technical Manager
 
Join Date: May 2007
Location: Seattle
Posts: 459
Default

Thanks for trying that. We're unable to duplicate the problem here -- yes, even when we unplug the network cable, and we tried several computers -- so the solution was just a guess based on the stack traces you posted. Can you tell me the characteristics of the machine you're using. Specifically, the number and type of processors, the operating system and the graphics device. Are you connected to some network, even if not a public one, or fully stand-alone?

Thanks.
tag is offline   Reply With Quote
Old 12-06-2007, 07:14 PM   #7
Chiss
Senior Member
 
Join Date: Jul 2007
Location: Mirabel, Quebec, Canada
Posts: 222
Default

Here we go:

Computer : Pentium4 3.2GHz, single CPU with 1Gig of RAM
O/S : Win2k
Video: ATI Radeon X600 256M (at least that's what Windows's 'Device Manager' says... It's my machine at work and I'm not allowed to peek under the hood

The computer is connected to the office LAN which can access the Internet via the corporate firewall.

I hope this helps!

Chiss!
Chiss is offline   Reply With Quote
Old 12-06-2007, 08:57 PM   #8
shin103
Member
 
Join Date: Jun 2007
Posts: 30
Default

Tag, thank you very much for the quick response. I am also still having the same problem as chiss described. My machine is a Dell Pentium M Chip, 2.0 GHz, 2 GB RAM laptop.

I also noticed that the new version somehow does not use the USGS Digital Orth graphics data and high res LandSat data. I can prvoide screen shot of wwj0.3.0 and wwj0.4.1 using the same dataset if you think that helps.
shin103 is offline   Reply With Quote
Old 12-06-2007, 10:19 PM   #9
patmurris
WWJ Consultant
 
patmurris's Avatar
 
Join Date: Jun 2005
Location: Saint-Paul de Vence, Alpes Maritimes, France
Posts: 3,412
Default

shin103, can you be more specific about the missing layers?
__________________
My World Wind Java Blog & WW.net Plugins page
patmurris is offline   Reply With Quote
Old 12-06-2007, 10:46 PM   #10
shin103
Member
 
Join Date: Jun 2007
Posts: 30
Default

Patrick,

the attached screen shots are taken from running JavaOneDemoA using wwj0.3.0 and wwj0.4.1 respectively on my box without code change. As you can see, the 0.3.0 is using more detailed data than 0.4.1.

thanks,

Shin.
Attached Images
File Type: png snap_v0.3.0.png (555.5 KB, 630 views)
File Type: png snap_v0.4.1.png (428.2 KB, 562 views)
shin103 is offline   Reply With Quote
Reply

Tags
None


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
WWJ SDK Alpha 4 - 0.4.0 available patmurris WWJ Release Announcements 9 07-19-2009 02:50 AM
WWJ SDK Alpha 3 - 0.3.0 available patmurris WWJ Release Announcements 35 12-03-2007 09:56 PM
1.3.2 alpha 2 released Jessi Developers' Corner 28 02-02-2006 08:27 PM


All times are GMT +1. The time now is 04:47 PM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.