Opened 11 years ago

Closed 6 years ago

#8560 closed defect (wontfix)

ImageryCache plugin can easily be corrupted

Reported by: rickmastfan67 Owned by: akks
Priority: normal Milestone:
Component: Plugin imagerycache Version: latest
Keywords: Cc:


I've been trying out the new ImageryCache plugin since it was made available to download and I've been liking it so far. However, I've found a way that can break the plugin, though it's something that normally wouldn't happen.

Steps to reproduce:

  1. Be editing in JOSM with an imagery background (was using Bing) and have your power go out all of a sudden.
  2. Once the power comes back online, restart your computer and load up JOSM once it's fully booted.
  3. Open the file that you were working on and zoom in on a area where you were editing.
  4. Turn back on your imagery source (Bing for me).
  5. Watch the ImageryCache plugin crash hard.

Only way to fix this is to manually delete the "Bing" imagery cache file. Then everything worked again and Bing imagery was shown in JOSM.

Repository Root:
Build-Date: 2013-03-31 01:34:01
Last Changed Author: akks
Revision: 5815
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last Changed Date: 2013-03-30 20:21:20 +0100 (Sat, 30 Mar 2013)
Last Changed Rev: 5815

Identification: JOSM/1.5 (5815 en)
Memory Usage: 197 MB / 2730 MB (101 MB allocated, but free)
Java version: 1.7.0_15, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Operating system: Windows 7
Dataset consistency test: No problems found

Plugin: ImageryCache (29368)
Plugin: OpeningHoursEditor (29210)
Plugin: buildings_tools (29210)
Plugin: mapdust (29210)
Plugin: measurement (29344)
Plugin: mirrored_download (29210)
Plugin: openstreetbugs (29373)
Plugin: osmarender (29210)
Plugin: reverter (29359)
Plugin: turnrestrictions (29210)
Plugin: undelete (29210)
Plugin: utilsplugin2 (29392)

java.lang.InternalError: Data were not fully read.
	at org.mapdb.StorageDirect.recordGet2(
	at org.mapdb.StorageDirect.get(
	at org.mapdb.EngineWrapper.get(
	at org.mapdb.AsyncWriteEngine.get(
	at org.mapdb.EngineWrapper.get(
	at org.mapdb.CacheHashTable.get(
	at org.mapdb.DB.<init>(
	at org.mapdb.DBMaker.make(
	at org.openstreetmap.josm.plugins.imagerycache.OsmDBTilesLoader$TileDAOMapDB.getDB(
	at org.openstreetmap.josm.plugins.imagerycache.OsmDBTilesLoader$TileDAOMapDB.getStorage(
	at org.openstreetmap.josm.plugins.imagerycache.OsmDBTilesLoader$TileDAOMapDB.getById(
	at org.openstreetmap.josm.plugins.imagerycache.OsmDBTilesLoader$DatabaseLoadJob.loadTileFromFile(
	at org.openstreetmap.josm.plugins.imagerycache.OsmDBTilesLoader$
	at org.openstreetmap.gui.jmapviewer.JobDispatcher$JobThread.executeJobs(
	at org.openstreetmap.gui.jmapviewer.JobDispatcher$

NOTE: I have archived the malfunctioning imagery cache file if you need it for testing (for now), but it's well over 120MB.

Attachments (0)

Change History (4)

comment:1 by akks, 11 years ago

Yes, the plugin is quite unstable now. It also does not work correctly when 2 instances of JOSM are opened and sometimes shows errors due to cleaning of /tmp on linux.

MapDB is tricky...

comment:2 by skyper, 11 years ago

Component: PluginPlugin imagerycache
Owner: changed from team to akks

comment:3 by akks, 11 years ago

New version of plugin released, should be more stable (though I am not sure the base will survive power-off)
Fixed in [osm29484], I hope.
#8560 leaves open for now.


  • Updated MapDB from GitHub, version 06.04, occasional deadlock on start fixed
  • Java 1.6 compatibilty due to update of MapDB
  • Metadata is loaded from database correctly
  • Code refactoring, iterfaces introduces
  • Stop background database operations on closing (much less errors on shutdown), needs MapDB one-line hack
  • Multiple JOSM instances now store JOSM in multiple files (Mapnik, Mapnik_1, Mapnik_2, etc.) , Mapnik.lock file indicates that the file is currently used
  • DAO object is a singleton now, one file per JVM will be created
  • Cache directory is created if needed

comment:4 by Don-vip, 6 years ago

Resolution: wontfix
Status: newclosed

imagerycache plugin has been deprecated in r8772 + [o31575].

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain akks.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.