| Summary: | EMF model packages are not registered within ServerCDOSession | ||
|---|---|---|---|
| Product: | [Modeling] EMF | Reporter: | Mantas <mantas.skripkauskas> |
| Component: | cdo.core | Assignee: | Eike Stepper <stepper> |
| Status: | CLOSED FIXED | QA Contact: | Eike Stepper <stepper> |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | 4.0 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
I could reproduce the exception. New stacktrace: org.eclipse.emf.cdo.util.LegacyModeNotEnabledException: Legacy mode is not enabled at org.eclipse.emf.spi.cdo.FSMUtil.adapt(FSMUtil.java:92) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.newInstance(AbstractCDOView.java:639) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:805) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:697) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:649) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1) at org.eclipse.emf.cdo.internal.server.bundle.CDOCommandProvider._cdo(CDOCommandProvider.java:114) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:155) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:155) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(FrameworkConsole.java:140) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:104) at java.lang.Thread.run(Thread.java:595) If I deploy a model that has been generated for CDO (i.e. a native model) to the server, this exception does not occur! Check that your model is generated correctly and that it is deployed to the server. But if the model is dynamic on the server (generated model not deployed) than in fact the above exception was thrown. I fixed this. I also added a new CDOServer.openView() method and some more OSGi console commands. Committed to HEAD Available in R20110608-1407 |
Build Identifier: 20100917-0705 While trying out CDO v.4.0, snippet of code failed to find CDOObject ( getView() returns valid IView instance ): CDOView cdoView = CDOServerUtil.openView(getView(), false); CDOObject cdoObj = cdoView.getObject((CDOID) object); with the exception: [ERROR] Legacy mode is not enabled org.eclipse.emf.cdo.util.LegacyModeNotEnabledException: Legacy mode is not enabled at org.eclipse.emf.spi.cdo.FSMUtil.adapt(FSMUtil.java:131) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.newInstance(AbstractCDOView.java:640) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:830) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:701) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:650) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1) at com.nomagic.ci.server.query.QueryContextWrapper.addResult(QueryContextWrapper.java:54) at org.eclipse.emf.cdo.server.internal.db.SQLQueryHandler.executeQuery(SQLQueryHandler.java:194) unless I explicitly register EPackage of the returned CDOObject: CDOUtil.prepareDynamicEPackage(eClass.getEPackage()); **** System.out.println(eClass.getEPackage().getClass().getName()); System.out.println(eClass.getEPackage()); produces: org.eclipse.emf.ecore.impl.EPackageImpl org.eclipse.emf.ecore.impl.EPackageImpl@4134e0 (name: project) (nsURI:http://some_uri/project/1.0, nsPrefix: project) Reproducible: Always