Hi using this development setup: | * Version: jboss-portal-2.6.1.GA | * Download Version | * JBoss AS Version: 4.2.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605)] | * Database: Mysql 5.0.51a-community-nt | * JDBC Connector and Version: mysql-connector-java-5.0.5-bin.jar | * OS Platform: Windows XP 32-Bit | | I have injected the InstanceContainer and set transaction support via jboss-portlet.xml: | | | | <service> | | <service-name>InstanceContainer</service-name> | | <service-class>org.jboss.portal.core.model.instance.InstanceContainer</service-class> | | <service-ref>:container=Instance</service-ref> | | </service> | | and | | <trans-attribute>Required</trans-attribute>
Reading from the portlet instnaces does work, writing to the portlet preferences creates a nullpointer, using this example code: | //Get the instance container | InstanceContainer instanceContainer = (InstanceContainer) this.getPortletRequest().getPortletSession().getPortletContext().getAttribute("InstanceContainer"); | InstanceDefinition id = instanceContainer.getDefinition("startPortletInstance"); | | // This does work! | PropertyMap pmap = id.getProperties(); | String uuid = ((StringValue) pmap.get("uuid")).toString(); | | List tmp = new ArrayList(); | if (pmap.containsKey("uuid")) { | PropertyChange change = PropertyChange.newUpdate("uuid", new StringValue(documentId)); | tmp.add(change); | } | PropertyChange[] changes = (PropertyChange[]) tmp.toArray(new PropertyChange[tmp.size()]); | //This doesn't work | id.setProperties(changes); | I have debugged the setProperties() method for my portlet und the admin portlet and found the problematic section: org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager The following code line leads to the nullpointer: context.entries.clear(); The problem seems to be, that the loaded (hibernate?) PersistentPortletState object is not set up correctly, most properties are empty. I have compared this to the admin-core portlet - there is the object loaded correctly. Some questions: 1. Am i gettin the InstanceCotainer correctly: InstanceContainer instanceContainer = (InstanceContainer) this.getPortletRequest().getPortletSession().getPortletContext().getAttribute("InstanceContainer"); | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4133124#4133124 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4133124 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user