I guess the confusion was that I never read anywhere that your solution
involved retrofitting your Timestamper class. I just read that as you
meant code should move to use this new SlewClock instead of
Timestamper. The hibernate-ehcache integration uses
net.sf.ehcache.util.Timestamper, so if y'all changed that internally to
use your new SlewClock then that usage is fine. The only usage of the
org.hibernate.cache.internal.Timestamper class (whose internals you
contributed) is in the test suite code, aka, no production code. Yes,
we should move it to the hibernate-testing package to make that
completely apparent.
On Fri 27 Apr 2012 09:21:26 AM CDT, Alex Snaps wrote:
I'm confused... The hibernate-ehcache module was using
net.sf.ehcache.util.Timestamper (from 2.4.3) that internally uses the
SlewClock ...
The hibernate packaged one suffer from the initial issue. Is there
plans to change this ?
On Fri, Apr 27, 2012 at 10:11 AM, Steve Ebersole<steve(a)hibernate.org> wrote:
> Well but we still have the issue of the hibernate-ehcache integration using
> net.sf.ehcache.util.Timestamper. And we cannot use your SlewClock there
> because it is package-protected.
>
>
>
> On Fri 27 Apr 2012 09:05:56 AM CDT, Alex Snaps wrote:
>>
>> Right! I see these are all in the hibernate-testing code. I misread
>> that sorry! ... and w/o caching, NoCachingRegionFactory is used.
>> Well, I guess the fact that it might loop for "longer" would be less
>> of an issue then. I'd maybe just evaluate moving that class into the
>> hibernate-testing as well maybe, avoiding someone actually uses for
>> "production" code.
>>
>> On Fri, Apr 27, 2012 at 9:52 AM, Steve Ebersole<steve(a)hibernate.org>
>> wrote:
>>>
>>> No, that is not how we "timestamp every Session".
>>>
>>> Ok, its there but...
>>>
>>> final class SlewClock {...
>>>
>>> package-protected
>>>
>>>
>>>
>>> On Fri 27 Apr 2012 08:49:07 AM CDT, Alex Snaps wrote:
>>>>
>>>>
>>>> Steve,
>>>> I do see it in the repo on the 2.4.3 tagline :
>>>>
>>>>
>>>>
http://svn.terracotta.org/svn/ehcache/tags/ehcache-core-2.4.3/src/main/ja...
>>>> Also, correct me if I'm wrong, but I think the Timestamper code is
>>>> used to timestamp every Session, isn't it ? If so, it does impact
more
>>>> than just hibernate-ehcache...
>>>> I can wire it in and do a pull request. I just wasn't sure that's
what
>>>> you guys wanted ?
>>>> Alex
>>>>
>>>> On Fri, Apr 27, 2012 at 9:40 AM, Steve
Ebersole<steve(a)hibernate.org>
>>>> wrote:
>>>>>
>>>>>
>>>>> Well, to be specific I am not seeing it in 2.4.3 version of
>>>>> ehcache-core
>>>>> jar
>>>>> (which is jar where Timestamper was found)...
>>>>>
>>>>>
>>>>> On Fri 27 Apr 2012 08:37:53 AM CDT, Steve Ebersole wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Alex, the issue you mentioned says it was fixed for 2.4.3, but I
am
>>>>>> not seeing SlewClock in 2.4.3 jar.
>>>>>>
>>>>>> What version was SlewClock added in?
>>>>>>
>>>>>> On Fri 27 Apr 2012 08:36:33 AM CDT, Steve Ebersole wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Alex, the issue you mentioned says it was fixed for 2.4.3,
but I am
>>>>>>> not seeing SlewClock in 2.4.3 jar.
>>>>>>>
>>>>>>> What version was SlewClock added in?
>>>>>>>
>>>>>>> On Thu 26 Apr 2012 12:48:31 PM CDT, Steve Ebersole wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks for the heads up Alex.
>>>>>>>>
>>>>>>>>
https://hibernate.onjira.com/browse/HHH-7282
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu 26 Apr 2012 11:11:36 AM CDT, Alex Snaps wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hey,
>>>>>>>>> I wanted to draw your attention to "an
issue" we've hit with the
>>>>>>>>> nonblocking implementation of Timestamper, that you
guys use as
>>>>>>>>> well.
>>>>>>>>> Basically, if time goes backwards, calling next()
would loop until
>>>>>>>>> time is passed the last seen value (see
>>>>>>>>>
http://jira.terracotta.org/jira/browse/EHC-853)
>>>>>>>>> Technically, time shouldn't go back. Especially
the DST issue is
>>>>>>>>> none
>>>>>>>>> in my opinion. But NTP daemons that do set clock back
might be more
>>>>>>>>> common.
>>>>>>>>> As every session is timestamped, if I read
>>>>>>>>> SessionFactoryImpl.SessionBuilderImpl.openSession
correctly, this
>>>>>>>>> would be larger issue to you guys now as well. There
are obviously
>>>>>>>>> more people using Hibernate w/o Ehcache than with
it.
>>>>>>>>> Anyways, as a solution to that, Chris and I came up
with a
>>>>>>>>> non-blocking SlewClock implementation that would
simply, in case
>>>>>>>>> System.currentTimeMillis() returns a value "in
the past, slow time
>>>>>>>>> down until the wall clock has caught up:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
http://www.massapi.com/source/ehcache-2.4.3/src/net/sf/ehcache/util/SlewC...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Since Timestamper is again core to 2nd level cache
usage in
>>>>>>>>> Hibernate,
>>>>>>>>> it would make sense to this out of our code base and
have it in
>>>>>>>>> yours
>>>>>>>>> (as well, as we'd still use it in for the 3.x).
>>>>>>>>> Should I go ahead and create a jira, pull request,
... ? Cause,
>>>>>>>>> based
>>>>>>>>> on my experience, blaming it on crappy env.
hasn't really worked
>>>>>>>>> out
>>>>>>>>> for me ;-)
>>>>>>>>> Alex
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> steve(a)hibernate.org
>>>>>>>>
http://hibernate.org
>>>>>>>> --
>>>>>>>> steve(a)hibernate.org
>>>>>>>>
http://hibernate.org
>>>>>>>> --
>>>>>>>> steve(a)hibernate.org
>>>>>>>>
http://hibernate.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> --
>>> steve(a)hibernate.org
>>>
http://hibernate.org
>>
>>
>>
>>
>
> --
> steve(a)hibernate.org
>
http://hibernate.org