Glen,

I have made some changes to enable local testing and after updating from
the trunk nothing is working.

http://repo1.maven.org/ says 501.  Why does it not ignore this? :(

Can you see if the tests still work?

Also, I have done the test on the directory and will check this later when
its back working.


Cheers Greg.

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

> Fixed the Eclipselink issue in a way that the code will still work with
> Hibernate.  We'll keep the Hibernate for awhile to see if it has any issues.
>
> When we delete a media folder, Eclipselink does indeed remove it from the
> database (the Flush Mode COMMIT/AUTO had nothing to do with the problem.)
>  The issue is that Eclipselink does not refresh the media folder's parent
> to remove that deleted media folder from its child directories list.  So
> even though its removed from the database the application would still show
> the deleted folder whenever you list a parent folder's (for us, "/")
> children.  For the change, I just manually removed the deleted folder from
> its parent's subfolder list, which Hibernate is fine with.
>
> I may want to create a bare-bones example of this on StackOverflow
> sometime and ask which JPA stack has it right, the losing stack gets a JIRA
> issue.
>
> Glen
>
>
> On 07/30/2013 07:06 AM, Greg Huber wrote:
>
>> 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/****<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/**<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://cs.oracle.com/javaee/6/api/**>
>>>>>>> <http://docs.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>
>>>>>>> <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/******<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<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/****
>>>>>>>>>> ** <http://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://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/**>
>>>>>>>>>> >
>>>>>>>>>> <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/**
>>>>>>>>>> ** <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/**>
>>>>>>>>>> <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<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