Ticket #11312: imagerycache_jcs_fix.patch
| File imagerycache_jcs_fix.patch, 4.4 KB (added by , 11 years ago) |
|---|
-
plugins/imagerycache/src/org/openstreetmap/josm/plugins/imagerycache/ImageryCachePlugin.java
1 1 package org.openstreetmap.josm.plugins.imagerycache; 2 2 3 3 import java.io.File; 4 import java.util.Map; 5 4 6 import org.openstreetmap.gui.jmapviewer.OsmTileLoader; 7 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader; 5 8 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener; 6 9 import org.openstreetmap.josm.gui.layer.TMSLayer; 7 10 import org.openstreetmap.josm.plugins.Plugin; … … 27 30 } 28 31 return null; 29 32 } 33 34 @Override 35 public TileLoader makeTileLoader(TileLoaderListener listener, 36 Map<String, String> headers) { 37 return makeTileLoader(listener); 38 } 30 39 }; 31 40 32 41 public ImageryCachePlugin(PluginInformation info) { -
plugins/imagerycache/src/org/openstreetmap/josm/plugins/imagerycache/OsmDBTilesLoader.java
15 15 import org.openstreetmap.gui.jmapviewer.OsmTileLoader; 16 16 import org.openstreetmap.gui.jmapviewer.Tile; 17 17 import org.openstreetmap.gui.jmapviewer.interfaces.CachedTileLoader; 18 import org.openstreetmap.gui.jmapviewer.interfaces.TileClearController;19 18 import org.openstreetmap.gui.jmapviewer.interfaces.TileJob; 20 19 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener; 21 20 import org.openstreetmap.gui.jmapviewer.interfaces.TileSource; … … 40 39 protected long maxCacheFileAge = FILE_AGE_ONE_WEEK; 41 40 protected long recheckAfter = FILE_AGE_ONE_DAY; 42 41 43 44 42 public OsmDBTilesLoader(TileLoaderListener smap, File cacheFolder) { 45 43 super(smap); 46 44 dao = TileDAOMapDB.getInstance(); … … 54 52 55 53 @Override 56 54 public void clearCache(TileSource source) { 57 clearCache(source, null);55 dao.cleanStorage(source.getName()); 58 56 } 59 57 60 @Override61 public void clearCache(TileSource source, TileClearController controller) {62 dao.cleanStorage(source.getName());63 }64 65 58 protected class DatabaseLoadJob implements TileJob { 66 59 67 60 private final Tile tile; … … 94 87 return; 95 88 tile.initLoading(); 96 89 } 97 if (loadTileFromFile()) { 98 return; 99 } 100 if (dbTile != null) { 101 TileJob job = new TileJob() { 102 @Override public void run() { 103 loadOrUpdateTileFromServer(); 104 } 105 @Override public Tile getTile() { 106 return tile; 107 } 108 }; 109 JobDispatcher.getInstance().addJob(job); 110 } else { 111 loadOrUpdateTileFromServer(); 112 } 90 91 TileJob job = new TileJob() { 92 @Override public void run() { 93 if (loadTileFromFile()) { 94 return; 95 } 96 97 loadOrUpdateTileFromServer(); 98 } 99 @Override public Tile getTile() { 100 return tile; 101 } 102 @Override 103 public void submit() { 104 run(); 105 106 } 107 }; 108 JobDispatcher.getInstance().addJob(job); 113 109 } 114 110 115 111 /** … … 164 160 } catch (Error e) { // this is bad, bat MapDB throws it 165 161 Main.error("Serious database error: Can not load tile from database: "+sourceName+":"+id); 166 162 Main.error(e); 167 dbTile = null; fileAge = 0; return false; 163 dbTile = null; 164 fileAge = 0; 165 return false; 168 166 } 169 167 } 170 168 … … 340 338 tile.putValue(k, m.get(k)); 341 339 } 342 340 } 341 342 @Override 343 public void submit() { 344 run(); 345 346 } 343 347 } 344 348 }
