Hi Sascha,

  I have run into the WMS Layer problem you referred to.  It is caused by
the fact that WMSLayer renders on a separate Thread.  To wait for those
layers to finish rendering, I wait for the Thread queue to be empty as in
the following snippet:

                renderingManager.renderAll();
                ThreadQueue runningThreads = 
renderingManager.getDefaultRendererThreadQueue();
                while (runningThreads.getRunningThreads()>0)
                        Thread.sleep(200);

regards,
Larry

On 5/22/07, Stefan Steiniger <[EMAIL PROTECTED]> wrote:

Hei Sascha,

thanx a lot.
are you going to commit it the openjump cvs repository?
would be nice :o)

stefan

Sascha L. Teichmann schrieb:
> Hi together,
>
> I'm currently hunting down some timing bugs in the Print/Layout plug-in.
> If WMS layers are used they are not always imported correctly into
> the layout sheet.
>
> On my trip down the rendering path I found out that WMS layers
> do not cache the resulting images of there requests.
>
> I've written a patch (see attachment) against WMSLayer [1] that stores
> the result of the last request using a pair of java.net.URL and
> java.lang.ref.SoftReference (java.awt.Image).
> If the next WMS request URL equals the last one the stored
> image is used and so expensive traffic is avoid.
>
> This does not solve my timing problem but it improves it a bit.
> IMHO this little tweak improves WMS performance in general
> by removing redundant HTTP traffic.
>
> Kind regards,
>   Sascha
>
> [1] com.vividsolutions.jump.workbench.model.WMSLayer
>
>
> ------------------------------------------------------------------------
>
> Index: src/com/vividsolutions/jump/workbench/model/WMSLayer.java
> ===================================================================
> RCS file:
/cvsroot/jump-pilot/openjump/src/com/vividsolutions/jump/workbench/model/WMSLayer.java,v
> retrieving revision 1.2
> diff -u -w -r1.2 WMSLayer.java
> --- src/com/vividsolutions/jump/workbench/model/WMSLayer.java 24 Jun
2005 09:01:57 -0000      1.2
> +++ src/com/vividsolutions/jump/workbench/model/WMSLayer.java 22 May
2007 16:16:43 -0000
> @@ -51,6 +51,11 @@
>  import com.vividsolutions.wms.MapRequest;
>  import com.vividsolutions.wms.WMService;
>
> +import java.net.URL;
> +
> +import java.lang.ref.Reference;
> +import java.lang.ref.SoftReference;
> +
>  /**
>   * A Layerable that retrieves images from a Web Map Server.
>   */
> @@ -66,6 +71,10 @@
>       private WMService service;
>
>       private String wmsVersion = WMService.WMS_1_0_0;
> +
> +     protected Reference oldImage;
> +     protected URL       oldURL;
> +
>       /**
>        * Called by Java2XML
>        */
> @@ -121,7 +130,20 @@
>       }
>
>       public Image createImage(LayerViewPanel panel) throws IOException
{
> -             Image image = createRequest(panel).getImage();
> +
> +             MapRequest request = createRequest(panel);
> +             URL        newURL  = request.getURL();
> +
> +             Image image;
> +
> +             // look if last request equals new one.
> +             // if it does take the image from the cache.
> +             if (oldURL == null
> +             || !newURL.equals(oldURL)
> +             || oldImage == null
> +             || (image = (Image)oldImage.get()) == null
> +             ) {
> +                     image = request.getImage();
>               MediaTracker mt = new MediaTracker(new JButton());
>               mt.addImage(image, 0);
>
> @@ -130,6 +152,9 @@
>               } catch (InterruptedException e) {
>                       Assert.shouldNeverReachHere();
>               }
> +                     oldImage = new SoftReference(image);
> +                     oldURL   = newURL;
> +             }
>
>               return image;
>       }
>
>
> ------------------------------------------------------------------------
>
>
-------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel




--
http://amusingprogrammer.blogspot.com/
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to