You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2009/06/15 20:41:28 UTC
svn commit: r784908 - in
/portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE:
components/prefs/src/java/org/apache/jetspeed/prefs/impl/
jetspeed-api/src/java/org/apache/jetspeed/prefs/ src/webapp/WEB-INF/assembly/
Author: rwatler
Date: Mon Jun 15 18:41:28 2009
New Revision: 784908
URL: http://svn.apache.org/viewvc?rev=784908&view=rev
Log:
JS2-1033: deadlock during PAM initialization
Modified:
portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java
portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/prefs/PreferencesProvider.java
portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/src/webapp/WEB-INF/assembly/prefs.xml
Modified: portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java?rev=784908&r1=784907&r2=784908&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java (original)
+++ portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java Mon Jun 15 18:41:28 2009
@@ -562,17 +562,42 @@
return new PropertyImpl(node.getNodeId(), name, value);
}
- public void init() throws Exception
+ public void preload() throws Exception
{
- super.init();
+ // ensure base root preference nodes exist
+ Node systemRoot = null;
+ if (!nodeExists("/", PreferencesImpl.SYSTEM_NODE_TYPE))
+ {
+ systemRoot = createNode(null, "", PreferencesImpl.SYSTEM_NODE_TYPE, "/");
+ }
+ else
+ {
+ systemRoot = getNode("/", PreferencesImpl.SYSTEM_NODE_TYPE);
+ }
+ if (!nodeExists("/" + MutablePortletApplication.PREFS_ROOT, PreferencesImpl.SYSTEM_NODE_TYPE))
+ {
+ createNode(systemRoot, MutablePortletApplication.PREFS_ROOT, PreferencesImpl.SYSTEM_NODE_TYPE, "/" + MutablePortletApplication.PREFS_ROOT);
+ }
+ if (!nodeExists("/" + MutablePortletEntity.PORTLET_ENTITY_ROOT, PreferencesImpl.SYSTEM_NODE_TYPE))
+ {
+ createNode(systemRoot, MutablePortletEntity.PORTLET_ENTITY_ROOT, PreferencesImpl.SYSTEM_NODE_TYPE, "/" + MutablePortletEntity.PORTLET_ENTITY_ROOT);
+ }
+ if (!nodeExists("/", PreferencesImpl.USER_NODE_TYPE))
+ {
+ createNode(null, "", PreferencesImpl.USER_NODE_TYPE, "/");
+ }
+ // preload portlet application
Iterator apps = this.preloadedApplications.iterator();
while (apps.hasNext())
{
String appName = (String)apps.next();
preloadApplicationPreferences(appName);
}
+ // preload portlet entities
if (preloadEntities)
+ {
preloadAllEntities();
+ }
}
public void preloadApplicationPreferences(String portletApplicationName) throws NodeDoesNotExistException
Modified: portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/prefs/PreferencesProvider.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/prefs/PreferencesProvider.java?rev=784908&r1=784907&r2=784908&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/prefs/PreferencesProvider.java (original)
+++ portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/prefs/PreferencesProvider.java Mon Jun 15 18:41:28 2009
@@ -115,11 +115,11 @@
Collection lookupPreference(String nodeName, String propertyName, String propertyValue);
/**
- * Initializes the preferences node
+ * Initializes the preferences node by executing configured preloads.
*
* @throws Exception
*/
- void init() throws Exception;
+ void preload() throws Exception;
/**
* Preload preferences for specified portlet application.
Modified: portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/src/webapp/WEB-INF/assembly/prefs.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/src/webapp/WEB-INF/assembly/prefs.xml?rev=784908&r1=784907&r2=784908&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/src/webapp/WEB-INF/assembly/prefs.xml (original)
+++ portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/src/webapp/WEB-INF/assembly/prefs.xml Mon Jun 15 18:41:28 2009
@@ -46,6 +46,7 @@
</property>
<property name="transactionAttributes">
<props>
+ <prop key="preload">PROPAGATION_REQUIRED</prop>
<prop key="createNode*">PROPAGATION_REQUIRED</prop>
<prop key="storeNode*">PROPAGATION_REQUIRED</prop>
<prop key="removeNode*">PROPAGATION_REQUIRED</prop>
@@ -54,9 +55,15 @@
</property>
</bean>
+ <!-- preload preferences provider within transaction -->
+ <bean id="preloadPrefsProvider" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+ <property name="targetObject"><ref bean="prefsProvider"/></property>
+ <property name="targetMethod"><value>preload</value></property>
+ </bean>
+
<!-- PreferencesFactory implementation -->
<bean id="java.util.prefs.PreferencesFactory" class="org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl"
- name="prefsFactory" init-method="init" destroy-method="destroy">
+ name="prefsFactory" depends-on="preloadPrefsProvider" init-method="init" destroy-method="destroy">
<!-- dummy constructor argument to distinguish it from the default constructor invoked by the Java Preferences itself -->
<constructor-arg><value>1</value></constructor-arg>
<property name="prefsProvider">
@@ -64,4 +71,4 @@
</property>
</bean>
-</beans>
\ No newline at end of file
+</beans>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org