Layers: catch ArrayIndexOutOfBoundsException in updateLayers, #596
This commit is contained in:
@@ -29,6 +29,8 @@ import org.oscim.layers.tile.ZoomLimiter;
|
|||||||
import org.oscim.map.Map.InputListener;
|
import org.oscim.map.Map.InputListener;
|
||||||
import org.oscim.map.Map.UpdateListener;
|
import org.oscim.map.Map.UpdateListener;
|
||||||
import org.oscim.renderer.LayerRenderer;
|
import org.oscim.renderer.LayerRenderer;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.AbstractList;
|
import java.util.AbstractList;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -38,6 +40,8 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||||||
|
|
||||||
public final class Layers extends AbstractList<Layer> {
|
public final class Layers extends AbstractList<Layer> {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(Layers.class);
|
||||||
|
|
||||||
private final Map mMap;
|
private final Map mMap;
|
||||||
private final Layer.EnableHandler mEnableHandler;
|
private final Layer.EnableHandler mEnableHandler;
|
||||||
|
|
||||||
@@ -248,6 +252,7 @@ public final class Layers extends AbstractList<Layer> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void updateLayers() {
|
private synchronized void updateLayers() {
|
||||||
|
try {
|
||||||
mLayers = new Layer[mLayerList.size()];
|
mLayers = new Layer[mLayerList.size()];
|
||||||
int numRenderLayers = 0;
|
int numRenderLayers = 0;
|
||||||
|
|
||||||
@@ -287,5 +292,8 @@ public final class Layers extends AbstractList<Layer> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mDirtyLayers = false;
|
mDirtyLayers = false;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user