Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
I am trying to use IDV classes in a servlet environment, rendering BufferedImages (offscreen mode) for return to a web browser.If I have a single Displayable, in my case a Contour2DDisplayable, and I attempt to add it directly to two different DisplayMasters (one for each web 'user') I get an error:
2007-08-09 16:21:39,274 23078 ERROR - visad.DisplayException: ScalarMap.setDisplay: ScalarMap cannot belong to two Displays visad.DisplayException: ScalarMap.setDisplay: ScalarMap cannot belong to two Displays at visad.ScalarMap.setDisplay(ScalarMap.java:393) at visad.DisplayImpl.addMap(DisplayImpl.java:1926) at visad.DisplayImpl.addMap(DisplayImpl.java:1866) at ucar.visad.display.DisplayMaster.addScalarMaps(DisplayMaster.java:1778) at ucar.visad.display.DisplayMaster.rebuild(DisplayMaster.java:605) at ucar.visad.display.DisplayMaster.rebuildDisplay(DisplayMaster.java:578) at ucar.visad.display.DisplayMaster.setActive(DisplayMaster.java:1956) at ucar.visad.display.DisplayMaster.draw(DisplayMaster.java:1481)But if I try to use the Contour2DDisplayable.cloneForDisplay() method to work around this, I get no image from the DisplayMaster.getImage call, it just hangs.
In I test in onscreen mode, I note that the use of cloneForDisplay means I never see the data in the Jframe. It's as though the clone is only partial?? Any help gratefully appreciated. BTW, in the IDV, do you recreate copies of Displayable 'from scratch' as it were, or use the clone technique?? Stuart Maclean
idvdevelopers
archives: