I'm not a email list moderator, and one isn't around right now. Did you try sending an email to "dev-unsubscr...@roller.apache.org" from the gmail account you subscribed from? It should work.
Glen On 07/31/2013 09:23 AM, Yufu Huang wrote: > Could someone unsubscribe me from this mail list? I tried unsubscribe email > but did not work. Thanks. > > Sent from my iPhone > > On Jul 30, 2013, at 3:36 PM, 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/** >>>>>>> ****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