Glen,

OK, can you make the changes to the trunk so i can switch to hibernate.

On 30 July 2013 11:47, Glen Mazza <glen.ma...@gmail.com> wrote:

> Much appreciated.  I was thinking it may be good for us to run on
> Hibernate for a few weeks anyway, even if EclipseLink were running
> perfectly, just to see if there are any kinks with it where our code needs
> to be tightened up.  I can fix EclipseLink's problem in the interim so
> if/when *Hibernate* has a kink, we know we can always immediately flip back
> to EclipseLink while fixing the Hibernate issue.
>
> Glen
>
> On 07/30/2013 06:39 AM, Greg Huber wrote:
>
>> Glen,
>>
>> I was trying to add the usecase but ran into the howto debug issue.  I
>> will
>> sort the test if I manage to get the debug working.
>>
>> Cheers Greg
>>
>> On 30 July 2013 11:05, Glen Mazza <glen.ma...@gmail.com> wrote:
>>
>>  Let me play with it today before throwing in the towel and going with
>>> Hibernate. Even if we jump to Hibernate I still need to figure out the
>>> EclipseLink matter so our coding is not dependent on one JPA framework
>>> alone, we should be able to work with both or have a JIRA ticket with
>>> EclipseLink. I'd like to add in a JUnit test case that would have caught
>>> this regression.
>>>
>>> Glen
>>>
>>> On 07/30/2013 03:31 AM, Greg Huber wrote:
>>>
>>>  Glen,
>>>>
>>>> Commenting out the FlushModeType.COMMIT makes no difference, (assumes it
>>>> switches to auto).  Would have thought that createNamedQuery or
>>>> createQuery
>>>> would behave the same way as they both follow the same logic in roller.
>>>> Where one works and one does not, maybe an EclipseLink issue. I am no
>>>> expert but with hibernate this does not happen.
>>>>
>>>> For me, eclipse does not have a good track record wrt QA, and with orm
>>>> there is just no workaround.  It would simpler if we can switch to
>>>> something that works without all this pain.
>>>>
>>>> Cheers Greg
>>>>
>>>>
>>>> On 29 July 2013 14:27, Glen Mazza <glen.ma...@gmail.com> wrote:
>>>>
>>>>   This page: http://docs.oracle.com/javaee/**
>>>> ****6/api/javax/persistence/**<http://docs.oracle.com/javaee/****6/api/javax/persistence/**>
>>>> **<http://docs.oracle.com/**javaee/**6/api/javax/**persistence/**<http://docs.oracle.com/javaee/**6/api/javax/persistence/**>
>>>> >
>>>>
>>>>> FlushModeType.html<http://**do**cs.oracle.com/javaee/6/api/**<http://docs.oracle.com/javaee/6/api/**>
>>>>> javax/persistence/****FlushModeType.html<http://**
>>>>> docs.oracle.com/javaee/6/api/**javax/persistence/**FlushModeType.html<http://docs.oracle.com/javaee/6/api/javax/persistence/FlushModeType.html>
>>>>> >>says
>>>>> "If |FlushModeType.COMMIT| is set, the effect of updates made to
>>>>> entities in the persistence context upon queries is unspecified", which
>>>>> is
>>>>> different from the definition of COMMIT below (where it *only* occurs
>>>>> at
>>>>> a
>>>>> transaction commit.)  If I understand that correctly, that would mean
>>>>> Roller can't rely on a flush having occurred or not with COMMIT, and
>>>>> EclipseLink and any other JPA implementation is welcome to go either
>>>>> way,
>>>>> and can indeed behave differently between named and dynamic queries, as
>>>>> EclipseLink does.
>>>>>
>>>>> Might the problem be with our code?  We're relying on unspecified
>>>>> functionality when we set FlushModeType to COMMIT, and we've been lucky
>>>>> so
>>>>> far that OpenJPA and Hibernate just so happen to flush data (as it's
>>>>> allowed to do per the spec) while EclipseLink is choosing not to.  I
>>>>> wonder
>>>>> if we should have new versions of NamedQuery and DynamicQuery that
>>>>> *don't*
>>>>> set it to COMMIT (assuming the default of AUTO is being used otherwise,
>>>>> as
>>>>> specified here: http://www.eclipse.org/****
>>>>> eclipselink/documentation/2.5/******<http://www.eclipse.org/****
>>>>> eclipselink/documentation/2.5/****<http://www.eclipse.org/**eclipselink/documentation/2.5/**>
>>>>> >
>>>>> jpa/extensions/p_persistence_******context_flushmode.htm)--*****
>>>>> *something<
>>>>> http://www.eclipse.**org/**eclipselink/documentation/**
>>>>> 2.5/jpa/extensions/p_****persistence_context_flushmode.**
>>>>> **htm)--something<http://www.**eclipse.org/eclipselink/**
>>>>> documentation/2.5/jpa/**extensions/p_persistence_**
>>>>> context_flushmode.htm)--**something<http://www.eclipse.org/eclipselink/documentation/2.5/jpa/extensions/p_persistence_context_flushmode.htm)--something>
>>>>> >>that
>>>>> the Media File stuff could apparently use here.
>>>>>
>>>>> Glen
>>>>>
>>>>>
>>>>> On 07/29/2013 08:32 AM, Greg Huber wrote:
>>>>>
>>>>>   Glen,
>>>>>
>>>>>> I think its only on the named queries as if I delete a weblog entry it
>>>>>> updates correctly, and uses a dynamic query.
>>>>>>
>>>>>> EntityManager em = getEntityManager(false);
>>>>>> Query q = em.createNamedQuery(queryName)******;
>>>>>> // Never flush for queries. Roller code assumes this behavior
>>>>>> q.setFlushMode(FlushModeType.******COMMIT);
>>>>>> return q;
>>>>>>
>>>>>>     EntityManager em = getEntityManager(false);
>>>>>>     Query q = em.createQuery(queryString);
>>>>>>     // Never flush for queries. Roller code assumes this behavior
>>>>>>     q.setFlushMode(FlushModeType.******COMMIT);
>>>>>>
>>>>>>
>>>>>> Cheers Greg
>>>>>>
>>>>>> On 29 July 2013 13:14, Glen Mazza <glen.ma...@gmail.com> wrote:
>>>>>>
>>>>>>    OK, we can switch to Hibernate for the time being, and it works
>>>>>> fine
>>>>>>
>>>>>>  there, it's as simple a matter as commenting-out the EclipseLink
>>>>>>> dependency
>>>>>>> and uncommenting the Hibernate one in the app/pom.xml and doing an
>>>>>>> mvn
>>>>>>> clean install to get a new WAR.  Still, I'd like to fix this
>>>>>>> EclipseLink
>>>>>>> issue, maybe there's some simple setting causing it not to work.
>>>>>>>  Note
>>>>>>> our
>>>>>>> EclipseLink is JPA 2.1 vs. Hibernate's (and the OpenJPA's) 2.0, that
>>>>>>> might
>>>>>>> be part of the story.
>>>>>>>
>>>>>>> Glen
>>>>>>>
>>>>>>> On 07/29/2013 07:34 AM, Greg Huber wrote:
>>>>>>>
>>>>>>>      From google:
>>>>>>>
>>>>>>>  "By default, the database flush mode is set to AUTO. This means that
>>>>>>>> the
>>>>>>>> Entity-Manager performs a flush operation automatically as needed.
>>>>>>>>  In
>>>>>>>> general, this occurs at the end of a transaction for
>>>>>>>> transaction-scoped
>>>>>>>> EntityManagers and when the persistence context is closed for
>>>>>>>> application-managed or extendedscope EntityManagers. In addition, if
>>>>>>>> entities with pending changes are used in a query, the persistence
>>>>>>>> provider
>>>>>>>> will flush changes to the database before executing the query.If the
>>>>>>>> flush
>>>>>>>> mode is set to COMMIT, the persistence provider will only
>>>>>>>> synchronize
>>>>>>>> with
>>>>>>>> the database when the transaction commits.However, you should be
>>>>>>>> careful
>>>>>>>> with this, as it will be your responsibility to synchronize entity
>>>>>>>> state
>>>>>>>> with the database before executing a query. If you don’t do this and
>>>>>>>> an
>>>>>>>> EntityManager<http://docs.******or**acle.com/javaee/6/api/****
>>>>>>>> javax/** <http://acle.com/javaee/6/api/**javax/**><http://acle.com/
>>>>>>>> **javaee/6/api/javax/** <http://acle.com/javaee/6/api/javax/**>>
>>>>>>>> <http://oracle.com/**javaee/6/**api/javax/**<http://oracle.com/**javaee/6/api/javax/**>
>>>>>>>> <http://oracle.**com/javaee/6/api/javax/**<http://oracle.com/javaee/6/api/javax/**>
>>>>>>>> >
>>>>>>>> persistence/EntityManager.******html<http://docs.oracle.com/**
>>>>>>>> javaee/6/api/javax/******persistence/EntityManager.****html<
>>>>>>>> http://docs.oracle.com/****javaee/6/api/javax/**<http://docs.oracle.com/**javaee/6/api/javax/**>
>>>>>>>> persistence/EntityManager.**html<http://docs.oracle.com/**
>>>>>>>> javaee/6/api/javax/**persistence/EntityManager.html<http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html>
>>>>>>>> **>
>>>>>>>> **>
>>>>>>>> **>
>>>>>>>> **>query
>>>>>>>> returns stale entities from the database, the application can wind
>>>>>>>> up
>>>>>>>> in an inconsistent state."
>>>>>>>>
>>>>>>>> Did try to change it to auto but made no difference.
>>>>>>>>
>>>>>>>> On 29 July 2013 12:25, Glen Mazza <glen.ma...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>     OK, I'll check, but what happens if you go to the Roller
>>>>>>>> maintenance
>>>>>>>> tab
>>>>>>>>
>>>>>>>>   and click on "Flush blog" (that will normally empty out the
>>>>>>>> cache) --
>>>>>>>>
>>>>>>>>> problem solved then?
>>>>>>>>>
>>>>>>>>> Note I had to bring back your changes after the move to fewer
>>>>>>>>> modules,
>>>>>>>>> I
>>>>>>>>> might have missed something.
>>>>>>>>>
>>>>>>>>> Glen
>>>>>>>>>
>>>>>>>>> On 07/29/2013 07:20 AM, Greg Huber wrote:
>>>>>>>>>
>>>>>>>>>     Glen,
>>>>>>>>>
>>>>>>>>>   Can you test whether you can delete a media file folder?  ie add
>>>>>>>>> a
>>>>>>>>>
>>>>>>>>>> folder
>>>>>>>>>> and then try and delete it.  For me it seems to delete it OK but
>>>>>>>>>> when
>>>>>>>>>> you
>>>>>>>>>> refresh the media file folder view it is still there.  If I then
>>>>>>>>>> shut
>>>>>>>>>> down
>>>>>>>>>> tomcat and restart it is gone.  It seems something to do with its
>>>>>>>>>> cache?
>>>>>>>>>>
>>>>>>>>>> checking:
>>>>>>>>>>
>>>>>>>>>> public Query getNamedQuery(String queryName)
>>>>>>>>>> ....
>>>>>>>>>>       q.setFlushMode(FlushModeType.**********COMMIT);
>>>>>>>>>>
>>>>>>>>>> it sets the query to flush on commit, which should in theory flush
>>>>>>>>>> the
>>>>>>>>>> query cache when the transaction is committed.
>>>>>>>>>>
>>>>>>>>>> Is there some callback method we need to call to get it to flush?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Cheers Greg
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>

Reply via email to