I am using my own portal creation GUI and calling the portal API with my code to create/update/delete portal configurations and am seeing some problems with modifying portal navigations. Currently I am calling DataStorage.save(PageNavigation) with the newly updated PageNavigation that I have created and when I try and call org.exoplatform.portal.webui.util.Util.getUIPortal().getSelectedNavigation() from another request the navigation is not the same as when I saved it. This leads to users being able to update a portal navigation (ie. change the order of tabs) and when they go and view the portal the tabs are still in the same order. After the user logs out of the system and then returns to the page they are in the correct order however. This also happens when a user deletes a page from the navigation and when the user browses to that page they receive the "Page not found. You do not have permission to view this page. Page can be deleted." error page. After they logout/back in this page is no longer viewable.
What I am wondering is if there is a cache that I should be calling to update the navigation or another mechanism to update the navigation that the UIPortal can see. I thought that the save method on the DataStorage object would take care of this update for me but I guess not. I have also tried calling DataStorage.remove(PortalNavigation) and DataStorage.create(PageNavigation) thinking that this might update it also but it seems that it doesn't.
Any advice on this issue would be greatly appreciated.