Ignore:
Timestamp:
2014-08-16T23:50:43+02:00 (10 years ago)
Author:
Don-vip
Message:

fix #3916 - WMS: Improve exception handling. Proper message is now displayed on tiles.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/WMSLayer.java

    r7140 r7425  
    6262import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    6363import org.openstreetmap.josm.io.WMSLayerImporter;
    64 import org.openstreetmap.josm.io.imagery.Grabber;
    6564import org.openstreetmap.josm.io.imagery.HTMLGrabber;
     65import org.openstreetmap.josm.io.imagery.WMSException;
    6666import org.openstreetmap.josm.io.imagery.WMSGrabber;
    6767import org.openstreetmap.josm.io.imagery.WMSRequest;
     
    147147    private final Lock requestQueueLock = new ReentrantLock();
    148148    private final Condition queueEmpty = requestQueueLock.newCondition();
    149     private final List<Grabber> grabbers = new ArrayList<>();
     149    private final List<WMSGrabber> grabbers = new ArrayList<>();
    150150    private final List<Thread> grabberThreads = new ArrayList<>();
    151151    private boolean canceled;
     
    163163    }
    164164
     165    /**
     166     * Constructs a new {@code WMSLayer}.
     167     */
    165168    public WMSLayer(ImageryInfo info) {
    166169        super(info);
     
    648651                GeorefImage img = images[modulo(request.getXIndex(),dax)][modulo(request.getYIndex(),day)];
    649652                if (img.equalPosition(request.getXIndex(), request.getYIndex())) {
    650                     img.changeImage(request.getState(), request.getImage());
     653                    WMSException we = request.getException();
     654                    img.changeImage(request.getState(), request.getImage(), we != null ? we.getMessage() : null);
    651655                }
    652656            }
     
    931935            Main.map.mapView.zoomTo(Main.map.mapView.getCenter(), 1 / info.getPixelPerDegree());
    932936        }
    933 
    934937    }
    935938
     
    938941        try {
    939942            canceled = true;
    940             for (Grabber grabber: grabbers) {
     943            for (WMSGrabber grabber: grabbers) {
    941944                grabber.cancel();
    942945            }
     
    964967            grabberThreads.clear();
    965968            for (int i=0; i<threadCount; i++) {
    966                 Grabber grabber = getGrabber(i == 0 && threadCount > 1);
     969                WMSGrabber grabber = getGrabber(i == 0 && threadCount > 1);
    967970                grabbers.add(grabber);
    968971                Thread t = new Thread(grabber, "WMS " + getName() + " " + i);
     
    10051008    }
    10061009
    1007     protected Grabber getGrabber(boolean localOnly) {
     1010    protected WMSGrabber getGrabber(boolean localOnly) {
    10081011        if (getInfo().getImageryType() == ImageryType.HTML)
    10091012            return new HTMLGrabber(Main.map.mapView, this, localOnly);
Note: See TracChangeset for help on using the changeset viewer.