Opened 10 years ago
Closed 10 years ago
#11724 closed defect (irreproducible)
InvalidClassException in IndexedDiskCache
| Reported by: | naoliv | Owned by: | naoliv |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Core imagery | Version: | |
| Keywords: | Cc: | wiktorn |
Description
Clicked to load one IBGE layer and saw this:
[ERROR] IndexedDiskCache - Region [TMS] Problem loading keys for file TMS <java.io.InvalidClassException: org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskElementDescriptor; local class incompatible: stream classdesc serialVersionUID = 7685317388573182052, local class serialVersionUID = -3029163572847659450>java.io.InvalidClassException: org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskElementDescriptor; local class incompatible: stream classdesc serialVersionUID = 7685317388573182052, local class serialVersionUID = -3029163572847659450 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at java.util.HashMap.readObject(HashMap.java:1180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at org.apache.commons.jcs.utils.serialization.StandardSerializer.deSerialize(StandardSerializer.java:83) at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDisk.readObject(IndexedDisk.java:118) at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.loadKeys(IndexedDiskCache.java:332) at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.initializeStoreFromPersistedData(IndexedDiskCache.java:285) at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.initializeKeysAndData(IndexedDiskCache.java:249) at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.<init>(IndexedDiskCache.java:182) at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.<init>(IndexedDiskCache.java:154) at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory.createCache(IndexedDiskCacheFactory.java:60) at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory.createCache(IndexedDiskCacheFactory.java:33) at org.openstreetmap.josm.data.cache.JCSCacheManager.getCacheInner(JCSCacheManager.java:162) at org.openstreetmap.josm.data.cache.JCSCacheManager.getCache(JCSCacheManager.java:149) at org.openstreetmap.josm.gui.layer.AbstractCachedTileSourceLayer.getCache(AbstractCachedTileSourceLayer.java:90) at org.openstreetmap.josm.gui.layer.AbstractCachedTileSourceLayer.<init>(AbstractCachedTileSourceLayer.java:66) at org.openstreetmap.josm.gui.layer.TMSLayer.<init>(TMSLayer.java:50) at org.openstreetmap.josm.gui.layer.ImageryLayer.create(ImageryLayer.java:163) at org.openstreetmap.josm.actions.AddImageryLayerAction.actionPerformed(AddImageryLayerAction.java:84) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.Component.processMouseEvent(Component.java:6516) at javax.swing.JComponent.processMouseEvent(JComponent.java:3312) at java.awt.Component.processEvent(Component.java:6281) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4872) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747) at java.awt.EventQueue.access$300(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:706) at java.awt.EventQueue$3.run(EventQueue.java:704) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:720) at java.awt.EventQueue$4.run(EventQueue.java:718) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:717) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
JOSM
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2015-07-27 01:32:05 Last Changed Author: wiktorn Revision: 8621 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Relative URL: ^/trunk URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2015-07-27 00:01:30 +0200 (Mon, 27 Jul 2015) Last Changed Rev: 8621 Identification: JOSM/1.5 (8621 pt_BR) Linux Debian GNU/Linux unstable (sid) Memory Usage: 247 MB / 4029 MB (149 MB allocated, but free) Java version: 1.7.0_79, Oracle Corporation, OpenJDK 64-Bit Server VM Java package: openjdk-7-jre:amd64-7u79-2.5.5-1 VM arguments: [-Dawt.useSystemAAFontSettings=on] Plugins: - AddrInterpolation (31241) - Create_grid_of_ways (31241) - FastDraw (31265) - FixAddresses (31241) - OpeningHoursEditor (31241) - PicLayer (31241) - SimplifyArea (31241) - buildings_tools (31361) - download_along (31241) - editgpx (31241) - geotools (31126) - graphview (31241) - jts (31126) - measurement (31289) - merge-overlap (31241) - opendata (31241) - pdfimport (31241) - poly (31241) - reverter (31241) - tagging-preset-tester (31241) - todo (29154) - turnrestrictions (31241) - undelete (31241) - utilsplugin2 (31241)
Attachments (0)
Change History (5)
comment:1 by , 10 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → needinfo |
comment:2 by , 10 years ago
Doesn't seem to be rowhammer nor a disk/filesystem issue.
Could it be caused by JOSM getting closed unproperly or some kind of issue when upgrading from an older version?
comment:3 by , 10 years ago
Upgrading from an older version should not result in such error.
Closing forcibly could result in such error, but if this was a bit-flip, that changed the value from positive to negative, then it is of low probability, that this error was due to forcibly closing. If this was random junk, then yes - closing forcibly could result in such error.
comment:4 by , 10 years ago
Maybe some kind of overflow making the value negative?
But anyway, since it's not a reproducible problem I guess we can close it.
comment:5 by , 10 years ago
| Resolution: | → irreproducible |
|---|---|
| Status: | needinfo → closed |
Then this would be then some Java bug. I'm closing this then.



Do you have any way to reproduce this error? There was no changes to IndexElementDescriptor class, so you couldn't have older version of the class. So I suspected disk or RAM corruption.
When I tried converting both values in Windows Calculator to binary form, I've got the same value. When I used Java Long.toBinaryString(), I got a bit different values. I do not know how longs are stored in memory in Java, nor how they are serialized, but disk or RAM corruption might be the case.
It might be rowhammer:
https://github.com/google/rowhammer-test
Or silent disk corruption.