Page 1 of 6 12345 ... LastLast
Results 1 to 10 of 57

Thread: WWJ SDK Alpha 4.1 - 0.4.1 available

Hybrid View

  1. #1
    WWJ Technical Manager
    Join Date
    May 2007
    Location
    Seattle
    Posts
    1,119

    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.

  2. #2
    WWJ Consultant patmurris's Avatar
    Join Date
    Jun 2005
    Location
    Saint-Paul de Vence, Alpes Maritimes, France
    Posts
    3,382

    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

  3. #3
    WWJ Technical Manager
    Join Date
    May 2007
    Location
    Seattle
    Posts
    1,119

    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.

  4. #4
    Senior Member
    Join Date
    Jul 2007
    Location
    Mirabel, Quebec, Canada
    Posts
    213

    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

  5. #5
    Senior Member
    Join Date
    Jul 2007
    Location
    Mirabel, Quebec, Canada
    Posts
    213

    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!

  6. #6
    WWJ Technical Manager
    Join Date
    May 2007
    Location
    Seattle
    Posts
    1,119

    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.

  7. #7
    Senior Member
    Join Date
    Jul 2007
    Location
    Mirabel, Quebec, Canada
    Posts
    213

    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!

  8. #8

    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.

  9. #9
    WWJ Consultant patmurris's Avatar
    Join Date
    Jun 2005
    Location
    Saint-Paul de Vence, Alpes Maritimes, France
    Posts
    3,382

    Default

    shin103, can you be more specific about the missing layers?
    My World Wind Java Blog & WW.net Plugins page

  10. #10

    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 Attached Images

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. WWJ SDK Alpha 4 - 0.4.0 available
    By patmurris in forum WWJ Release Announcements
    Replies: 10
    Last Post: 09-21-2010, 03:48 PM
  2. WWJ SDK Alpha 3 - 0.3.0 available
    By patmurris in forum WWJ Release Announcements
    Replies: 35
    Last Post: 12-03-2007, 09:56 PM
  3. 1.3.2 alpha 2 released
    By Jessi in forum Developers' Corner
    Replies: 25
    Last Post: 02-02-2006, 08:27 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •