Glen,

It still does not work, even if we are on hibernate.  If I comment out your
mediaFileDir.getParent().removeChildDirectory(mediaFileDir); change it does
not delete the folder.

So I guess there is something else wrong, or may be its correct and and
that is what we are supposed to do on JPA.  I will comment out the new test
on MediaTest >> testDirectoryDeleteAssociation() so it does not fail.


Cheers Greg

On 31 July 2013 14:03, Glen Mazza <glen.ma...@gmail.com> wrote:

> It should be Hibernate -- it's very easy to check, just look at the
> app/pom.xml, comment one dependency and uncomment the other.  (Unless
> you're running on GlassFish then it's Eclipselink no matter what.)
>  Regardless, it should work with either JPA stack because of my fixes
> yesterday.
>
> Basically, you add a media directory and then delete it.  It should
> visually disappear.
>
> (BTW, mvn jetty:run does not yet work with Hibernate JPA, if you're
> running that way, the jetty config file needs modification to work with
> either stack right now.)
>
> Glen
>
> On 07/31/2013 08:58 AM, Greg Huber wrote:
>
>> Glen,
>>
>> It builds OK now.
>>
>> I have updated to the trunk but the test is still showing its not
>> refreshing the association.  Are we on hibernate or EclipseLink?
>>
>> Cheers Greg
>>
>> On 31 July 2013 13:14, Glen Mazza <glen.ma...@gmail.com> wrote:
>>
>>  Just one failure as a result of the update (mvn clean install worked
>>> before it).  And some typos.  :)
>>>
>>> BTW, the new database script you created, would you mind moving it to
>>> test/resources/sql folder?  (like we have main/resources/sql already?)
>>>
>>> Also, I'm usually on the #roller IRC so you might want to join if you
>>> have
>>> any quick questions.
>>>
>>> Thanks,
>>> Glen
>>>
>>> testUserAttributeCRUD(org.****apache.roller.weblogger.****
>>> business.UserAttributeTest)
>>> Time elapsed: 0.11 sec  <<< ERROR!
>>> java.lang.NullPointerException
>>>      at org.apache.roller.weblogger.****business.jpa.**
>>> JPAUserManagerImpl.removeUser(****JPAUserManagerImpl.java:75)
>>>      at org.apache.roller.weblogger.****TestUtils.teardownUser(**
>>> TestUtils.java:227)
>>>      at org.apache.roller.weblogger.****business.UserAttributeTest.**
>>> testUserAttributeCRUD(****UserAttributeTest.java:75)
>>>      at sun.reflect.****NativeMethodAccessorImpl.****invoke0(Native
>>> Method)
>>>      at sun.reflect.****NativeMethodAccessorImpl.****invoke(**
>>> NativeMethodAccessorImpl.java:****57)
>>>      at sun.reflect.****DelegatingMethodAccessorImpl.****invoke(**
>>> DelegatingMethodAccessorImpl.****java:43)
>>>      at java.lang.reflect.Method.****invoke(Method.java:601)
>>>      at junit.framework.TestCase.****runTest(TestCase.java:176)
>>>      at junit.framework.TestCase.****runBare(TestCase.java:141)
>>>      at junit.framework.TestResult$1.****protect(TestResult.java:122)
>>>      at junit.framework.TestResult.****runProtected(TestResult.java:***
>>> *142)
>>>      at junit.framework.TestResult.****run(TestResult.java:125)
>>>      at junit.framework.TestCase.run(****TestCase.java:129)
>>>      at junit.framework.TestSuite.****runTest(TestSuite.java:255)
>>>      at junit.framework.TestSuite.run(****TestSuite.java:250)
>>>      at org.junit.internal.runners.****JUnit38ClassRunner.run(**
>>> JUnit38ClassRunner.java:84)
>>>      at org.apache.maven.surefire.****junit4.JUnit4Provider.execute(****
>>> JUnit4Provider.java:252)
>>>      at org.apache.maven.surefire.****junit4.JUnit4Provider.**
>>> executeTestSet(JUnit4Provider.****java:141)
>>>      at org.apache.maven.surefire.****junit4.JUnit4Provider.invoke(****
>>> JUnit4Provider.java:112)
>>>      at sun.reflect.****NativeMethodAccessorImpl.****invoke0(Native
>>> Method)
>>>      at sun.reflect.****NativeMethodAccessorImpl.****invoke(**
>>> NativeMethodAccessorImpl.java:****57)
>>>      at sun.reflect.****DelegatingMethodAccessorImpl.****invoke(**
>>> DelegatingMethodAccessorImpl.****java:43)
>>>      at java.lang.reflect.Method.****invoke(Method.java:601)
>>>      at org.apache.maven.surefire.****util.ReflectionUtils.**
>>> invokeMethodWithArray(****ReflectionUtils.java:189)
>>>      at org.apache.maven.surefire.****booter.ProviderFactory$**
>>> ProviderProxy.invoke(****ProviderFactory.java:165)
>>>      at org.apache.maven.surefire.****booter.ProviderFactory.**
>>> invokeProvider(****ProviderFactory.java:85)
>>>      at org.apache.maven.surefire.****booter.ForkedBooter.**
>>> runSuitesInProcess(****ForkedBooter.java:115)
>>>      at org.apache.maven.surefire.****booter.ForkedBooter.main(**
>>> ForkedBooter.java:75)
>>>
>>>
>>>
>>> On 07/31/2013 08:03 AM, Greg Huber wrote:
>>>
>>>  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/******>
>>>>>>>>>> <http://docs.oracle.com/**javaee/****<http://docs.oracle.com/javaee/****>
>>>>>>>>>> >
>>>>>>>>>> <http://docs.oracle.com/****javaee/**<http://docs.oracle.com/**javaee/**>
>>>>>>>>>> <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://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/******<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://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://oracle.com/**javaee/**6/api/**javax/**persistence/**>
>>>>>>>>>> <http://oracle.**com/javaee/**6/api/**javax/**persistence/**<http://oracle.com/javaee/**6/api/**javax/persistence/**>
>>>>>>>>>> >
>>>>>>>>>> <http://docs.**oracle.com/**javaee/**6/api/**javax/**
>>>>>>>>>> persistence/**<http://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/***
>>>>>>>>>>> *** <http://cs.oracle.com/javaee/6/****>
>>>>>>>>>>> api/** 
>>>>>>>>>>> <http://cs.oracle.com/javaee/**6/**api/**<http://cs.oracle.com/javaee/6/**api/**>
>>>>>>>>>>> ><
>>>>>>>>>>> http://cs.oracle.com/**javaee/**6/api/**<http://cs.oracle.com/**javaee/6/api/**>
>>>>>>>>>>> <http://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/**>
>>>>>>>>>>> <http://docs.**oracle.com/**javaee/6/api/**<http://docs.oracle.com/**javaee/6/api/**>
>>>>>>>>>>> >
>>>>>>>>>>> <http://docs.**oracle.com/**javaee/6/api/**<http://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/****<http://docs.oracle.com/javaee/6/api/******javax/persistence/****>
>>>>>>>>>>> <ht**tp://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>
>>>>>>>>>>> >
>>>>>>>>>>> <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/****** <http://www.eclipse.org/********><http://www.eclipse.
>>>>>>>>>>> **
>>>>>>>>>>> org/**** <http://www.eclipse.org/****>>
>>>>>>>>>>> eclipselink/documentation/2.5/**********<http://www.eclipse.**
>>>>>>>>>>> org/** <http://www.eclipse.org/**>
>>>>>>>>>>> **** <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/***
>>>>>>>>>>> * <http://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. <http://www.>**
>>>>>>>>>>> eclipse.org/eclipselink/****documentation/2.5/jpa/**<http://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/*>
>>>>>>>>>>>>>> ***** 
>>>>>>>>>>>>>> <http://acle.com/javaee/6/api/******<http://acle.com/javaee/6/api/****>
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> ** 
>>>>>>>>>>>>>> <http://acle.com/javaee/6/api/********<http://acle.com/javaee/6/api/******>
>>>>>>>>>>>>>> <http://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://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/****<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://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/**<http://oracle.com/**javaee/6/**api/javax/**>
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> <http://oracle.**com/**javaee/****6/api/javax/**<http://**
>>>>>>>>>>>>>> oracle. <http://oracle.>**
>>>>>>>>>>>>>> com/**javaee/6/api/javax/**<ht**tp://oracle.com/**javaee/6/**
>>>>>>>>>>>>>> api/javax/** <http://oracle.com/**javaee/6/api/javax/**>>
>>>>>>>>>>>>>> <http://oracle.**com/javaee/6/******api/javax/**<http://**
>>>>>>>>>>>>>> oracle. <http://oracle.>**
>>>>>>>>>>>>>> **
>>>>>>>>>>>>>> com/javaee/6/api/javax/**<**http**://oracle.com/javaee/6/**
>>>>>>>>>>>>>> api/** <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/**>
>>>>>>>>>>>>>> ** <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/**>
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> <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/**>
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> <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/**>
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> <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/**** <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