Bug #1464
ferméProblème lors de l'instanciation d'un portlet
100%
Description
Depuis quelques semaines, j'ai constaté que l'on ne pouvait plus créer correctement une nouvelle fenêtre de portlet sur la page d'accueil de Silverpeas.
En effet, lorsque l'on ajoute une nouvelle fenêtre de portlet, celui qui est instancié est toujours le dernier portlet affiché sur la page d'accueil, ce qui semble conduire à chaque fois à un affichage multiple de la même portlet (mais sans contenu si ce n'est le message suivant : "Wait..portlet webapp is being deployed.") !
L'erreur affichée dans log/traces est toujours la même à chaque instanciation :
7 janv. 2011 10:56:01 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:LastPublicationsPortlet, PortletWindowName:silverpeas.LastPublicationsPortlet, Action:RENDER
7 janv. 2011 10:56:01 com.silverpeas.portlets.context.window.impl.PortletPreferencesImpl loadPrefMap
INFO: PSPL_PCCTXCSPPCI0014 : Loading preference nbPublis, value is |5
7 janv. 2011 10:56:01 com.silverpeas.portlets.context.window.impl.PortletPreferencesImpl loadPrefMap
INFO: PSPL_PCCTXCSPPCI0014 : Loading preference maxAge, value is |0
7 janv. 2011 10:56:01 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:FavoriteQueriesPortlet, PortletWindowName:silverpeas.FavoriteQueriesPortlet, Action:RENDER
7 janv. 2011 10:56:01 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:NextEventsPortlet, PortletWindowName:silverpeas.NextEventsPortlet, Action:RENDER
7 janv. 2011 10:56:01 com.silverpeas.portlets.context.window.impl.PortletPreferencesImpl loadPrefMap
INFO: PSPL_PCCTXCSPPCI0014 : Loading preference nbEvents, value is |5
7 janv. 2011 10:56:01 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:MyNotificationsPortlet, PortletWindowName:silverpeas.MyNotificationsPortlet, Action:RENDER
7 janv. 2011 10:56:01 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:HelloSilverpeasPortlet, PortletWindowName:silverpeas.HelloSilverpeasPortlet, Action:RENDER
7 janv. 2011 10:56:01 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:MyBookmarksPortlet, PortletWindowName:silverpeas.MyBookmarksPortlet, Action:RENDER
7 janv. 2011 10:56:01 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:MyCheckOutFiles, PortletWindowName:silverpeas.MyCheckOutFiles, Action:RENDER
7 janv. 2011 10:56:01 com.sun.portal.portletcontainer.invoker.WindowInvoker render
GRAVE: PSPL_PCCTXCSPPCI0006 : Exception thrown while rendering content for portlet window PortletWindowInvokerUtils.getEntityID(): couldn't get entityIDPrefix for portlet window 1294391555574
7 janv. 2011 10:56:01 com.silverpeas.portlets.portal.SPDesktopServlet getPortletWindowContents
INFO: PSPCD_CSPPD0022 : Number for Portlet Windows Displayed - thin: 4, thick: 4
7 janv. 2011 10:58:58 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:LastPublicationsPortlet, PortletWindowName:silverpeas.LastPublicationsPortlet, Action:RENDER
7 janv. 2011 10:58:58 com.silverpeas.portlets.context.window.impl.PortletPreferencesImpl loadPrefMap
INFO: PSPL_PCCTXCSPPCI0014 : Loading preference nbPublis, value is |5
7 janv. 2011 10:58:58 com.silverpeas.portlets.context.window.impl.PortletPreferencesImpl loadPrefMap
INFO: PSPL_PCCTXCSPPCI0014 : Loading preference maxAge, value is |0
7 janv. 2011 10:58:58 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:FavoriteQueriesPortlet, PortletWindowName:silverpeas.FavoriteQueriesPortlet, Action:RENDER
7 janv. 2011 10:58:58 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:NextEventsPortlet, PortletWindowName:silverpeas.NextEventsPortlet, Action:RENDER
7 janv. 2011 10:58:58 com.silverpeas.portlets.context.window.impl.PortletPreferencesImpl loadPrefMap
INFO: PSPL_PCCTXCSPPCI0014 : Loading preference nbEvents, value is |5
7 janv. 2011 10:58:58 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:MyNotificationsPortlet, PortletWindowName:silverpeas.MyNotificationsPortlet, Action:RENDER
7 janv. 2011 10:58:58 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:HelloSilverpeasPortlet, PortletWindowName:silverpeas.HelloSilverpeasPortlet, Action:RENDER
7 janv. 2011 10:58:58 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:MyBookmarksPortlet, PortletWindowName:silverpeas.MyBookmarksPortlet, Action:RENDER
7 janv. 2011 10:58:58 com.sun.portal.portletcontainer.impl.PortletContainer invokePAE
INFO: PSPL_PCCSPCPCI0002 : Invoking AppName:silverpeas, PortletName:MyCheckOutFiles, PortletWindowName:silverpeas.MyCheckOutFiles, Action:RENDER
7 janv. 2011 10:58:58 com.sun.portal.portletcontainer.invoker.WindowInvoker render
GRAVE: PSPL_PCCTXCSPPCI0006 : Exception thrown while rendering content for portlet window PortletWindowInvokerUtils.getEntityID(): couldn't get entityIDPrefix for portlet window 1294391555574
7 janv. 2011 10:58:58 com.silverpeas.portlets.portal.SPDesktopServlet getPortletWindowContents
INFO: PSPCD_CSPPD0022 : Number for Portlet Windows Displayed - thin: 4, thick: 4
Mis à jour par Miguel Moquillon il y a presque 14 ans
- Statut changé de New à Resolved
Un nettoyage de code a eu lieu en vue de supprimer le spaceId là où il n'a pas de pertinence.
Ce nettoyage a mis en évidence un bogue existant dans PortletWindowContextImpl lorsque le contenu d'un portlet est recherché. En effet, pour ce faire, PortletWindowContextImpl s'appuie sur le spaceId et si ce dernier est null, sur le userId. Du moins, c'est ce qu'il est censé faire et ne faisait pas puisqu'il finissait par s'appuyer sur le spaceId même lorsque ce dernier est null. Le résultat est qu'au lieu de récupérer le registre des portlets lié à l'utilisateur, le desktop portlet récupérait celui par défaut. Or ce dernier ne référence pas les portlets instanciés explicitement par l'utilisateur, ce qui conduit à l'échec de la récupération du contenu des portlets spécifiquement instanciés par l'utilisateur.
Mis à jour par Nicolas Eysseric il y a presque 14 ans
- Catégorie mis à Portlets
- Statut changé de Resolved à Closed
- % réalisé changé de 0 à 100
OK. Validé.