1 4 1 Issues

From World Wind Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 13:39, 23 August 2009 (edit)
Ammianus (Talk | contribs)
m (starfield listed in layer manager is the older plugin)
← Previous diff
Revision as of 14:06, 23 August 2009 (edit) (undo)
Ammianus (Talk | contribs)
m (1.4.1 Issues List - - revision 4082 for #12)
Next diff →
Line 104: Line 104:
| - | -
| Low | Low
-| Ammianus+| ammianus
| Fix Available | Fix Available
-| -+| 4082
|} |}

Revision as of 14:06, 23 August 2009


1.4.1 Issues List

All known Issues for World Wind .NET that are in 1.4.1 release

ID Issue Description (short) JIRA id (if applicable) Priority (H,M,L) Assigned To Status Fixed in Revision
1 blocking issue between Rismo's code and ROL locks - High unassigned Still Open -
2 James' Icon Performance changes - High unassigned Still Open -
3 Download code error response handling - High ammianus Fix available 4081
4 starfield listed in layer manager is the older plugin - Low ammianus Fix available -
5 WWC to support WWJ cache location and files - Low fiveofoh Fix available, Testing needed -
6 Camera.cs - High fiveofoh Still Open -
7 WorldWind.log rollover - Low unassigned Still Open -
8 Mars tiles do not load - Med unassigned Still Open -
9 WW doesn't install correctly for multi-user env - Low unassigned Still Open -
10 NltTerrainAccessor.cs BUG - Low fiveofoh Fix Suggested -
11 DirectX Screen Lock Issue - Med unassigned Still Open -
12 Atmosphere.cs NullReference error - Low ammianus Fix Available 4082

Detail Issue Notes

blocking issue between Rismo's code and ROL locks

Description: The issue with Rismo's code is that he had pushed ROL deletes into a list that were then handled on the main (gui) thread. But you need to do this for both adds and deletes because you can end up with blocking for either one.

The problem then was things in WW and plugins assumed that an add or delete happened immediately so you'd end up with breakage because somethings avoided using the getters and setters but hit the ROL array directly. They would do an ROL.add(...) then try to get at those objects immediately and they weren't there. Or they'd do an ROL.remove(...) and maybe do a dispose on it or something else not nice. So when you got around to handling deletes the object was bad or in some not good state.

