[hibernate-dev] Changing method signatures in micro releases

Gail Badner gbadner at redhat.com
Tue May 27 14:04:15 EDT 2014


The original bug could have been fixed without changing the SPI, since it only affected OneToManyPersister. Since there was no reason to change the SPI in the first place, I opted to deprecate the new method and keep the old.

Thanks for checking it!
Gail

----- Original Message -----
> From: "Gunnar Morling" <gunnar at hibernate.org>
> To: "Gail Badner" <gbadner at redhat.com>
> Cc: "Gunnar Morling" <gunnar at hibernate.org>, hibernate-dev at lists.jboss.org, "Steve Ebersole" <steve at hibernate.org>
> Sent: Monday, May 26, 2014 1:07:10 AM
> Subject: Re: [hibernate-dev] Changing method signatures in micro releases
> 
> 2014-05-24 0:08 GMT+02:00 Gail Badner <gbadner at redhat.com>:
> 
> > My changes for HHH-9204 and HHH-9205 need to be pushed to 4.2, 4.3, and
> > master. This needs to happen by early next week so it can be released in
> > 4.2.13.Final on Wednesday.
> >
> > I want to make sure that my change fixes the regression introduced into
> > 4.3.5 and 4.2.12, without breaking the fix that Gunnar made for OGM.
> >
> > Gunnar, can you check my pull request at
> > https://github.com/hibernate/hibernate-orm/pull/747 and make sure it
> > doesn't break something for you?
> >
> 
> Yes, that works from OGM's perspective.
> 
> I'm only wondering about the deprecation; Are you intentionally deprecating
> the new variant of the method (with the additional "nextIndex" param)? This
> had been established as part of the original bug fix, so I'd have expected
> that the old variant of the method (without that parameter) would be
> deprecated instead. Or is the original fix not required anymore?
> 
> Thanks for your help,
> 
> --Gunnar
> 
> 
> > Thanks!
> > Gail
> >
> > ----- Original Message -----
> > > From: "Gail Badner" <gbadner at redhat.com>
> > > To: "Steve Ebersole" <steve at hibernate.org>
> > > Cc: hibernate-dev at lists.jboss.org
> > > Sent: Monday, May 19, 2014 3:16:56 PM
> > > Subject: Re: [hibernate-dev] Changing method signatures in micro releases
> > >
> > > It was a simple matter to restore the old the method and provide a
> > default
> > > implementation of the method added by HHH-9078.
> > >
> > > I've create the following issues:
> > >
> > > For master, 4.3, and 4.2 (because HHH-9078 was fixed on master, 4.3, and
> > > 4.2):
> > > HHH-9204: Restore
> > > AbstractCollectionPersister.doProcessQueuedOps(PersistentCollection,
> > > Serializable, SessionImplementor)
> > > HHH-9205: Deprecate
> > > AbstractCollectionPersister.doProcessQueuedOps(PersistentCollection,
> > > Serializable, int, SessionImplementor)
> > >
> > > For master only:
> > > HHH-9206: Remove
> > > AbstractCollectionPersister.doProcessQueuedOps(PersistentCollection,
> > > Serializable, int, SessionImplementor)
> > >
> > > Steve, I'm not 100% I did the right thing for HHH-9204 and HHH-9205, so
> > > please take a look at the pull request:
> > > https://github.com/hibernate/hibernate-orm/pull/747
> > >
> > > Thanks,
> > > Gail
> > >
> > > ----- Original Message -----
> > > > From: "Gail Badner" <gbadner at redhat.com>
> > > > To: "Gunnar Morling" <gunnar at hibernate.org>
> > > > Cc: hibernate-dev at lists.jboss.org
> > > > Sent: Monday, May 19, 2014 12:34:09 PM
> > > > Subject: Re: [hibernate-dev] Changing method signatures in micro
> > releases
> > > >
> > > > Hi Gunnar,
> > > >
> > > > Thanks for mentioning this. I believe that
> > > > org.hibernate.persister.collection
> > > > and org.hibernate.persister.entity are considered APIs, which should
> > > > definitely be backward-compatible for micro releases.
> > > >
> > > > I'm looking at some alternatives to mitigate that. My first thought is
> > that
> > > > the fix for HHH-9078 should have been made only to OneToManyPersister,
> > so
> > > > that AbstractCollectionPersister would not be affected. If this is
> > > > possible,
> > > > I will add the old method back and deprecate the new one that caused
> > you
> > > > trouble.
> > > >
> > > > I'll let you know what I find.
> > > >
> > > > Regards,
> > > > Gail
> > > >
> > > > ----- Original Message -----
> > > > > From: "Gunnar Morling" <gunnar at hibernate.org>
> > > > > To: hibernate-dev at lists.jboss.org
> > > > > Sent: Monday, May 19, 2014 12:28:38 AM
> > > > > Subject: [hibernate-dev] Changing method signatures in micro releases
> > > > >
> > > > > Hi,
> > > > >
> > > > > When updating Hibernate OGM to make use of ORM 4.3.5, I noticed a
> > changed
> > > > > method signature in AbstractCollectionPersister (abstract
> > > > > method doProcessQueuedOps() has a new parameter).
> > > > >
> > > > > This causes a compilation failure in OGM, as we naturally still
> > override
> > > > > the old signature. I can solve this particular case in a compatible
> > > > > manner
> > > > > by declaring both variants of the method in our sub-class (omitting
> > the
> > > > > @Override annotation), but I'm wondering how we should generally deal
> > > > > with
> > > > > this kind of issue.
> > > > >
> > > > > Are micro-releases considered strictly backwards-compatible, so that
> > e.g.
> > > > > all of ORM 4.3.x should be useable together with an integrator (such
> > as
> > > > > OGM) known to work with 4.3.0? This would have been my assumption
> > > > > originally.
> > > > >
> > > > > Are there any rules for what kind of changes are to be expected by
> > an ORM
> > > > > micro/minor/major update?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > --Gunnar
> > > > > _______________________________________________
> > > > > hibernate-dev mailing list
> > > > > hibernate-dev at lists.jboss.org
> > > > > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> > > > >
> > > > _______________________________________________
> > > > hibernate-dev mailing list
> > > > hibernate-dev at lists.jboss.org
> > > > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> > > >
> > > _______________________________________________
> > > hibernate-dev mailing list
> > > hibernate-dev at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> > >
> >
> 


More information about the hibernate-dev mailing list