You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-user@portals.apache.org by Tomba Rakesh <to...@yahoo.com> on 2005/08/20 13:39:18 UTC

Re: PortletSelector NotSerializableException Help!

Hi All
 
Does anyone got this exception...

Exception is thrown once when restarting server.
 
Key Points How I implements:
----------------------------------------------------------------------------------------------------------------------------------
1. My portletselector "DashboardUserPortletSelector" is part of our application. Not in pam application. [Original portletselector is part of pam app]
2. For compile and runtime I use pam application java classes. Creating a jar file for pam app classes and used in my app.
3. Using all related files velocity jar files, portlet selector vm file, related psml file.
 
Regards
Rakesh

Tomba Rakesh <to...@yahoo.com> wrote:
Hi All
 
I am implementing my own PortletSelector as. 
 
public class DashboardUserPortletSelector extends org.apache.jetspeed.portlets.selector.PortletSelector
 
The code is inclosed below.
 
Everything is working fine. But sometime it throws NotSerializableException and sometime does not throw exception.
 
Even though the exception is thrown it is working fine.
 
Note: Implementing new portletselector for displaying specific portlets.
 
What could be the reason?
 
Thanks in advance
 
Regards
Rakesh
 
 
Exception Thrown
=============================================================================
Aug 17, 2005 2:01:11 PM org.apache.catalina.session.StandardManager doLoad
SEVERE: IOException while loading persisted sessions: java.io.WriteAbortedExcept
ion: writing aborted; java.io.NotSerializableException: org.apache.jetspeed.port
lets.selector.PortletSelector$PortletInfo
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException
: org.apache.jetspeed.portlets.selector.PortletSelector$PortletInfo
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1303)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
        at java.util.ArrayList.readObject(ArrayList.java:587)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
 
 
Source Code
=============================================================================
  import java.sql.Types;
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.List;
  import java.util.Locale;
  import javax.portlet.RenderRequest;
  import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
  import org.apache.jetspeed.om.common.portlet.PortletDefinitionComposite;
  import org.apache.jetspeed.portlets.selector.PortletIterator;
  import org.apache.jetspeed.portlets.selector.PortletSelector;
  import org.apache.jetspeed.search.ParsedObject;
  import org.apache.portals.gems.browser.BrowserIterator;
  /**
   * Use to add portlets on dashboard page.
   *
   * @author 2131
   * @date July 23, 2005
   * @version 1.0
   */
  public class DashboardUserPortletSelector extends PortletSelector {
    private static final String PORTLET = "Portlet";
    /**jetspeed name.  */
    private static final String JETSPEED = "jetspeed";
    /**seperator id.  */
    private static final String SPERATOR = "::";
    /**portlet name.  */
    private static final String PORTLET_NAME = "DashboardUserPortletSelector";
    /**description.  */
    private static final String DESCRIPTION = "Description";
    /**
    * Get dashboard portlets and displayed after sorting in ascending order.
    *
    * @param request Instance of RenderRequest.
    * @param sql Does nothing at base class PortletSelector.
    * @param windowSize Number of portlets to be displayed.
    * @param filter For filtering portlets.
    *
    * @throws Exception Exception for error encountered.
    */
    public void getRows( RenderRequest request, String sql, int windowSize,
                           String filter ) throws Exception {
      String userName = request.getRemoteUser(  );
      List resultSetTitleList = new ArrayList(  );
      List resultSetTypeList = new ArrayList(  );
      try {
        Iterator iterator = null;
        if( filter == null ) {
          iterator = registry.getAllPortletDefinitions(  ).iterator(  );
        } else {
          iterator = searchEngine.search( filter ).getResults(  ).iterator(  );
        }
        resultSetTypeList.add( String.valueOf( Types.VARCHAR ) );
        resultSetTitleList.add( PORTLET );
        resultSetTitleList.add( DESCRIPTION );
        Locale locale = request.getLocale(  );
        List list = new ArrayList(  );
        while( iterator.hasNext(  ) ) {
          PortletDefinitionComposite portletDefinitionComposite = null;
          if( filter == null ) {
            portletDefinitionComposite = ( PortletDefinitionComposite ) iterator.next(  );
          } else {
            portletDefinitionComposite = this.getPortletFromParsedObject( ( ParsedObject ) iterator.next(  ) );
          }
          if( portletDefinitionComposite == null ) {
            continue;
          }
          MutablePortletApplication mutablePortletApplication = ( MutablePortletApplication ) portletDefinitionComposite.getPortletApplicationDefinition(  );
          String appName = mutablePortletApplication.getName(  );
          if( ( appName != null ) && appName.equals( JETSPEED ) ) {
            continue;
          }
          String portletUniqueName = portletDefinitionComposite.getUniqueName(  );
   /* Portlet filtering start */
   /***************************************************************************/
          String contextName = "MyContextName";
          if( portletUniqueName.startsWith( contextName ) ) {
            if( !portletUniqueName.startsWith( contextName + SPERATOR +
                                                     PORTLET_NAME ) ) {
                list.add( new PortletInfo( appName + SPERATOR +
                                             portletDefinitionComposite.getName(  ),
                                             portletDefinitionComposite.getDisplayNameText( locale ),
                                             portletDefinitionComposite.getDescriptionText( locale ) ) );
            }
          }
          /***************************************************************************/
   /* Portlet filtering end */
        }
        BrowserIterator browserIterator = new PortletIterator( list,
                                                                 resultSetTitleList,
                                                                 resultSetTypeList,
                                                                 windowSize );
        setBrowserIterator( request, browserIterator );
        browserIterator.sort( PORTLET );
      } catch( Exception e ) {
        // e.printStackTrace(  );
  VericeptLogger.error(e.toString());
        throw e;
      }
    }
  }



---------------------------------
Start your day with Yahoo! - make it your home page 
		
---------------------------------
 Start your day with Yahoo! - make it your home page