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 

Reply via email to