Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 340139 - CDO Offline Workspace doesn't work with DBStore
Summary: CDO Offline Workspace doesn't work with DBStore
Status: CLOSED WONTFIX
Alias: None
Product: EMF
Classification: Modeling
Component: cdo.core (show other bugs)
Version: 4.0   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-16 07:30 EDT by Szabolcs Bardy CLA
Modified: 2012-09-21 06:50 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Szabolcs Bardy CLA 2011-03-16 07:30:26 EDT
Build Identifier: 

The new CDO Offline Workspace feature works well when MEMStore is used, but fails when using a DBStore. When the remote repository is changed and trying to update the local repository the following exception is thrown:

org.eclipse.net4j.signal.RemoteException: java.lang.IllegalStateException: No type found for OID4
	at org.eclipse.net4j.signal.RequestWithConfirmation.setRemoteException(RequestWithConfirmation.java:128)
	at org.eclipse.net4j.signal.SignalProtocol.handleRemoteException(SignalProtocol.java:423)
	at org.eclipse.net4j.signal.RemoteExceptionIndication.indicating(RemoteExceptionIndication.java:63)
	at org.eclipse.net4j.signal.Indication.doExtendedInput(Indication.java:55)
	at org.eclipse.net4j.signal.Signal.doInput(Signal.java:326)
	at org.eclipse.net4j.signal.Indication.execute(Indication.java:49)
	at org.eclipse.net4j.signal.Signal.runSync(Signal.java:251)
	at org.eclipse.net4j.signal.Signal.run(Signal.java:147)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: No type found for OID4
	at org.eclipse.emf.cdo.server.internal.db.DBStoreAccessor.getObjectType(DBStoreAccessor.java:194)
	at org.eclipse.emf.cdo.server.internal.db.DBStoreAccessor.readRevision(DBStoreAccessor.java:207)
	at org.eclipse.emf.cdo.internal.server.Repository.loadRevisions(Repository.java:441)
	at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.loadRevisions(CDORevisionManagerImpl.java:352)
	at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevisions(CDORevisionManagerImpl.java:263)
	at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevision(CDORevisionManagerImpl.java:246)
	at org.eclipse.emf.cdo.spi.common.revision.RevisionInfo.execute(RevisionInfo.java:132)
	at org.eclipse.emf.cdo.server.internal.net4j.protocol.LoadRevisionsIndication.responding(LoadRevisionsIndication.java:169)
	at org.eclipse.emf.cdo.server.internal.net4j.protocol.CDOServerIndication.responding(CDOServerIndication.java:133)
	at org.eclipse.net4j.signal.IndicationWithResponse.doExtendedOutput(IndicationWithResponse.java:96)
	at org.eclipse.net4j.signal.Signal.doOutput(Signal.java:296)
	at org.eclipse.net4j.signal.IndicationWithResponse.execute(IndicationWithResponse.java:65)
	at org.eclipse.emf.cdo.server.internal.net4j.protocol.CDOReadIndication.execute(CDOReadIndication.java:36)
	... 5 more


When trying to commit a change to the remote repository the following exception is thrown:

java.lang.IllegalStateException: begin() has not been called
	at org.eclipse.net4j.util.om.monitor.AbstractMonitor.checkBegun(AbstractMonitor.java:143)
	at org.eclipse.net4j.util.om.monitor.AbstractMonitor.fork(AbstractMonitor.java:65)
	at org.eclipse.net4j.util.om.monitor.AbstractMonitor.fork(AbstractMonitor.java:71)
	at org.eclipse.emf.cdo.server.internal.db.DBStoreAccessor.rawDelete(DBStoreAccessor.java:1244)
	at org.eclipse.emf.cdo.internal.workspace.CDOWorkspaceImpl.adjustLocally(CDOWorkspaceImpl.java:412)
	at org.eclipse.emf.cdo.internal.workspace.CDOWorkspaceImpl.checkin(CDOWorkspaceImpl.java:358)


Reproducible: Always
Comment 1 Eike Stepper CLA 2011-04-12 09:44:43 EDT
Just a note: I'd like to implement a new CDOID strategy for client-side assigned UUIDs first...
Comment 2 Eike Stepper CLA 2011-06-23 04:27:15 EDT
Moving all open problem reports to 4.0
Comment 3 Eike Stepper CLA 2011-08-05 12:17:35 EDT
This problem is most probably caused by so called "local IDs" that are needed with server-assigned IDs. In 4.1 client-assigned UUIDs are now supported and recommended in all replication or offline scenarios. Please see bug 340139.

Please reopen this bug if it turns out that UUIDs do not solve the problem.
Comment 4 Eike Stepper CLA 2012-09-21 06:50:27 EDT
Closing.