incubator-connectors-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kwri...@apache.org
Subject svn commit: r911418 [4/8] - in /incubator/lcf/trunk/modules: connectors/webcrawler/connector/org/apache/lcf/crawler/connectors/webcrawler/ framework/agents/org/apache/lcf/agents/agentmanager/ framework/agents/org/apache/lcf/agents/incrementalingest/ fr...
Date Thu, 18 Feb 2010 14:31:31 GMT
Modified: incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java?rev=911418&r1=911417&r2=911418&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java
(original)
+++ incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java
Thu Feb 18 14:31:31 2010
@@ -66,8 +66,8 @@
         public void install()
                 throws LCFException
         {
-                beginTransaction();
-                try
+                // Always have an outer loop, in case retries required
+                while (true)
                 {
                         Map existing = getTableSchema(null,null);
                         if (existing == null)
@@ -83,22 +83,12 @@
                         }
                         else
                         {
-                                // No upgrade needed yet, since rev 1 of the table is fine.
+                                // Upgrade code, if needed, goes here.
                         }
-                }
-                catch (LCFException e)
-                {
-                        signalRollback();
-                        throw e;
-                }
-                catch (Error e)
-                {
-                        signalRollback();
-                        throw e;
-                }
-                finally
-                {
-                        endTransaction();
+                        
+                        // Index management code goes here.
+                        
+                        break;
                 }
         }
 

