Error when loading/unloading/creating/removing user workspace
Configuration info:
Rational Team Concert v4.0.0.1
Eclipse client, running on Windows 7 x64
We are seeing repeated "negative positon" error messages in Eclipse w/RTC plug when performing operations on work spaces.
This appears whenever one of our users attempts to perform any work space operation (ie: Load component, unload component, remove work space, create work space):
The following errors are in the client log:
!ENTRY org.eclipse.core.jobs 4 2 2012-10-18 15:24:04.475
!MESSAGE An internal error occurred during: "Saving inverse metadata".
!STACK 0
java.lang.IllegalArgumentException: Negative position
at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:600)
at com.ibm.team.internal.repository.rcp.util.FileChannelUtil.readFully(FileChannelUtil.java:69)
at com.ibm.team.internal.repository.rcp.dbhm.BTree.readFully(BTree.java:304)
at com.ibm.team.internal.repository.rcp.dbhm.BTree$BTreeNode.readNode(BTree.java:393)
at com.ibm.team.internal.repository.rcp.dbhm.BTree$BTreeNode.<init>(BTree.java:330)
at com.ibm.team.internal.repository.rcp.dbhm.BTree.getNode(BTree.java:259)
at com.ibm.team.internal.repository.rcp.dbhm.BTree.insert(BTree.java:208)
at com.ibm.team.internal.repository.rcp.dbhm.BTreeHeap.addToFree(BTreeHeap.java:266)
at com.ibm.team.internal.repository.rcp.dbhm.BTreeHeap.doFree(BTreeHeap.java:379)
at com.ibm.team.internal.repository.rcp.dbhm.BTreeHeap.free(BTreeHeap.java:283)
at com.ibm.team.filesystem.client.internal.PersistentHeapManager$AutoClosingPersistentFileHeap.free(PersistentHeapManager.java:128)
at com.ibm.team.internal.repository.rcp.dbhm.DiskBackedHashMap.freeObject(DiskBackedHashMap.java:407)
at com.ibm.team.internal.repository.rcp.dbhm.DiskBackedHashMap$Entry.setValue(DiskBackedHashMap.java:972)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap$CachedEntry.flush(CachedDiskBackedHashMap.java:391)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap.flushEntry(CachedDiskBackedHashMap.java:197)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap.flushCache(CachedDiskBackedHashMap.java:165)
at com.ibm.team.internal.repository.rcp.dbhm.PersistentDiskBackedHashMap.persist(PersistentDiskBackedHashMap.java:170)
at com.ibm.team.filesystem.client.internal.AsyncSavePDBHMJob.run(AsyncSavePDBHMJob.java:65)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Additionally, we can also see this error from time to time:
!ENTRY com.ibm.team.filesystem.client 4 0 2012-10-18 15:24:42.202
!MESSAGE Error closing metadata store
!STACK 0
com.ibm.team.filesystem.client.FileSystemException: Error closing metadata store
at com.ibm.team.filesystem.client.internal.core.SharingMetadata2.close(SharingMetadata2.java:2437)
at com.ibm.team.filesystem.client.internal.operations.RebuildCFAOperation.execute(RebuildCFAOperation.java:288)
at com.ibm.team.filesystem.client.internal.operations.FileSystemOperation.run(FileSystemOperation.java:89)
at com.ibm.team.internal.filesystem.ui.corruption.RebuildCFAJob.repair(RebuildCFAJob.java:368)
at com.ibm.team.internal.filesystem.ui.corruption.RebuildCFAJob.doRun(RebuildCFAJob.java:269)
at com.ibm.team.internal.filesystem.ui.corruption.RebuildCFAJob.run(RebuildCFAJob.java:208)
at com.ibm.team.internal.filesystem.ui.corruption.RebuildCFAJob$5$1.run(RebuildCFAJob.java:194)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: com.ibm.team.internal.repository.rcp.dbhm.DBHMException: java.lang.IllegalStateException
at com.ibm.team.internal.repository.rcp.dbhm.PersistentDiskBackedHashMap.close(PersistentDiskBackedHashMap.java:153)
at com.ibm.team.filesystem.client.internal.Store.close(Store.java:59)
at com.ibm.team.filesystem.client.internal.core.SharingMetadata2.close(SharingMetadata2.java:2410)
... 7 more
Caused by: java.lang.IllegalStateException
at com.ibm.team.internal.repository.rcp.dbhm.BTreeHeap.doFree(BTreeHeap.java:312)
at com.ibm.team.internal.repository.rcp.dbhm.BTreeHeap.free(BTreeHeap.java:283)
at com.ibm.team.filesystem.client.internal.PersistentHeapManager$AutoClosingPersistentFileHeap.free(PersistentHeapManager.java:128)
at com.ibm.team.internal.repository.rcp.dbhm.DiskBackedHashMap.freeObject(DiskBackedHashMap.java:407)
at com.ibm.team.internal.repository.rcp.dbhm.DiskBackedHashMap$Entry.setValue(DiskBackedHashMap.java:972)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap$CachedEntry.flush(CachedDiskBackedHashMap.java:391)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap.flushEntry(CachedDiskBackedHashMap.java:197)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap.flushCache(CachedDiskBackedHashMap.java:165)
at com.ibm.team.internal.repository.rcp.dbhm.PersistentDiskBackedHashMap.persist(PersistentDiskBackedHashMap.java:170)
at com.ibm.team.internal.repository.rcp.dbhm.PersistentDiskBackedHashMap.close(PersistentDiskBackedHashMap.java:144)
... 9 more
And attempting to repair metadata results in:
!ENTRY com.ibm.team.filesystem.ide.ui 4 0 2012-10-18 15:24:42.265
!MESSAGE Unexpected error during repair.
!STACK 0
com.ibm.team.filesystem.client.FileSystemException: Error closing metadata store
at com.ibm.team.filesystem.client.internal.core.SharingMetadata2.close(SharingMetadata2.java:2437)
at com.ibm.team.filesystem.client.internal.operations.RebuildCFAOperation.execute(RebuildCFAOperation.java:288)
at com.ibm.team.filesystem.client.internal.operations.FileSystemOperation.run(FileSystemOperation.java:89)
at com.ibm.team.internal.filesystem.ui.corruption.RebuildCFAJob.repair(RebuildCFAJob.java:368)
at com.ibm.team.internal.filesystem.ui.corruption.RebuildCFAJob.doRun(RebuildCFAJob.java:269)
at com.ibm.team.internal.filesystem.ui.corruption.RebuildCFAJob.run(RebuildCFAJob.java:208)
at com.ibm.team.internal.filesystem.ui.corruption.RebuildCFAJob$5$1.run(RebuildCFAJob.java:194)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: com.ibm.team.internal.repository.rcp.dbhm.DBHMException: java.lang.IllegalStateException
at com.ibm.team.internal.repository.rcp.dbhm.PersistentDiskBackedHashMap.close(PersistentDiskBackedHashMap.java:153)
at com.ibm.team.filesystem.client.internal.Store.close(Store.java:59)
at com.ibm.team.filesystem.client.internal.core.SharingMetadata2.close(SharingMetadata2.java:2410)
... 7 more
Caused by: java.lang.IllegalStateException
at com.ibm.team.internal.repository.rcp.dbhm.BTreeHeap.doFree(BTreeHeap.java:312)
at com.ibm.team.internal.repository.rcp.dbhm.BTreeHeap.free(BTreeHeap.java:283)
at com.ibm.team.filesystem.client.internal.PersistentHeapManager$AutoClosingPersistentFileHeap.free(PersistentHeapManager.java:128)
at com.ibm.team.internal.repository.rcp.dbhm.DiskBackedHashMap.freeObject(DiskBackedHashMap.java:407)
at com.ibm.team.internal.repository.rcp.dbhm.DiskBackedHashMap$Entry.setValue(DiskBackedHashMap.java:972)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap$CachedEntry.flush(CachedDiskBackedHashMap.java:391)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap.flushEntry(CachedDiskBackedHashMap.java:197)
at com.ibm.team.internal.repository.rcp.dbhm.CachedDiskBackedHashMap.flushCache(CachedDiskBackedHashMap.java:165)
at com.ibm.team.internal.repository.rcp.dbhm.PersistentDiskBackedHashMap.persist(PersistentDiskBackedHashMap.java:170)
at com.ibm.team.internal.repository.rcp.dbhm.PersistentDiskBackedHashMap.close(PersistentDiskBackedHashMap.java:144)
... 9 more
Any suggestions? I can't find any articles related to "negative position" errors.
Accepted answer
I was working with a client who was seeing this exception using an Oracle 1.6 JRE. As a test we started the jbe with a -vm arg pointing to the JRE that ships with RTC and this exception went away. The RTC version in use was 3011.
2 other answers
The error seems to suggest some kind of persistent data corruption problem on the filesystem where the sandbox is being stored. Try again with another filesystem or disk drive and see if the problem persists.
I too had this problem and like Josh had fixed it by changing the JRE used by Eclipse. This also allowed the repair to work without having to re create the workspace from scratch. I had the problem with RTC 3.1.2 on Eclipse 3.7.1, Eclipse Kepler and Liferay Developer Studio (based on 3.7.2). I was using Oracle JDK jrockit-jdk1.6.0_26-R28.1.4-4.0.1 and the problem went away when I switched to the standard JDK jdk160_14_R27.6.5-32.
Comments
Karl Weinert
JAZZ DEVELOPER Oct 20 '12, 8:33 a.m.I found a few hits on google for java.lang.IllegalArgumentException: Negative position and they all seemed related to the size of the data. How big are your workspaces? What version of eclipse are you using? Are there any java cores? You can look for these in the same directory as the eclipse executable and sometimes in c:\windows or c:\windows\system32
Joseph Nelson
Oct 30 '12, 6:07 p.m.Thanks for the reply Karl. there is nothing exceptional about the RTC workspace size, it is actually quite small, totally 20mb across a couple thousand files.