You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2010/06/30 07:30:56 UTC

svn commit: r959194 - /portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/tools/migration/JetspeedRegistryMigration.java

Author: rwatler
Date: Wed Jun 30 05:30:56 2010
New Revision: 959194

URL: http://svn.apache.org/viewvc?rev=959194&view=rev
Log:
Jetspeed Migration: ensure portlet preference values have owning parent before inserting on 2.1.X to 2.2.X migration since orphan preferences will be dropped

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/tools/migration/JetspeedRegistryMigration.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/tools/migration/JetspeedRegistryMigration.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/tools/migration/JetspeedRegistryMigration.java?rev=959194&r1=959193&r2=959194&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/tools/migration/JetspeedRegistryMigration.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/tools/migration/JetspeedRegistryMigration.java Wed Jun 30 05:30:56 2010
@@ -516,15 +516,30 @@ public class JetspeedRegistryMigration i
             case JETSPEED_SCHEMA_VERSION_2_1_4:
             {
                 portletPreferenceValueResultSet = portletPreferenceValueQueryStatement.executeQuery("SELECT V.PROPERTY_VALUE_ID, N.NODE_ID, V.PROPERTY_NAME, V.PROPERTY_VALUE FROM PREFS_PROPERTY_VALUE V, PREFS_NODE N, PREFS_NODE NV WHERE NV.NODE_ID = V.NODE_ID AND NV.FULL_PATH LIKE '%/values' AND N.NODE_ID = NV.PARENT_NODE_ID");
+                PreparedStatement portletPreferenceIdQueryStatement = targetConnection.prepareStatement("SELECT ID FROM PORTLET_PREFERENCE WHERE ID = ?");
                 while (portletPreferenceValueResultSet.next())
                 {
-                    portletPreferenceValueInsertStatement.setInt(1, portletPreferenceValueResultSet.getInt(1));
-                    portletPreferenceValueInsertStatement.setInt(2, portletPreferenceValueResultSet.getInt(2));
-                    portletPreferenceValueInsertStatement.setShort(3, Short.parseShort(portletPreferenceValueResultSet.getString(3)));
-                    portletPreferenceValueInsertStatement.setString(4, portletPreferenceValueResultSet.getString(4));
-                    portletPreferenceValueInsertStatement.executeUpdate();
-                    rowsMigrated++;
+                    int portletPreferenceId = portletPreferenceValueResultSet.getInt(2);
+                    portletPreferenceIdQueryStatement.setInt(1, portletPreferenceId);
+                    ResultSet portletPreferenceIdResultSet = portletPreferenceIdQueryStatement.executeQuery();
+                    boolean portletPreferenceIdExists = portletPreferenceIdResultSet.next();
+                    portletPreferenceIdResultSet.close();
+                    
+                    if (portletPreferenceIdExists)
+                    {
+                        portletPreferenceValueInsertStatement.setInt(1, portletPreferenceValueResultSet.getInt(1));
+                        portletPreferenceValueInsertStatement.setInt(2, portletPreferenceId);
+                        portletPreferenceValueInsertStatement.setShort(3, Short.parseShort(portletPreferenceValueResultSet.getString(3)));
+                        portletPreferenceValueInsertStatement.setString(4, portletPreferenceValueResultSet.getString(4));
+                        portletPreferenceValueInsertStatement.executeUpdate();
+                        rowsMigrated++;
+                    }
+                    else
+                    {
+                        rowsDropped++;
+                    }
                 }
+                portletPreferenceIdQueryStatement.close();
             }
             break;
             case JETSPEED_SCHEMA_VERSION_2_2_0:



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org