Modified: incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnmgr/OutputConnectorManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnmgr/OutputConnectorManager.java?rev=911418&r1=911417&r2=911418&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnmgr/OutputConnectorManager.java
(original)
+++ incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnmgr/OutputConnectorManager.java
Thu Feb 18 14:31:31 2010
@@ -53,8 +53,8 @@
         public void install()
                 throws LCFException
         {
-                beginTransaction();
-                try
+                // Always have an outer loop, in case upgrade needs it.
+                while (true)
                 {
                         Map existing = getTableSchema(null,null);
                         if (existing == null)
@@ -64,26 +64,35 @@
                                 map.put(classNameField,new ColumnDescription("VARCHAR(255)",true,false,null,null,false));
 
                                 performCreate(map,null);
-
-                                // This index is here to enforce uniqueness
-                                ArrayList list = new ArrayList();
-                                list.add(descriptionField);
-                                addTableIndex(true,list);
                         }
-                }
-                catch (LCFException e)
-                {
-                        signalRollback();
-                        throw e;
-                }
-                catch (Error e)
-                {
-                        signalRollback();
-                        throw e;
-                }
-                finally
-                {
-                        endTransaction();
+                        else
+                        {
+                                // Schema upgrade goes here.
+                        }
+                        
+                        // Index management
+                        IndexDescription descriptionIndex = new IndexDescription(true,new
String[]{descriptionField});
+                        
+                        // Get rid of indexes that shouldn't be there
+                        Map indexes = getTableIndexes(null,null);
+                        Iterator iter = indexes.keySet().iterator();
+                        while (iter.hasNext())
+                        {
+                                String indexName = (String)iter.next();
+                                IndexDescription id = (IndexDescription)indexes.get(indexName);
+                            
+                                if (descriptionIndex != null && id.equals(descriptionIndex))
+                                        descriptionIndex = null;
+                                else if (indexName.indexOf("_pkey") == -1)
+                                        // This index shouldn't be here; drop it
+                                        performRemoveIndex(indexName);
+                        }
+
+                        // Add the ones we didn't find
+                        if (descriptionIndex != null)
+                                performAddIndex(null,descriptionIndex);
+                        
+                        break;
                 }
         }
 

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/authorities/authconnmgr/AuthorityConnectorManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/authorities/authconnmgr/AuthorityConnectorManager.java?rev=911418&r1=911417&r2=911418&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/authorities/authconnmgr/AuthorityConnectorManager.java
(original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/authorities/authconnmgr/AuthorityConnectorManager.java
Thu Feb 18 14:31:31 2010
@@ -27,256 +27,265 @@
 */
 public class AuthorityConnectorManager extends org.apache.lcf.core.database.BaseTable implements
IAuthorityConnectorManager
 {
-	public static final String _rcsid = "@(#)$Id$";
+        public static final String _rcsid = "@(#)$Id$";
 
-	// Fields
-	protected static final String descriptionField = "description";
-	protected static final String classNameField = "classname";
-
-	// Thread context
-	protected IThreadContext threadContext;
-
-	/** Constructor.
-	*@param threadContext is the thread context.
-	*@param database is the database handle.
-	*/
-	public AuthorityConnectorManager(IThreadContext threadContext, IDBInterface database)
-		throws LCFException
-	{
-		super(database,"authconnectors");
-		this.threadContext = threadContext;
-	}
-
-
-	/** Install or upgrade.
-	*/
-	public void install()
-		throws LCFException
-	{
-		beginTransaction();
-		try
-		{
-			Map existing = getTableSchema(null,null);
-			if (existing == null)
-			{
-				HashMap map = new HashMap();
-				map.put(descriptionField,new ColumnDescription("VARCHAR(255)",false,false,null,null,false));
-				map.put(classNameField,new ColumnDescription("VARCHAR(255)",true,false,null,null,false));
-
-				performCreate(map,null);
-
-				// This index is here to enforce uniqueness
-				ArrayList list = new ArrayList();
-				list.add(descriptionField);
-				addTableIndex(true,list);
-			}
-		}
-		catch (LCFException e)
-		{
-			signalRollback();
-			throw e;
-		}
-		catch (Error e)
-		{
-			signalRollback();
-			throw e;
-		}
-		finally
-		{
-			endTransaction();
-		}
-	}
-
-
-	/** Uninstall.  This also unregisters all connectors.
-	*/
-	public void deinstall()
-		throws LCFException
-	{
-		StringSet invKeys = new StringSet(getCacheKey());
-
-		// First, go through all registered connectors.  This is all inside a transaction.
-		beginTransaction();
-		try
-		{
-			IResultSet set = performQuery("SELECT "+classNameField+" FROM "+getTableName(),null,null,null);
-			int i = 0;
-			while (i < set.getRowCount())
-			{
-				IResultRow row = set.getRow(i++);
-				String className = row.getValue(classNameField).toString();
-				// Call the deinstall method
-				AuthorityConnectorFactory.deinstall(threadContext,className);
-			}
-			performDrop(invKeys);
-		}
-		catch (LCFException e)
-		{
-			signalRollback();
-			throw e;
-		}
-		catch (Error e)
-		{
-			signalRollback();
-			throw e;
-		}
-		finally
-		{
-			endTransaction();
-		}
-	}
-
-	/** Register a new connector.
-	* The connector's install method will also be called.
-	*@param description is the description to use in the UI.
-	*@param className is the class name.
-	*/
-	public void registerConnector(String description, String className)
-		throws LCFException
-	{
-		StringSet invKeys = new StringSet(getCacheKey());
-		beginTransaction();
-		try
-		{
-			performLock();
-			// See if already there.
-			ArrayList params = new ArrayList();
-			params.add(className);
-			IResultSet set = performQuery("SELECT * FROM "+getTableName()+" WHERE "+classNameField+"=?
FOR UPDATE",params,null,null);
-			HashMap map = new HashMap();
-			map.put(descriptionField,description);
-			if (set.getRowCount() == 0)
-			{
-				// Insert it into table first.
-				map.put(classNameField,className);
-				performInsert(map,invKeys);
-			}
-			else
-			{
-				performUpdate(map,"WHERE "+classNameField+"=?",params,invKeys);
-			}				
-
-			// Either way, we must do the install/upgrade itself.
-			AuthorityConnectorFactory.install(threadContext,className);
-		}
-		catch (LCFException e)
-		{
-			signalRollback();
-			throw e;
-		}
-		catch (Error e)
-		{
-			signalRollback();
-			throw e;
-		}
-		finally
-		{
-			endTransaction();
-		}
-	}
-
-	/** Unregister a connector.
-	* The connector's deinstall method will also be called.
-	*@param description is the description to unregister.
-	*/
-	public void unregisterConnector(String className)
-		throws LCFException
-	{
-		StringSet invKeys = new StringSet(getCacheKey());
-		beginTransaction();
-		try
-		{
-			// Uninstall first
-			AuthorityConnectorFactory.deinstall(threadContext,className);
-
-			removeConnector(className);
-		}
-		catch (LCFException e)
-		{
-			signalRollback();
-			throw e;
-		}
-		catch (Error e)
-		{
-			signalRollback();
-			throw e;
-		}
-		finally
-		{
-			endTransaction();
-		}
-	}
-
-	/** Remove a connector.
-	* Call this when the connector cannot be instantiated.
-	*@param className is the connector class to remove.
-	*/
-	public void removeConnector(String className)
-		throws LCFException
-	{
-		StringSet invKeys = new StringSet(getCacheKey());
-		ArrayList list = new ArrayList();
-		list.add(className);
-		performDelete("WHERE "+classNameField+"=?",list,invKeys);
-	}
-
-	/** Get ordered list of connectors.
-	*@return a resultset with the columns "description" and "classname".
-	* These will be ordered by description.
-	*/
-	public IResultSet getConnectors()
-		throws LCFException
-	{
-		StringSet invKeys = new StringSet(getCacheKey());
-
-		return performQuery("SELECT "+descriptionField+" AS description,"+classNameField+" AS classname
FROM "+
-			getTableName()+" ORDER BY "+descriptionField+" ASC",null,invKeys,null);
-	}
-
-	/** Get a description given a class name.
-	*@param className is the class name.
-	*@return the description, or null if the class is not registered.
-	*/
-	public String getDescription(String className)
-		throws LCFException
-	{
-		StringSet invKeys = new StringSet(getCacheKey());
-
-		ArrayList list = new ArrayList();
-		list.add(className);
-		IResultSet set = performQuery("SELECT "+descriptionField+" FROM "+
-			getTableName()+" WHERE "+classNameField+"=?",list,invKeys,null);
-		if (set.getRowCount() == 0)
-			return null;
-		IResultRow row = set.getRow(0);
-		return row.getValue(descriptionField).toString();
-	}
-
-	/** Check if a particular connector is installed or not.
-	*@param className is the class name of the connector.
-	*@return true if installed, false otherwise.
-	*/
-	public boolean isInstalled(String className)
-		throws LCFException
-	{
-		// Use the global table key; that's good enough because we don't expect stuff to change
out from under very often.
-		StringSet invKeys = new StringSet(getCacheKey());
-		
-		ArrayList list = new ArrayList();
-		list.add(className);
-		IResultSet set = performQuery("SELECT * FROM "+
-			getTableName()+" WHERE "+classNameField+"=?",list,invKeys,null);
-		return set.getRowCount() > 0;
-	}
-
-	// Protected methods
-
-	/** Get the cache key for the connector manager table.
-	*@return the cache key
-	*/
-	protected String getCacheKey()
-	{
-		return CacheKeyFactory.makeTableKey(null,getTableName(),getDBInterface().getDatabaseName());
-	}
+        // Fields
+        protected static final String descriptionField = "description";
+        protected static final String classNameField = "classname";
+
+        // Thread context
+        protected IThreadContext threadContext;
+
+        /** Constructor.
+        *@param threadContext is the thread context.
+        *@param database is the database handle.
+        */
+        public AuthorityConnectorManager(IThreadContext threadContext, IDBInterface database)
+                throws LCFException
+        {
+                super(database,"authconnectors");
+                this.threadContext = threadContext;
+        }
+
+
+        /** Install or upgrade.
+        */
+        public void install()
+                throws LCFException
+        {
+                // Always use a loop, in case there's upgrade retries needed.
+                while (true)
+                {
+                        Map existing = getTableSchema(null,null);
+                        if (existing == null)
+                        {
+                                HashMap map = new HashMap();
+                                map.put(descriptionField,new ColumnDescription("VARCHAR(255)",false,false,null,null,false));
+                                map.put(classNameField,new ColumnDescription("VARCHAR(255)",true,false,null,null,false));
+
+                                performCreate(map,null);
+                        }
+                        else
+                        {
+                                // Schema upgrade code goes here, if needed.
+                        }
+                        
+                        // Index management
+                        IndexDescription descriptionIndex = new IndexDescription(true,new
String[]{descriptionField});
+                        
+                        // Get rid of indexes that shouldn't be there
+                        Map indexes = getTableIndexes(null,null);
+                        Iterator iter = indexes.keySet().iterator();
+                        while (iter.hasNext())
+                        {
+                                String indexName = (String)iter.next();
+                                IndexDescription id = (IndexDescription)indexes.get(indexName);
+                            
+                                if (descriptionIndex != null && id.equals(descriptionIndex))
+                                        descriptionIndex = null;
+                                else if (indexName.indexOf("_pkey") == -1)
+                                        // This index shouldn't be here; drop it
+                                        performRemoveIndex(indexName);
+                        }
+
+                        // Add the ones we didn't find
+                        if (descriptionIndex != null)
+                                performAddIndex(null,descriptionIndex);
+                        
+                        break;
+                }
+        }
+
+
+        /** Uninstall.  This also unregisters all connectors.
+        */
+        public void deinstall()
+                throws LCFException
+        {
+                StringSet invKeys = new StringSet(getCacheKey());
+
+                // First, go through all registered connectors.  This is all inside a transaction.
+                beginTransaction();
+                try
+                {
+                        IResultSet set = performQuery("SELECT "+classNameField+" FROM "+getTableName(),null,null,null);
+                        int i = 0;
+                        while (i < set.getRowCount())
+                        {
+                                IResultRow row = set.getRow(i++);
+                                String className = row.getValue(classNameField).toString();
+                                // Call the deinstall method
+                                AuthorityConnectorFactory.deinstall(threadContext,className);
+                        }
+                        performDrop(invKeys);
+                }
+                catch (LCFException e)
+                {
+                        signalRollback();
+                        throw e;
+                }
+                catch (Error e)
+                {
+                        signalRollback();
+                        throw e;
+                }
+                finally
+                {
+                        endTransaction();
+                }
+        }
+
+        /** Register a new connector.
+        * The connector's install method will also be called.
+        *@param description is the description to use in the UI.
+        *@param className is the class name.
+        */
+        public void registerConnector(String description, String className)
+                throws LCFException
+        {
+                StringSet invKeys = new StringSet(getCacheKey());
+                beginTransaction();
+                try
+                {
+                        performLock();
+                        // See if already there.
+                        ArrayList params = new ArrayList();
+                        params.add(className);
+                        IResultSet set = performQuery("SELECT * FROM "+getTableName()+" WHERE
"+classNameField+"=? FOR UPDATE",params,null,null);
+                        HashMap map = new HashMap();
+                        map.put(descriptionField,description);
+                        if (set.getRowCount() == 0)
+                        {
+                                // Insert it into table first.
+                                map.put(classNameField,className);
+                                performInsert(map,invKeys);
+                        }
+                        else
+                        {
+                                performUpdate(map,"WHERE "+classNameField+"=?",params,invKeys);
+                        }				
+
+                        // Either way, we must do the install/upgrade itself.
+                        AuthorityConnectorFactory.install(threadContext,className);
+                }
+                catch (LCFException e)
+                {
+                        signalRollback();
+                        throw e;
+                }
+                catch (Error e)
+                {
+                        signalRollback();
+                        throw e;
+                }
+                finally
+                {
+                        endTransaction();
+                }
+        }
+
+        /** Unregister a connector.
+        * The connector's deinstall method will also be called.
+        *@param description is the description to unregister.
+        */
+        public void unregisterConnector(String className)
+                throws LCFException
+        {
+                StringSet invKeys = new StringSet(getCacheKey());
+                beginTransaction();
+                try
+                {
+                        // Uninstall first
+                        AuthorityConnectorFactory.deinstall(threadContext,className);
+
+                        removeConnector(className);
+                }
+                catch (LCFException e)
+                {
+                        signalRollback();
+                        throw e;
+                }
+                catch (Error e)
+                {
+                        signalRollback();
+                        throw e;
+                }
+                finally
+                {
+                        endTransaction();
+                }
+        }
+
+        /** Remove a connector.
+        * Call this when the connector cannot be instantiated.
+        *@param className is the connector class to remove.
+        */
+        public void removeConnector(String className)
+                throws LCFException
+        {
+                StringSet invKeys = new StringSet(getCacheKey());
+                ArrayList list = new ArrayList();
+                list.add(className);
+                performDelete("WHERE "+classNameField+"=?",list,invKeys);
+        }
+
+        /** Get ordered list of connectors.
+        *@return a resultset with the columns "description" and "classname".
+        * These will be ordered by description.
+        */
+        public IResultSet getConnectors()
+                throws LCFException
+        {
+                StringSet invKeys = new StringSet(getCacheKey());
+
+                return performQuery("SELECT "+descriptionField+" AS description,"+classNameField+"
AS classname FROM "+
+                        getTableName()+" ORDER BY "+descriptionField+" ASC",null,invKeys,null);
+        }
+
+        /** Get a description given a class name.
+        *@param className is the class name.
+        *@return the description, or null if the class is not registered.
+        */
+        public String getDescription(String className)
+                throws LCFException
+        {
+                StringSet invKeys = new StringSet(getCacheKey());
+
+                ArrayList list = new ArrayList();
+                list.add(className);
+                IResultSet set = performQuery("SELECT "+descriptionField+" FROM "+
+                        getTableName()+" WHERE "+classNameField+"=?",list,invKeys,null);
+                if (set.getRowCount() == 0)
+                        return null;
+                IResultRow row = set.getRow(0);
+                return row.getValue(descriptionField).toString();
+        }
+
+        /** Check if a particular connector is installed or not.
+        *@param className is the class name of the connector.
+        *@return true if installed, false otherwise.
+        */
+        public boolean isInstalled(String className)
+                throws LCFException
+        {
+                // Use the global table key; that's good enough because we don't expect stuff
to change out from under very often.
+                StringSet invKeys = new StringSet(getCacheKey());
+                
+                ArrayList list = new ArrayList();
+                list.add(className);
+                IResultSet set = performQuery("SELECT * FROM "+
+                        getTableName()+" WHERE "+classNameField+"=?",list,invKeys,null);
+                return set.getRowCount() > 0;
+        }
+
+        // Protected methods
+
+        /** Get the cache key for the connector manager table.
+        *@return the cache key
+        */
+        protected String getCacheKey()
+        {
+                return CacheKeyFactory.makeTableKey(null,getTableName(),getDBInterface().getDatabaseName());
+        }
 
 }

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/authorities/authority/AuthorityConnectionManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/authorities/authority/AuthorityConnectionManager.java?rev=911418&r1=911417&r2=911418&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/authorities/authority/AuthorityConnectionManager.java
(original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/authorities/authority/AuthorityConnectionManager.java
Thu Feb 18 14:31:31 2010
@@ -64,9 +64,9 @@
 	public void install()
 		throws LCFException
 	{
-		beginTransaction();
-		try
-		{
+                // Always do a loop, in case upgrade needs it.
+                while (true)
+                {
 			Map existing = getTableSchema(null,null);
 			if (existing == null)
 			{
@@ -81,57 +81,12 @@
 			}
 			else
 			{
-				if (existing.get(configField) == null)
-				{
-					// Add the configField column, and transfer data into it from the old configuration
table
-					HashMap map = new HashMap();
-					map.put(configField,new ColumnDescription("LONGTEXT",false,true,null,null,false));
-					performAlter(map,null,null,null);
-					IResultSet set = getDBInterface().performQuery("SELECT * FROM authconfigs",null,null,null);
-					int i = 0;
-					Map xmlMap = new HashMap();
-					while (i < set.getRowCount())
-					{
-						IResultRow row = set.getRow(i++);
-						String owner = (String)row.getValue("owner");
-						String name = (String)row.getValue("name");
-						String value = (String)row.getValue("value");
-						ConfigParams cp = (ConfigParams)xmlMap.get(owner);
-						if (cp == null)
-						{
-							cp = new ConfigParams();
-							xmlMap.put(owner,cp);
-						}
-						cp.setParameter(name,value);
-					}
-					getDBInterface().performDrop("authconfigs",null);
-					Iterator iter = xmlMap.keySet().iterator();
-					while (iter.hasNext())
-					{
-						String owner = (String)iter.next();
-						ConfigParams cp = (ConfigParams)xmlMap.get(owner);
-						map = new HashMap();
-						ArrayList list = new ArrayList();
-						list.add(owner);
-						map.put(configField,cp.toXML());
-						performUpdate(map,"WHERE "+nameField+"=?",list,null);
-					}
-				}
+                                // Upgrade code goes here
 			}
-		}
-		catch (LCFException e)
-		{
-			signalRollback();
-			throw e;
-		}
-		catch (Error e)
-		{
-			signalRollback();
-			throw e;
-		}
-		finally
-		{
-			endTransaction();
+                        
+                        // Index management goes here
+                        
+                        break;
 		}
 	}
 

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/connmgr/ConnectorManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/connmgr/ConnectorManager.java?rev=911418&r1=911417&r2=911418&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/connmgr/ConnectorManager.java
(original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/connmgr/ConnectorManager.java
Thu Feb 18 14:31:31 2010
@@ -53,8 +53,8 @@
 	public void install()
 		throws LCFException
 	{
-		beginTransaction();
-		try
+		// Always do an outer loop, to support upgrade complexities
+		while (true)
 		{
 			Map existing = getTableSchema(null,null);
 			if (existing == null)
@@ -64,26 +64,31 @@
 				map.put(classNameField,new ColumnDescription("VARCHAR(255)",true,false,null,null,false));
 
 				performCreate(map,null);
-
-				// This index is here to enforce uniqueness
-				ArrayList list = new ArrayList();
-				list.add(descriptionField);
-				addTableIndex(true,list);
 			}
-		}
-		catch (LCFException e)
-		{
-			signalRollback();
-			throw e;
-		}
-		catch (Error e)
-		{
-			signalRollback();
-			throw e;
-		}
-		finally
-		{
-			endTransaction();
+			
+			// Index management
+			IndexDescription descriptionIndex = new IndexDescription(true,new String[]{descriptionField});
+                        
+			// Get rid of indexes that shouldn't be there
+			Map indexes = getTableIndexes(null,null);
+			Iterator iter = indexes.keySet().iterator();
+			while (iter.hasNext())
+			{
+				String indexName = (String)iter.next();
+				IndexDescription id = (IndexDescription)indexes.get(indexName);
+                            
+				if (descriptionIndex != null && id.equals(descriptionIndex))
+					descriptionIndex = null;
+				else if (indexName.indexOf("_pkey") == -1)
+					// This index shouldn't be here; drop it
+					performRemoveIndex(indexName);
+			}
+
+			// Add the ones we didn't find
+			if (descriptionIndex != null)
+				performAddIndex(null,descriptionIndex);
+
+			break;
 		}
 	}
 



Mime
View raw message