Cool, I was just looking at the commit. Makes sense. Thanks Artem.

On Thu, Jul 10, 2014 at 6:33 AM, Artem Orobets <[email protected]> wrote:

> Hi Chris,
>
> The issue is fixed in the last snapshot
>
> Best regards,
> Artem Orobets
>
> * Orient Technologiesthe Company behind OrientDB*
>
>
> 2014-07-10 9:51 GMT+03:00 Artem Orobets <[email protected]>:
>
> Hi Chris,
>>
>> You are right, reusing of clusters for different classes are not
>> supported anymore.
>>
>> I've created an issue to fix that
>> https://github.com/orientechnologies/orientdb/issues/2558
>>
>> Best regards,
>> Artem Orobets
>>
>> * Orient Technologiesthe Company behind OrientDB*
>>
>>
>> 2014-07-09 23:22 GMT+03:00 Chris Wilper <[email protected]>:
>>
>> I just noticed this and thought it was odd behavior.
>>>
>>> This code:
>>>
>>> OClass oClass = oSchema.createClass("Test");
>>> System.out.println(oClass.isAbstract());
>>> System.out.println(oClass.getDefaultClusterId());
>>>
>>> ...yields this:
>>>
>>> false
>>> 9
>>>
>>> ...but this code:
>>>
>>> OClass oClass = oSchema.createClass("Test");
>>> oClass.setAbstract(false);
>>> System.out.println(oClass.isAbstract());
>>> System.out.println(oClass.getDefaultClusterId());
>>>
>>> ...yields this:
>>>
>>> false
>>> 3
>>>
>>> (9 is the new cluster id created for the class; 3 is the 'default'
>>> cluster id)
>>>
>>> Sure enough, here's the code:
>>>
>>> https://github.com/orientechnologies/orientdb/blob/2464bb45be6a0a2eba15b3bd5d350b17928e65ff/core/src/main/java/com/orientechnologies/orient/core/metadata/schema/OClassImpl.java#L757
>>>
>>> Is there a good reason for this? I'm not really sure what the
>>> *database's* default cluster is, but OClassImpl  seems to 1) assume the
>>> isAbstract value was previously true (which it wasn't in my case), and 2)
>>> think it's safe to set the default cluster to the default cluster of the
>>> database. Unfortunately, when I try to insert a record in the class after
>>> this point, I get a "Record saved into cluster default should be saved with
>>> class null but saved with class Test"
>>>
>>> Seems like setAbstract(false) should first check if abstract is already
>>> false, and be a no-op. But if it was previously abstract, shouldn't it also
>>> auto-create a cluster for it rather than switch it's default to the
>>> 'default' cluster?
>>>
>>> - Chris
>>>
>>> --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "OrientDB" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to