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.