The breakage can be pretty obvious (crash) or somewhat more subtle (ROs don't render or behave right).

Forum Threads: N/A


James' Icon Performance changes

Description: New rendering for icons changed in June 26th and performance degrades with more than a few thousand icons to render

Forum Threads: http://forum.worldwindcentral.com/showthread.php?t=20138&highlight=icon+performance


Download code error response handling

Description: Download code will download repeatedly request tiles after a error response code from the server, e.g. 400,404. World Wind will also not handle 500 or other server error responses with appropriate time-out behavior.

Forum Threads:

Comments: (ammianus) - 7/26/09 - I've made some changes and tested with the help of James_in_Utah. The changes I made include:

  • 4xx / Client error are cached as failures and WW will not retry to download them during that session (cache is in memory only and cleared when WW is exited).
    • 400 Bad Request
    • 401 Unauthorized
    • 403 Forbidden
    • 404 Not Found
    • 206 Partial Content
    • 200 OK && Content length == 0
  • 5xx / Server Error are recorded and a timeout period will begin before requests are allowed to this server again. A message is displayed in the top right of the UI stating the timeout length. If server response contains "retry-after" header, that period is used, otherwise default is 2 minutes.
    • 500 Internal Server Error
    • 501 Not Implemented
    • 502 Bad Gateway
    • 503 Service Unavailable

Changes made to source files:

  • WebDownload/WebDownload.cs
  • PluginSDK/QuadTileSet.cs
  • PluginSDK/Renderable/GeoSpatialDownloadRequest.cs

See source code svn: https://nasa-exp.svn.sourceforge.net/svnroot/nasa-exp/branches/ammianus

starfield listed in layer manager is the older plugin

Description: when you uncheck "Starfield" in the Layer Manager, it doesn't actually remove the stars that are in the background.

Forum Threads: http://forum.worldwindcentral.com/showthread.php?t=22046

Comments: The Starfield issue isn't exactly a bug, the starfield listed in layer manager is the older plugin and probably isn't actually needed, the other starfield is Stars3D.

It seems that the Starfield in the layer manager is for Stars3D plugin. If you load/unload the plugin from Menu > Plug-ins > Load/Unload... it will show or hide the starfield in the background. It seems that unchecking in LayerManager doesn't actually unload this layer. That should be fixed. Ammianus 18:39, 1 August 2009 (UTC)

(Update) Made updates to WorldWind\Stars3d.cs. Fixed issue where unchecking the Starfield box in LayerManager would not hide the background stars. Made this setting persistant to .ini file. checked into svn branch svn: https://nasa-exp.svn.sourceforge.net/svnroot/nasa-exp/branches/ammianus Ammianus 22:44, 1 August 2009 (UTC)

WWC to support WWJ cache location and files

Description: WWC (.NET) should be changed to accept data from the cache WITHOUT the leading "00".

Both the WWC and WWJ (and most other) servers do not have the leading "00". There is no reason a WWC layer cannot be made to download from the WWJ server.

Default cache location changed to match the Java. Vista has a Program Data folder in the C drive, just like Program Files, that should do the trick for storing the cache (in fact this is where WWJava stores it cache on Vista) and then there are AppData folders in the user folders that could store the config files and possibly some plug-ins (the World settings and World Wind settings files are already stored in this AppData folder, along with the debug reports C:\Users\<user>\AppData\Roaming\NASA\World Wind)

Forum Threads: N/A

Comments: I've implemented the structure compatibility in my branch in SVN. I've configured it to default (for reading and writing) to the WWJ cache structure, and resort to the WWC cache structure only for reading, and only if it can't find it in a WWJ structure. This could be easily changed to default to WWC, and use WWJ only for reading, or what have you. But this way was mentioned, and made the most sense to me.

Preliminary testing looks like it's working fine. Because it is per file, this change, when set loose on a WWC-style cache, will create duplicate-looking folders (64 and 0064), but the 0064 will contain the old cache files, any new files will be written to 64, and WW will be able to find them in either place. Again, 0064 will only contain cache files from before the switch, and 64 will contain only cache files from after the switch. Any scheme to "convert" the cache to a pure WWJ format will need to take this into consideration.

--5of0 11:33, 1 August 2009 (UTC)


Description: IRC - it looks like some raytracing/3D geometry issues

Forum Threads: N/A

Comments: Summary of relevant IRC discussion:

  • Looks like camera distance doesn't take VE into account at all
  • When the camera is crashing into the terrain, then distance should be 0 (it's not)
  • Alt vs distance is difference between the camera ViewRange and TrueViewRange properties (currently the same)
  • Right now calculations are all done relative to the sphere, with no terrain
  • Quadtileset class needs to be changed to use TrueViewRange instead of ViewRange
  • We need dist between the camera and the point it is looking at on the mesh
  • There are a bunch of methods calculating distance, altitude, and tilt when one of the three changes
    • Unsure if they take terrain into account
  • It's not a raytracing problem - it's the part that tile is not a point, and to calculate distance to tile you cant just choose point in the middle and hope for correct result :D
    • Really need a point of intersection with a triangle
  • Viewrange is what the quadtileset class uses to determine level?
  • Bounding sphere is the easiest way to guarantee that the distance youre getting can be only bigger


  • Find a bounding sphere of each tile and calculate distance from that (via Nowak)
  • Easiest way to get distance is to find location of Camera and Point this is just the direction cosine form of lat lon scaled by (world_radius+height)/world_radius. Direction cosine form is the radial vector in xyz and then Vec3DotProd(CamPos - PointPos) == Distance (via nhv)
    • There are issues when look vector doesn't intersect the world
  • We need mashi (via Bull_[UK])

WorldWind.log rollover

Description: The WorldWind.log file will continue to append indefinitely and it will never rollover to a new file. Idea to have the log file have a configurable size to rollover. Previous logs could be archived for a certain length of time then also deleted.

Forum Threads: http://forum.worldwindcentral.com/showthread.php?t=16254&highlight=WorldWind.log


Mars tiles do not load

Description: Reported by an Unregistered user in the Bug Reports forum. The tiles for Mars do not download from the NASA server. The error response is: "The remote server returned an error: (401) Unauthorized." The URL is for example http://worldwind25.arc.nasa.gov/mars/mars.aspx?T=mocC256&L=0&X=7&Y=0

We should update to a new server or if not maybe not include Mars with the next official release.

Forum Threads:

Comments: Should any action need to be taken to alert all users on 1.4.0? Like an announcment on the wiki?

WW doesn't install correctly for multi-user env

Description: Reported by an rpremuz user in the Bug Reports forum.

Default installation puts shortcuts in the current user profile On MS Windows 2000 and Windows XP (which are supported by World Wind) the following environment variables exist (among others) after a user logs into Windows: ALLUSERSPROFILE - directory path of the user profile accessible by all users USERPROFILE - directory path of the current user profile

I installed World Wind 1.4 on an MS Windows XP Professional SP3 (English edition) and noticed that the installation put shortcuts for starting the application into the following directory: "%USERPROFILE%\Start Menu\Programs\NASA\World Wind" which is intended only for that particular user. If other users log into the system, they can't access the shortcuts (i.e. the shortcuts don't appear on the Start Menu).

Instead the installation should put the shortcuts in "%ALLUSERSPROFILE%\Start Menu\Programs\NASA\World Wind"

Forum Threads: http://forum.worldwindcentral.com/showthread.php?t=21019


NltTerrainAccessor.cs BUG

Description: Reported by xtaci user in the Bug Reports forum. There appears to be a line of code in NltTerrainAccessor.cs that does nothing and could be a memory leak. xtaci suggested a fix. This was not implemented in current SVN.

Forum Threads: http://forum.worldwindcentral.com/showthread.php?t=20661

Comments: Fix was suggested, I don't know how big a problem this could be since it hasn't been fixed in two years, but I don't see why we shouldn't correct it. I can make the change in my branch and test his suggestion. Any advice on how to validate? Ammianus 13:48, 2 August 2009 (UTC)

I've made the change in my branch, did testing with and without the change. It did indeed cause a memory leak before the fix, and worked as expected afterwards. It's in SVN (under my branch) now. --5of0 03:33, 3 August 2009 (UTC)

DirectX Screen Lock Issue

Description: Issues when you minimize WorldWind and lock then unlock your computer, go into hibernate, etc and come back there will be some DirectX errors. Some code changes were suggested but there are reports in the thread that the proposed solutions only work intermittently

Forum Threads: http://forum.worldwindcentral.com/showthread.php?t=8840


Atmosphere.cs NullReference error

Description: When loading Atmosphere plugin there will be hundreds of DEBUG logs with errors like this: "System.NullReferenceException: Object reference not set to an instance of an object." Forum Threads: http://forum.worldwindcentral.com/showthread.php?t=21925 Comments: Fix described in the thread, change to one line of code where World is being referenced statically but is null.

Personal tools