I am trying to track down a problem where CDOServerExporter throws
java.lang.IllegalArgumentException: Invalid type: java.lang.Object
at org.eclipse.emf.cdo.server.CDOServerExporter$XML.type(CDOServerExporter.java:718)
at org.eclipse.emf.cdo.server.CDOServerExporter$XML.exportFeature(CDOServerExporter.java:588)
...
It seems to be related to client-side storing (via eSet) a null value into EString attribute that has a non-empty default value. The eSet (via eDynamicSet and specifically InternalSettingDelegateSingleData.dynamicSet) appears to store EStructuralFeature.Internal.DynamicValueHolder.NIL instead of null for this case ("An object used to represent being set to nullĀ as opposed to having no value and hence being in the default state."), some flavor of this makes it to the CDO server side and CDOServerExporter appears to not recognize this as a special case.
Does this make sense or am I missing something?
[Testing on Kepler M7, but I think I saw this in the past as well]
Am 24.05.2013 03:21, schrieb Alex Mising name:
> I am trying to track down a problem where CDOServerExporter throws
> java.lang.IllegalArgumentException: Invalid type: java.lang.Object
> at org.eclipse.emf.cdo.server.CDOServerExporter$XML.type(CDOServerExporter.java:718)
> at org.eclipse.emf.cdo.server.CDOServerExporter$XML.exportFeature(CDOServerExporter.java:588)
> ..
>
> It seems to be related to client-side storing (via eSet) a null value into EString attribute that has a non-empty
> default value. The eSet (via eDynamicSet and specifically InternalSettingDelegateSingleData.dynamicSet) appears to
> store EStructuralFeature.Internal.DynamicValueHolder.NIL instead of null for this case ("An object used to represent
> being set to null as opposed to having no value and hence being in the default state."), some flavor of this makes it
> to the CDO server side and CDOServerExporter appears to not recognize this as a special case.
>
> Does this make sense or am I missing something?
It doesn't sound unreasonable. Please submit a bugzilla and attach the *full* (CDO-related) stack trace so that I can
look at it more deeply.