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.
