I have stack traces from two different scenarios.
I tend to be able to recreate this types of exception more easily when I
have multiple users logged into our product, which means there are other
threads which are refreshing our navigation area which has a list of
folders and pages.


The 1st is a different scenario than I described in my initial post.
Our product creates new folders from a template, so when we do this we call
deepCopyFolder using the template directory as our source.

Caused by: java.lang.NullPointerException
at
org.apache.jetspeed.om.folder.psml.FolderImpl.getPageSecurity(FolderImpl.java:435)
 at
org.apache.jetspeed.om.folder.psml.FolderImpl.getEffectivePageSecurity(FolderImpl.java:673)
at
org.apache.jetspeed.page.document.psml.AbstractNode.checkConstraints(AbstractNode.java:406)
 at
org.apache.jetspeed.page.document.psml.AbstractNode.checkConstraints(AbstractNode.java:410)
at
org.apache.jetspeed.om.page.psml.AbstractBaseElement.checkConstraints(AbstractBaseElement.java:316)
 at
org.apache.jetspeed.om.page.psml.AbstractBaseElement.checkAccess(AbstractBaseElement.java:505)
at
org.apache.jetspeed.page.psml.CastorXmlPageManager.updatePage(CastorXmlPageManager.java:230)
 at
org.apache.jetspeed.page.PageManagerUtils.deepCopyFolder(PageManagerUtils.java:255)
at
org.apache.jetspeed.page.AbstractPageManager.deepCopyFolder(AbstractPageManager.java:1225)


The second stack trace is from the scenario I described in the initial post.
I have just removed some folders using the PageManager API, and called
reset(), I then look up the owner for some folders.

java.lang.SecurityException: SecurityConstraintsImpl.checkConstraints():
Access for view not permitted.
at
org.apache.jetspeed.om.page.psml.SecurityConstraintsImpl.checkConstraints(SecurityConstraintsImpl.java:227)
 at
org.apache.jetspeed.page.document.psml.AbstractNode.checkConstraints(AbstractNode.java:422)
at
org.apache.jetspeed.om.page.psml.AbstractBaseElement.checkConstraints(AbstractBaseElement.java:312)
 at
org.apache.jetspeed.om.page.psml.AbstractBaseElement.checkAccess(AbstractBaseElement.java:505)
at
org.apache.jetspeed.page.psml.CastorXmlPageManager.getFolder(CastorXmlPageManager.java:623)




On Fri, Jul 6, 2012 at 6:06 PM, Randy Watler <wat...@wispertel.net> wrote:

> Daniel:
>
> PageManager.reset() is indeed intended to be safe and operate as you
> expected.
>
> Do you have a stack trace of the exception that is thrown?
>
> Randy
>
>
> On 7/6/2012 2:33 PM, robotdan wrote:
>
>> I'm running Jetspeed 2.2.0, and I have a question regarding the use of
>> PageManager.reset().
>>
>> Our product utilizes folders to allow users to create new product
>> instances
>> that can be managed. When utilize the PageManager API to manage the
>> lifecycle of these folders.
>> In general we've always called the reset method after making changes, such
>> as after a call to removeFolder.
>>
>> The impl that we're using is CastoreXmlPageManager, it's reset
>> implementation calls FileCache.evictAll().
>>
>> Can anyone comment on the correct usage of the reset method?  Is it
>> necessary to call it after making changes like adding a folder, or
>> removing
>> a folder?
>> If memory serves me, it seems we ended up calling the reset to ensure the
>> new folder was available upon a subsequent page refresh in our
>> application.
>>
>> The reason I ask, is because recently we've encountered a few scenarios
>> where it seems resetting the cache, and then immediately looking up
>> something in metadata in a folder causes a Jetspeed exception.
>> For example,
>>
>> 1. Remove a folder  (pageManager.removeFolder(**Folder))
>> 2. Reset the cache (pageManager.reset())
>> 3. Immediately look up existing folders to find the owner in the folder
>> metadata.
>>        - Think this is failing in CastorXmlPageManager.**getFolder(String
>> folderPath)
>>           probably on folder.checkAccess(**JetspeedActions.VIEW)
>>
>> We've seen step 3 fail with a Jetspeed security exception
>> (org.apache.jetspeed.security.**SecurityException).  But a subsequent
>> call
>> will succeed.
>> It seems that the cache should be rebuilt upon next touch/request, but is
>> Jetspeed expecting the cache to always be built?  If so, it seems we are
>> hitting a timing issue.
>>
>> My assumption was that it was safe to call reset, and you'd just pay a
>> penalty for performance as the cache was rebuilt.  Is it not always safe
>> to
>> call this?
>>
>> Daniel
>>
>>
>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: 
> jetspeed-user-unsubscribe@**portals.apache.org<jetspeed-user-unsubscr...@portals.apache.org>
> For additional commands, e-mail: 
> jetspeed-user-help@portals.**apache.org<jetspeed-user-h...@portals.apache.org>
>
>

Reply via email to