Subversion Repositories DevTools

Rev

Rev 6914 | Rev 7032 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6914 Rev 7023
Line 24... Line 24...
24
 
24
 
25
import org.apache.log4j.Logger;
25
import org.apache.log4j.Logger;
26
 
26
 
27
import com.erggroup.buildtool.ripple.RunLevel.BuildState;
27
import com.erggroup.buildtool.ripple.RunLevel.BuildState;
28
import com.erggroup.buildtool.utilities.MutableDate;
28
import com.erggroup.buildtool.utilities.MutableDate;
29
import com.erggroup.buildtool.utilities.MutableInt;
-
 
30
import com.erggroup.buildtool.utilities.MutableString;
-
 
31
 
29
 
32
/**Release Manager schema abstraction
30
/**Release Manager schema abstraction
33
 */
31
 */
34
public class ReleaseManager implements Cloneable
32
public class ReleaseManager implements Cloneable
35
{
33
{
Line 1277... Line 1275...
1277
            disconnect();
1275
            disconnect();
1278
        }
1276
        }
1279
    }
1277
    }
1280
 
1278
 
1281
    /**executes the get_daemon_inst function with the passed parameters
1279
    /**executes the get_daemon_inst function with the passed parameters
1282
     * @param   rtagId          - Release to examine
-
 
1283
     * @param   opCode          - Type of instruction to process
1280
     * @param   di          - Daemon Instruction Control Data Information
1284
     * @param   instruction     - In/Out daemon instruction identifier Start scan from this instruction
-
 
1285
     * @param   pvId            - Returns Pvid from instruction
-
 
1286
     * @param   userId          - Returns userId of creator
1281
     * 
1287
     * @param   userEmail       - Returns email address of userId
-
 
1288
     * @return  true if an instruction exists - for use in a while loop
1282
     * @return  true if an instruction exists - for use in a while loop
1289
     */
1283
     */
1290
    private boolean getDaemonInst(final int rtagId, final int opCode, 
1284
    public boolean getDaemonInst(DaemonInstruction di ) throws SQLException, Exception
1291
            MutableInt instruction, MutableInt pvId, MutableInt userId, MutableString userEmail ) throws SQLException, Exception
-
 
1292
    {
1285
    {
1293
        mLogger.debug("getDaemonInst " + instruction);
1286
        mLogger.debug("getDaemonInst " + di.instruction);
1294
        boolean retVal = false;
1287
        boolean retVal = false;
1295
 
1288
 
1296
        if ( mUseDatabase )
1289
        if ( mUseDatabase )
1297
        {
1290
        {
1298
            try
1291
            try
1299
            {
1292
            {
1300
                CallableStatement stmt = mConnection.prepareCall( "begin ? := PK_BUILDAPI.GET_DAEMON_INST(?,?,?,?,?,?); end;" );
1293
                CallableStatement stmt = mConnection.prepareCall( "begin ? := PK_BUILDAPI.GET_DAEMON_INST(?,?,?,?,?,?,?); end;" );
1301
                stmt.registerOutParameter(1, Types.INTEGER);
1294
                stmt.registerOutParameter(1, Types.INTEGER);
1302
                stmt.registerOutParameter(3, Types.INTEGER);
1295
                stmt.registerOutParameter(3, Types.INTEGER);
1303
                stmt.registerOutParameter(4, Types.INTEGER);
1296
                stmt.registerOutParameter(4, Types.INTEGER);
1304
                stmt.registerOutParameter(5, Types.INTEGER);
1297
                stmt.registerOutParameter(5, Types.INTEGER);
1305
                stmt.registerOutParameter(6, Types.INTEGER);
1298
                stmt.registerOutParameter(6, Types.INTEGER);
1306
                stmt.registerOutParameter(7, Types.INTEGER);
1299
                stmt.registerOutParameter(7, Types.INTEGER);
1307
                stmt.setInt(2, rtagId );
1300
                stmt.setInt(2, di.rtag_id );
1308
                stmt.setInt( 3, instruction.value );
1301
                stmt.setInt( 3, di.instruction );
1309
                stmt.setInt( 4, opCode );
1302
                stmt.setInt( 4, di.opCode );
-
 
1303
                stmt.setInt(8, di.expired ? 1 : 0);
1310
                stmt.execute();
1304
                stmt.execute();
1311
                int result = stmt.getInt( 1 );
1305
                int result = stmt.getInt( 1 );
1312
 
1306
 
1313
                if ( result == 1 )
1307
                if ( result == 1 )
1314
                {
1308
                {
1315
                    retVal = true;
1309
                    retVal = true;
1316
                    instruction.value = stmt.getInt( 3 );
1310
                    di.instruction = stmt.getInt( 3 );
1317
                    pvId.value = stmt.getInt( 5 );
1311
                    di.pvId = stmt.getInt( 5 );
1318
                    userId.value = stmt.getInt( 6 );
1312
                    di.userId = stmt.getInt( 6 );
1319
                
1313
                
1320
                    //
1314
                    //
1321
                    //  Convert userId into an email address
1315
                    //  Convert userId into an email address
1322
                    //
1316
                    //
1323
                    CallableStatement stmt1 = mConnection.prepareCall(
1317
                    CallableStatement stmt1 = mConnection.prepareCall(
1324
                            "select user_email from release_manager.users where user_id=" + userId.value);
1318
                            "select user_email from release_manager.users where user_id=" + di.userId);
1325
                    ResultSet rset1 = stmt1.executeQuery();
1319
                    ResultSet rset1 = stmt1.executeQuery();
1326
    
1320
    
1327
                    while( rset1.next() )
1321
                    while( rset1.next() )
1328
                    {
1322
                    {
1329
                        userEmail.value = rset1.getString("user_email");
1323
                        di.userEmail = rset1.getString("user_email");
1330
                        if (rset1.wasNull())
1324
                        if (rset1.wasNull())
1331
                        {
1325
                        {
1332
                            userEmail.value = "";
1326
                            di.userEmail = "";
1333
                        }
1327
                        }
1334
                    }
1328
                    }
1335
    
1329
    
1336
                    rset1.close();
1330
                    rset1.close();
1337
                    stmt1.close();
1331
                    stmt1.close();
Line 1346... Line 1340...
1346
                handleSQLException(e, "");
1340
                handleSQLException(e, "");
1347
            }
1341
            }
1348
        }
1342
        }
1349
        return retVal;
1343
        return retVal;
1350
    }
1344
    }
1351
 
1345
    
1352
    /** Mark a Daemon Instruction as in-progress
1346
    /** Mark a Daemon Instruction as in-progress
1353
     *  Assumes that a database connection has been established
1347
     *  Assumes that a database connection has been established
1354
     *  Assumes that the connection is within a Mutex session and the database commit will be done elsewhere
1348
     *  Assumes that the connection is within a Mutex session and the database commit will be done elsewhere
1355
     *  
1349
     *  
1356
     *  @param  instruction - PVID of the daemon instruction to process
1350
     *  @param  instruction - PVID of the daemon instruction to process
Line 2097... Line 2091...
2097
            stmt.setFetchSize(10);
2091
            stmt.setFetchSize(10);
2098
            stmt.setInt(1, rtag_id);
2092
            stmt.setInt(1, rtag_id);
2099
            stmt.setInt(2, rcon_id);
2093
            stmt.setInt(2, rcon_id);
2100
            stmt.setString(3, machine_hostname);
2094
            stmt.setString(3, machine_hostname);
2101
            stmt.setString(4, Character.toString(daemon_mode));
2095
            stmt.setString(4, Character.toString(daemon_mode));
2102
            ResultSet rset = stmt.executeQuery();
2096
            RmResultSet rset = new RmResultSet(stmt.executeQuery(),"queryReleaseConfig 1");
2103
            int rsetSize = 0;
2097
            int rsetSize = 0;
2104
 
2098
 
2105
            while( rset.next() )
2099
            while( rset.next() )
2106
            {
2100
            {
2107
                rsetSize++;
2101
                rsetSize++;
Line 2109... Line 2103...
2109
                //
2103
                //
2110
                //  Pause: null -> 0 == Run
2104
                //  Pause: null -> 0 == Run
2111
                //         1         == Pause
2105
                //         1         == Pause
2112
                //         2         == Disabled
2106
                //         2         == Disabled
2113
                //
2107
                //
2114
                int pause = rset.getInt("pause");
2108
                int pause = rset.getInt("pause",0);
2115
                if ( rset.wasNull() )
-
 
2116
                {
-
 
2117
                    pause = 0;
-
 
2118
                }
-
 
2119
 
-
 
2120
                //
-
 
2121
                //  build_age
-
 
2122
                //
-
 
2123
                int build_age = rset.getInt("build_age");
2109
                int build_age = rset.getInt("build_age", 0);
2124
                if ( rset.wasNull() )
-
 
2125
                {
-
 
2126
                    build_age = 0;
-
 
2127
                }
-
 
2128
 
-
 
2129
                //
-
 
2130
                // days since last build
-
 
2131
                //
-
 
2132
                int days_since_last_build = rset.getInt("last_build_days");
2110
                int days_since_last_build = rset.getInt("last_build_days", 0);
2133
                if ( rset.wasNull() )
-
 
2134
                {
-
 
2135
                    days_since_last_build = 0;
-
 
2136
                }
-
 
2137
 
2111
 
2138
                //
2112
                //
2139
                //  Determine if we should disable the daemons on this release because they have not been
2113
                //  Determine if we should disable the daemons on this release because they have not been
2140
                //  used in a long while.
2114
                //  used in a long while.
2141
                //
2115
                //
Line 2229... Line 2203...
2229
                    "        and mt.gbe_id=bc.gbe_id" +
2203
                    "        and mt.gbe_id=bc.gbe_id" +
2230
                    "        and mt.bm_id=bm.bm_id"
2204
                    "        and mt.bm_id=bm.bm_id"
2231
                    );
2205
                    );
2232
            stmt.setFetchSize(10);
2206
            stmt.setFetchSize(10);
2233
            stmt.setInt(1, rtag_id);
2207
            stmt.setInt(1, rtag_id);
2234
            ResultSet rset = stmt.executeQuery();
2208
            RmResultSet rset = new RmResultSet(stmt.executeQuery(),"queryReleaseConfig 2");
2235
 
2209
 
2236
            while( rset.next() )
2210
            while( rset.next() )
2237
            {
2211
            {
2238
                int rcon_id = rset.getInt("rcon_id");
2212
                int rcon_id = rset.mustGetInt("rcon_id");
2239
 
-
 
2240
                if ( rset.wasNull() )
-
 
2241
                {
-
 
2242
                    mLogger.fatal("queryReleaseConfig 2 null rcon_id " + rtag_id);
-
 
2243
                    // show stopper
-
 
2244
                    throw new Exception("queryReleaseConfig 2 null rcon_id " + rtag_id);
-
 
2245
                }
2213
                
2246
 
-
 
2247
                char dm = 'S';          
2214
                char dm = 'S';          
2248
                String daemon_mode = rset.getString("daemon_mode");
2215
                String daemon_mode = rset.getString("daemon_mode","S");
2249
 
-
 
2250
                if ( daemon_mode != null )
-
 
2251
                {
2216
               
2252
                    mLogger.info("queryReleaseConfig 2 daemon_mode " + daemon_mode + ".");
2217
                mLogger.info("queryReleaseConfig 2 daemon_mode " + daemon_mode + ".");
2253
 
-
 
2254
                    if ( daemon_mode.compareTo("M") == 0 )
-
 
2255
                    {
-
 
2256
                        dm = 'M';
-
 
2257
                    }
-
 
2258
                }
-
 
2259
 
-
 
2260
                String machine_hostname = rset.getString("machine_hostname");
-
 
2261
                if (machine_hostname == null)
-
 
2262
                {
-
 
2263
                    mLogger.fatal("queryReleaseConfig 2 null machine_hostname " + rtag_id);
-
 
2264
                    throw new Exception("queryReleaseConfig 2 null machine_hostname " + rtag_id);
-
 
2265
                }
-
 
2266
 
-
 
2267
                String gbe_buildfilter = rset.getString("gbe_buildfilter");
-
 
2268
 
2218
 
2269
                String gbe_machtype = rset.getString("gbe_value");
-
 
2270
                if (gbe_machtype == null)
2219
                if ( daemon_mode.compareTo("M") == 0 )
2271
                {
2220
                {
2272
                    mLogger.fatal("queryReleaseConfig 2 null gbe_value " + rtag_id);
-
 
2273
                    throw new Exception("queryReleaseConfig 2 null gbe_value " + rtag_id);
-
 
2274
                }
2221
                    dm = 'M';
2275
 
-
 
2276
                String gbe_machclass = rset.getString("bm_name");
-
 
2277
                if (gbe_machclass == null)
-
 
2278
                {
-
 
2279
                    mLogger.fatal("queryReleaseConfig 2 null bm_name " + rtag_id);
-
 
2280
                    throw new Exception("queryReleaseConfig 2 null bm_name " + rtag_id);
-
 
2281
                }
2222
                }
2282
 
2223
 
-
 
2224
                String machine_hostname = rset.mustGetString("machine_hostname");
-
 
2225
                String gbe_buildfilter = rset.getString("gbe_buildfilter","");
-
 
2226
                String gbe_machtype = rset.mustGetString("gbe_value");
-
 
2227
                String gbe_machclass = rset.mustGetString("bm_name");
2283
                //
2228
                //
2284
                //  Pause: null -> 0 == Run
2229
                //  Pause: null -> 0 == Run
2285
                //         1         == Pause
2230
                //         1         == Pause
2286
                //         2         == Disabled
2231
                //         2         == Disabled
2287
                //
2232
                //
2288
                int pause = rset.getInt("pause");
2233
                int pause = rset.getInt("pause",0);
2289
                if ( rset.wasNull() )
-
 
2290
                {
-
 
2291
                    pause = 0;
-
 
2292
                }
-
 
2293
                mLogger.info("queryReleaseConfig 2: " + rtag_id + ", " + rcon_id + ", "+ dm + ", " + pause + 
2234
                mLogger.info("queryReleaseConfig 2: " + rtag_id + ", " + rcon_id + ", "+ dm + ", " + pause + 
2294
                        ", " + machine_hostname + ", " + gbe_buildfilter + ", " + gbe_machtype + ", + " + gbe_machclass );
2235
                        ", " + machine_hostname + ", " + gbe_buildfilter + ", " + gbe_machtype + ", + " + gbe_machclass );
2295
 
2236
 
2296
                //
2237
                //
2297
                // Daemon Mode : Do not include build daemons that are disabled
2238
                // Daemon Mode : Do not include build daemons that are disabled
Line 2362... Line 2303...
2362
                    "      and (rt.official = 'N' or rt.official='R' or rt.official='C')"
2303
                    "      and (rt.official = 'N' or rt.official='R' or rt.official='C')"
2363
                    );
2304
                    );
2364
 
2305
 
2365
            stmt.setFetchSize(20);
2306
            stmt.setFetchSize(20);
2366
            stmt.setString(1, hostname);
2307
            stmt.setString(1, hostname);
2367
            ResultSet rset = stmt.executeQuery();
2308
            RmResultSet rset = new RmResultSet(stmt.executeQuery(),"queryReleaseConfig 3");
2368
 
2309
 
2369
            while( rset.next() )
2310
            while( rset.next() )
2370
            {
2311
            {
2371
                int rtag_id = rset.getInt("rtag_id");
2312
                int rtag_id = rset.mustGetKeyInt("rtag_id");
2372
 
-
 
2373
                if ( rset.wasNull() )
-
 
2374
                {
-
 
2375
                    mLogger.fatal("queryReleaseConfig 3 null rtag_id");
-
 
2376
                    // show stopper
-
 
2377
                    throw new Exception("queryReleaseConfig 3 null rtag_id");
-
 
2378
                }
-
 
2379
 
-
 
2380
                int rcon_id = rset.getInt("rcon_id");
2313
                int rcon_id = rset.mustGetInt("rcon_id");
2381
 
-
 
2382
                if ( rset.wasNull() )
-
 
2383
                {
-
 
2384
                    mLogger.fatal("queryReleaseConfig 3 null rcon_id");
-
 
2385
                    throw new Exception("queryReleaseConfig 3 null rcon_id");
-
 
2386
                }
-
 
2387
 
2314
 
2388
                char dm = 'S';          
2315
                char dm = 'S';          
2389
                String daemon_mode = rset.getString("daemon_mode");
2316
                String daemon_mode = rset.getString("daemon_mode", "S");
2390
 
-
 
2391
                if ( daemon_mode != null )
-
 
2392
                {
-
 
2393
                    mLogger.info("queryReleaseConfig 3 daemon_mode " + daemon_mode + ".");
-
 
2394
 
2317
 
2395
                    if ( daemon_mode.compareTo("M") == 0 )
2318
                mLogger.info("queryReleaseConfig 3 daemon_mode " + daemon_mode + ".");
2396
                    {
-
 
2397
                        dm = 'M';
-
 
2398
                    }
-
 
2399
                }
-
 
2400
 
2319
 
2401
                String machine_hostname = rset.getString("machine_hostname");
-
 
2402
                if (machine_hostname == null)
2320
                if ( daemon_mode.compareTo("M") == 0 )
2403
                {
2321
                {
2404
                    mLogger.fatal("queryReleaseConfig 3 null machine_hostname " + rtag_id);
-
 
2405
                    throw new Exception("queryReleaseConfig 3 null machine_hostname " + rtag_id);
-
 
2406
                }
2322
                    dm = 'M';
2407
 
-
 
2408
                String gbe_buildfilter = rset.getString("gbe_buildfilter");
-
 
2409
 
-
 
2410
                String gbe_machtype = rset.getString("gbe_value");
-
 
2411
                if (gbe_machtype == null)
-
 
2412
                {
-
 
2413
                    mLogger.fatal("queryReleaseConfig 3 null gbe_value " + rtag_id);
-
 
2414
                    throw new Exception("queryReleaseConfig 3 null gbe_value " + rtag_id);
-
 
2415
                }
-
 
2416
 
-
 
2417
                String gbe_machclass = rset.getString("bm_name");
-
 
2418
                if (gbe_machclass == null)
-
 
2419
                {
-
 
2420
                    mLogger.fatal("queryReleaseConfig 3 null bm_name " + rtag_id);
-
 
2421
                    throw new Exception("queryReleaseConfig 3 null bm_name " + rtag_id);
-
 
2422
                }
2323
                }
2423
 
2324
 
-
 
2325
                String machine_hostname = rset.mustGetString("machine_hostname");
-
 
2326
                String gbe_buildfilter = rset.getString("gbe_buildfilter",null);
-
 
2327
                String gbe_machtype = rset.mustGetString("gbe_value");
-
 
2328
                String gbe_machclass = rset.mustGetString("bm_name");
-
 
2329
                
2424
                //
2330
                //
2425
                //  Pause: null -> 0 == Run
2331
                //  Pause: null -> 0 == Run
2426
                //         1         == Pause
2332
                //         1         == Pause
2427
                //         2         == Disabled
2333
                //         2         == Disabled
2428
                //
2334
                //
2429
                int pause = rset.getInt("pause");
2335
                int pause = rset.getInt("pause",0);
2430
                if ( rset.wasNull() )
-
 
2431
                {
-
 
2432
                    pause = 0;
-
 
2433
                }
2336
               
2434
 
-
 
2435
                mLogger.info("queryReleaseConfig 3: " + rtag_id + ", " + rcon_id + ", "+ dm + ", " + pause + 
2337
                mLogger.info("queryReleaseConfig 3: " + rtag_id + ", " + rcon_id + ", "+ dm + ", " + pause + 
2436
                        ", " + machine_hostname + ", " + gbe_buildfilter + ", " + gbe_machtype + ", + " + gbe_machclass );
2338
                        ", " + machine_hostname + ", " + gbe_buildfilter + ", " + gbe_machtype + ", + " + gbe_machclass );
2437
 
2339
 
2438
                //
2340
                //
2439
                // Do not include build daemons that are disabled
2341
                // Do not include build daemons that are disabled
Line 2672... Line 2574...
2672
     *    bsa_name="Debug"|"Production"|"Production and Debug"|"Java 1.4"|"Java 1.5"|"Java 1.6"
2574
     *    bsa_name="Debug"|"Production"|"Production and Debug"|"Java 1.4"|"Java 1.5"|"Java 1.6"
2673
     *  
2575
     *  
2674
     * Overridden in ReleaseManagerUtf
2576
     * Overridden in ReleaseManagerUtf
2675
     *  
2577
     *  
2676
     */
2578
     */
-
 
2579
    
2677
    protected void queryPackageVersions(
2580
    protected void queryPackageVersions(
2678
            RippleEngine rippleEngine, 
2581
            RippleEngine rippleEngine, 
2679
            ArrayList<Package> packageCollection, 
2582
            ArrayList<Package> packageCollection, 
2680
            int baseline) throws SQLException, Exception
2583
            int baseline) throws SQLException, Exception
2681
    {
2584
    {
Line 2705... Line 2608...
2705
                                "   and pv.build_type='A' and pv.dlocked='A'" +
2608
                                "   and pv.build_type='A' and pv.dlocked='A'" +
2706
                                "   and pv.pv_id=pl.pv_id and p.pkg_id=pv.pkg_id" +
2609
                                "   and pv.pv_id=pl.pv_id and p.pkg_id=pv.pkg_id" +
2707
                                " order by pv.modified_stamp"
2610
                                " order by pv.modified_stamp"
2708
                        );
2611
                        );
2709
                stmt1.setFetchSize(500);
2612
                stmt1.setFetchSize(500);
2710
                ResultSet rset1 = stmt1.executeQuery();
2613
                RmResultSet rset1 = new RmResultSet(stmt1.executeQuery(), "queryPackageVersions rset1");
2711
 
2614
 
2712
                while( rset1.next() )
2615
                while( rset1.next() )
2713
                {
2616
                {
2714
                    int pv_id = rset1.getInt("pv_id");
2617
                    int pv_id = rset1.mustGetKeyInt("pv_id");
2715
 
-
 
2716
                    if ( rset1.wasNull() )
-
 
2717
                    {
-
 
2718
                        mLogger.fatal("queryPackageVersions rset1 null pv_id");
-
 
2719
                        // show stopper
-
 
2720
                        throw new Exception("queryPackageVersions rset1 null pv_id");
-
 
2721
                    }
-
 
2722
 
-
 
2723
                    int pkg_id = rset1.getInt("pkg_id");
2618
                    int pkg_id = rset1.mustGetInt("pkg_id");
2724
 
-
 
2725
                    if ( rset1.wasNull() )
-
 
2726
                    {
-
 
2727
                        mLogger.fatal("queryPackageVersions rset1 null pkg_id " + pv_id);
-
 
2728
                        // show stopper
-
 
2729
                        throw new Exception("queryPackageVersions rset1 null pkg_id " + pv_id);
-
 
2730
                    }
-
 
2731
 
-
 
2732
                    String pkg_name = rset1.getString("pkg_name");
2619
                    String pkg_name = rset1.mustGetString("pkg_name");
2733
 
-
 
2734
                    if ( pkg_name == null )
-
 
2735
                    {
-
 
2736
                        mLogger.fatal("queryPackageVersions rset1 null pkg_name " + pv_id);
-
 
2737
                        // show stopper
-
 
2738
                        throw new Exception("queryPackageVersions rset1 null pkg_name " + pv_id);
-
 
2739
                    }
-
 
2740
 
-
 
2741
                    String pkg_version = rset1.getString("pkg_version");
2620
                    String pkg_version = rset1.mustGetString("pkg_version");
2742
                    if (pkg_version == null) 
-
 
2743
                    {
-
 
2744
                        mLogger.fatal("queryPackageVersions rset1 null pkg_version " + pv_id);
-
 
2745
                        // show stopper
-
 
2746
                        throw new Exception("queryPackageVersions rset1 null pkg_version " + pv_id);
-
 
2747
                    }
-
 
2748
 
2621
 
2749
                    // Previous Version of this package, without the project suffix
2622
                    // Previous Version of this package, without the project suffix
2750
                    String pkg_prevVersion = getBaseVersionNumber(pv_id);
2623
                    String pkg_prevVersion = getBaseVersionNumber(pv_id);
2751
                    if ( pkg_prevVersion == null)
2624
                    if ( pkg_prevVersion == null)
2752
                    {
2625
                    {
2753
                        mLogger.fatal("queryPackageVersions. No Previous version" + pv_id);
2626
                        mLogger.fatal("queryPackageVersions. No Previous version" + pv_id);
2754
                        // show stopper
2627
                        // show stopper
2755
                        throw new Exception("queryPackageVersions. No Previous version" + pv_id);
2628
                        throw new Exception("queryPackageVersions. No Previous version" + pv_id);
2756
                    }
2629
                    }
2757
                    
2630
                    
2758
                    String v_ext = rset1.getString("v_ext");
2631
                    String v_ext = rset1.getString("v_ext","");
2759
 
-
 
2760
                    if ( v_ext == null )
-
 
2761
                    {
-
 
2762
                        v_ext = "";
-
 
2763
                    }
-
 
2764
 
-
 
2765
                    String change_type = rset1.getString("change_type");
2632
                    String change_type = rset1.getString("change_type", "P");
2766
 
-
 
2767
                    if ( change_type == null )
-
 
2768
                    {
-
 
2769
                        change_type = "P";
-
 
2770
                    }
-
 
2771
 
2633
 
2772
                    char ct = 'x';
2634
                    char ct = 'x';
2773
 
2635
 
2774
                    if ( change_type.compareTo("M") == 0 )
2636
                    if ( change_type.compareTo("M") == 0 )
2775
                    {
2637
                    {
Line 2788... Line 2650...
2788
                        ct = 'F';
2650
                        ct = 'F';
2789
                    }
2651
                    }
2790
 
2652
 
2791
                    if ( ct != 'x' )
2653
                    if ( ct != 'x' )
2792
                    {
2654
                    {
2793
                        String ripple_field = rset1.getString("ripple_field");
2655
                        String ripple_field = rset1.getString("ripple_field", "b");
2794
 
-
 
2795
                        if ( ripple_field == null ||  ripple_field.length() == 0 )
-
 
2796
                        {
-
 
2797
                            ripple_field = "b";
-
 
2798
                        }
-
 
2799
 
-
 
2800
                        int major_limit = rset1.getInt("major_limit");
2656
                        int major_limit = rset1.getInt("major_limit", 0);
2801
 
-
 
2802
                        if ( rset1.wasNull() )
-
 
2803
                        {
-
 
2804
                            major_limit = 0;
-
 
2805
                        }
-
 
2806
 
-
 
2807
                        int minor_limit = rset1.getInt("minor_limit");
2657
                        int minor_limit = rset1.getInt("minor_limit",0);
2808
 
-
 
2809
                        if ( rset1.wasNull() )
-
 
2810
                        {
-
 
2811
                            minor_limit = 0;
-
 
2812
                        }
-
 
2813
 
-
 
2814
                        int patch_limit = rset1.getInt("patch_limit");
2658
                        int patch_limit = rset1.getInt("patch_limit",0);
2815
 
-
 
2816
                        if ( rset1.wasNull() )
-
 
2817
                        {
-
 
2818
                            patch_limit = 0;
-
 
2819
                        }
-
 
2820
 
-
 
2821
                        int build_number_limit = rset1.getInt("build_number_limit");
2659
                        int build_number_limit = rset1.getInt("build_number_limit",0);
2822
 
-
 
2823
                        if ( rset1.wasNull() )
-
 
2824
                        {
-
 
2825
                            build_number_limit = 0;
-
 
2826
                        }
-
 
2827
 
-
 
2828
                        String vcs_tag = rset1.getString("vcsTag");
2660
                        String vcs_tag = rset1.getString("vcsTag", "");
2829
                        if ( vcs_tag == null )
-
 
2830
                        {
-
 
2831
                            vcs_tag = "";
-
 
2832
                        }
-
 
2833
 
2661
 
2834
                        Package p = new Package(pkg_id, pv_id, pkg_name, pkg_version, v_ext, pkg_name + v_ext, vcs_tag, ripple_field.charAt(0), ct);
2662
                        Package p = new Package(pkg_id, pv_id, pkg_name, pkg_version, v_ext, pkg_name + v_ext, vcs_tag, ripple_field.charAt(0), ct);
2835
                        p.mDirectlyPlanned = true;
2663
                        p.mDirectlyPlanned = true;
2836
                        p.mBuildReason = BuildReason.NewVersion;
2664
                        p.mBuildReason = BuildReason.NewVersion;
2837
                        p.mMajorLimit = major_limit;
2665
                        p.mMajorLimit = major_limit;
Line 2874... Line 2702...
2874
                                "  and dpv.pv_id=pd.dpv_id"+
2702
                                "  and dpv.pv_id=pd.dpv_id"+
2875
                                "  and p.pkg_id=dpv.pkg_id " +
2703
                                "  and p.pkg_id=dpv.pkg_id " +
2876
                                " order by pv.modified_stamp"
2704
                                " order by pv.modified_stamp"
2877
                        );
2705
                        );
2878
                stmt2.setFetchSize(500);
2706
                stmt2.setFetchSize(500);
2879
                ResultSet rset2 = stmt2.executeQuery();
2707
                RmResultSet rset2 = new RmResultSet(stmt2.executeQuery(), "queryPackageVersions rset2");
2880
 
2708
 
2881
                while( rset2.next() )
2709
                while( rset2.next() )
2882
                {
2710
                {
2883
                    boolean ignore = false;
2711
                    boolean ignore = false;
2884
 
2712
 
2885
                    int pv_id = rset2.getInt("pv_id");
2713
                    int pv_id = rset2.mustGetKeyInt("pv_id");
2886
 
-
 
2887
                    if ( rset2.wasNull() )
-
 
2888
                    {
-
 
2889
                        mLogger.fatal("queryPackageVersions rset2 null pv_id");
-
 
2890
                        // show stopper
-
 
2891
                        throw new Exception("queryPackageVersions rset2 null pv_id");
-
 
2892
                    }
-
 
2893
 
-
 
2894
                    Package p = findPackage(pv_id, packageCollection);
2714
                    Package p = findPackage(pv_id, packageCollection);
2895
 
2715
 
2896
                    if ( p == NULL_PACKAGE )
2716
                    if ( p == NULL_PACKAGE )
2897
                    {
2717
                    {
2898
                        mLogger.info("queryPackageVersions rset2 package superceded by planned " + pv_id);
2718
                        mLogger.info("queryPackageVersions rset2 package superceded by planned " + pv_id);
2899
                        ignore = true;
2719
                        ignore = true;
2900
                    }
2720
                    }
2901
 
2721
 
2902
                    String pkg_name = rset2.getString("pkg_name");
2722
                    String pkg_name = rset2.mustGetString("pkg_name");
2903
 
-
 
2904
                    if ( pkg_name == null )
-
 
2905
                    {
-
 
2906
                        mLogger.fatal("queryPackageVersions rset2 null pkg_name " + pv_id);
-
 
2907
                        // show stopper
-
 
2908
                        throw new Exception("queryPackageVersions rset2 null pkg_name " + pv_id);
-
 
2909
                    }
-
 
2910
 
-
 
2911
                    String v_ext = rset2.getString("v_ext");
2723
                    String v_ext = rset2.getString("v_ext","");
2912
 
-
 
2913
                    if ( v_ext == null )
-
 
2914
                    {
-
 
2915
                        v_ext = "";
-
 
2916
                    }
-
 
2917
 
-
 
2918
                    if ( !ignore )
2724
                    if ( !ignore )
2919
                    {
2725
                    {
2920
                        p.mDependencyCollection.add(pkg_name + v_ext);
2726
                        p.mDependencyCollection.add(pkg_name + v_ext);
2921
                        p.mDependencyIDCollection.add(-1);
2727
                        p.mDependencyIDCollection.add(-1);
2922
                    }
2728
                    }
Line 2942... Line 2748...
2942
                                "     and bm.bm_id=pbi.bm_id" +
2748
                                "     and bm.bm_id=pbi.bm_id" +
2943
                                "     and bsa.bsa_id=pbi.bsa_id " +
2749
                                "     and bsa.bsa_id=pbi.bsa_id " +
2944
                                "order by pv.modified_stamp"
2750
                                "order by pv.modified_stamp"
2945
                        );
2751
                        );
2946
                stmt3.setFetchSize(500);
2752
                stmt3.setFetchSize(500);
2947
                ResultSet rset3 = stmt3.executeQuery();
2753
                RmResultSet rset3 = new RmResultSet(stmt3.executeQuery(), "queryPackageVersions rset3");
2948
 
2754
 
2949
                while( rset3.next() )
2755
                while( rset3.next() )
2950
                {
2756
                {
2951
                    boolean ignore = false;
2757
                    boolean ignore = false;
2952
                    int pv_id = rset3.getInt("pv_id");
2758
                    int pv_id = rset3.mustGetKeyInt("pv_id");
2953
 
-
 
2954
                    if ( rset3.wasNull() )
-
 
2955
                    {
-
 
2956
                        mLogger.fatal("queryPackageVersions rset3 null pv_id");
-
 
2957
                        // show stopper
-
 
2958
                        throw new Exception("queryPackageVersions rset3 null pv_id");
-
 
2959
                    }
-
 
2960
 
2759
 
2961
                    Package p = findPackage(pv_id, packageCollection);
2760
                    Package p = findPackage(pv_id, packageCollection);
2962
 
-
 
2963
                    if ( p == NULL_PACKAGE )
2761
                    if ( p == NULL_PACKAGE )
2964
                    {
2762
                    {
2965
                        mLogger.info("queryPackageVersions rset3 package superceded by planned " + pv_id);
2763
                        mLogger.info("queryPackageVersions rset3 package superceded by planned " + pv_id);
2966
                        ignore = true;
2764
                        ignore = true;
2967
                    }
2765
                    }
2968
 
2766
 
2969
                    String bm_name = rset3.getString("bm_name");
2767
                    String bm_name = rset3.mustGetString("bm_name");
2970
 
-
 
2971
                    if ( bm_name == null )
-
 
2972
                    {
-
 
2973
                        mLogger.fatal("queryPackageVersions rset3 null bm_name " + pv_id);
-
 
2974
                        // show stopper
-
 
2975
                        throw new Exception("queryPackageVersions rset3 null bm_name " + pv_id);
-
 
2976
                    }
-
 
2977
 
-
 
2978
                    String bsa_name = rset3.getString("bsa_name");
2768
                    String bsa_name = rset3.mustGetString("bsa_name");
2979
 
-
 
2980
                    if ( bsa_name == null )
-
 
2981
                    {
-
 
2982
                        mLogger.fatal("queryPackageVersions rset3 null bsa_name " + pv_id);
-
 
2983
                        // show stopper
-
 
2984
                        throw new Exception("queryPackageVersions rset3 null bsa_name " + pv_id);
-
 
2985
                    }
-
 
2986
 
2769
 
2987
                    if ( !ignore )
2770
                    if ( !ignore )
2988
                    {
2771
                    {
2989
                        BuildStandard bs = new BuildStandard(rippleEngine, bm_name, bsa_name);
2772
                        BuildStandard bs = new BuildStandard(rippleEngine, bm_name, bsa_name);
2990
 
-
 
2991
                        if ( bs.supportedBuildStandard() )
2773
                        if ( bs.supportedBuildStandard() )
2992
                        {
2774
                        {
2993
                            p.mBuildStandardCollection.add(bs);
2775
                            p.mBuildStandardCollection.add(bs);
2994
                        }
2776
                        }
2995
                    }
2777
                    }
Line 3014... Line 2796...
3014
                        "  and ut.pv_id=pv.pv_id" +
2796
                        "  and ut.pv_id=pv.pv_id" +
3015
                        "  and tt.test_type_id=ut.test_types_fk" +
2797
                        "  and tt.test_type_id=ut.test_types_fk" +
3016
                        " order by pv.modified_stamp"
2798
                        " order by pv.modified_stamp"
3017
                        );
2799
                        );
3018
                stmt4.setFetchSize(500);
2800
                stmt4.setFetchSize(500);
3019
                ResultSet rset4 = stmt4.executeQuery();
2801
                RmResultSet rset4 = new RmResultSet(stmt4.executeQuery(), "queryPackageVersions rset4");
3020
 
2802
 
3021
                while( rset4.next() )
2803
                while( rset4.next() )
3022
                {
2804
                {
3023
                    boolean ignore = false;
2805
                    boolean ignore = false;
3024
 
2806
 
3025
                    int pv_id = rset4.getInt("pv_id");
2807
                    int pv_id = rset4.mustGetKeyInt("pv_id");
3026
 
-
 
3027
                    if ( rset4.wasNull() )
-
 
3028
                    {
-
 
3029
                        mLogger.fatal("queryPackageVersions rset4 null pv_id");
-
 
3030
                        // show stopper
-
 
3031
                        throw new Exception("queryPackageVersions rset4 null pv_id");
-
 
3032
                    }
-
 
3033
 
-
 
3034
                    Package p = findPackage(pv_id, packageCollection);
2808
                    Package p = findPackage(pv_id, packageCollection);
3035
 
-
 
3036
                    if ( p == NULL_PACKAGE )
2809
                    if ( p == NULL_PACKAGE )
3037
                    {
2810
                    {
3038
                        mLogger.info("queryPackageVersions rset4 package superceded by planned " + pv_id);
2811
                        mLogger.info("queryPackageVersions rset4 package superceded by planned " + pv_id);
3039
                        ignore = true;
2812
                        ignore = true;
3040
                    }
2813
                    }
3041
 
2814
 
3042
                    String test_type_name = rset4.getString("test_type_name");
2815
                    String test_type_name = rset4.mustGetString("test_type_name");
3043
 
-
 
3044
                    if ( test_type_name == null )
-
 
3045
                    {
-
 
3046
                        mLogger.fatal("queryPackageVersions rset4 null test_type_name " + pv_id);
-
 
3047
                        // show stopper
-
 
3048
                        throw new Exception("queryPackageVersions rset4 null test_type_name " + pv_id);
-
 
3049
                    }
-
 
3050
 
-
 
3051
                    if ( !ignore )
2816
                    if ( !ignore )
3052
                    {
2817
                    {
3053
                        if ( test_type_name.compareTo("Autobuild UTF") == 0 )
2818
                        if ( test_type_name.compareTo("Autobuild UTF") == 0 )
3054
                        {
2819
                        {
3055
                            p.mHasAutomatedUnitTests = true;
2820
                            p.mHasAutomatedUnitTests = true;
Line 3081... Line 2846...
3081
                                "      and u.user_id=mg.user_id " +
2846
                                "      and u.user_id=mg.user_id " +
3082
                                "      and af.proj_id=rt.proj_id " +
2847
                                "      and af.proj_id=rt.proj_id " +
3083
                                " order by pv.modified_stamp"
2848
                                " order by pv.modified_stamp"
3084
                        );
2849
                        );
3085
                stmt5.setFetchSize(500);
2850
                stmt5.setFetchSize(500);
3086
                ResultSet rset5 = stmt5.executeQuery();
2851
                RmResultSet rset5 = new RmResultSet(stmt5.executeQuery(), "queryPackageVersions rset5");
3087
 
2852
 
3088
                while( rset5.next() )
2853
                while( rset5.next() )
3089
                {
2854
                {
3090
                    int pv_id = rset5.getInt("pv_id");
2855
                    int pv_id = rset5.mustGetKeyInt("pv_id");
3091
 
-
 
3092
                    if ( rset5.wasNull() )
-
 
3093
                    {
-
 
3094
                        mLogger.fatal("queryPackageVersions rset5 null pv_id");
-
 
3095
                        // show stopper
-
 
3096
                        throw new Exception("queryPackageVersions rset5 null pv_id");
-
 
3097
                    }
-
 
3098
 
-
 
3099
                    Package p = findPackage(pv_id, packageCollection);
2856
                    Package p = findPackage(pv_id, packageCollection);
3100
 
-
 
3101
                    if ( p == NULL_PACKAGE )
2857
                    if ( p == NULL_PACKAGE )
3102
                    {
2858
                    {
3103
                        mLogger.info("queryPackageVersions rset5 package superceded by planned " + pv_id);
2859
                        mLogger.info("queryPackageVersions rset5 package superceded by planned " + pv_id);
3104
                    }
2860
                    }
3105
                    else
2861
                    else
3106
                    {
2862
                    {
3107
                        String user_email = rset5.getString("user_email");
2863
                        String user_email = rset5.getString("user_email", null);
3108
 
-
 
3109
                        if ( user_email != null )
2864
                        if ( user_email != null )
3110
                        {
2865
                        {
3111
                            p.addEmail(user_email);
2866
                            p.addEmail(user_email);
3112
                        }
2867
                        }
3113
                    }
2868
                    }
Line 3116... Line 2871...
3116
                rset5.close();
2871
                rset5.close();
3117
                stmt5.close();
2872
                stmt5.close();
3118
 
2873
 
3119
                // get planned package build failure info...
2874
                // get planned package build failure info...
3120
                // package version
2875
                // package version
3121
                mLogger.debug("queryPackageVersions: stmt51");
2876
                mLogger.debug("queryPackageVersions: stmt6");
3122
                phase.setPhase("getPlannedPkgs7");
2877
                phase.setPhase("getPlannedPkgs7");
3123
                PreparedStatement stmt51 = mConnection.prepareStatement(
2878
                PreparedStatement stmt6 = mConnection.prepareStatement(
3124
                        "select pl.pv_id, u1.user_email, u2.user_email, u3.user_email, pv.modified_stamp" +
2879
                        "select pl.pv_id, u1.user_email, u2.user_email, u3.user_email, pv.modified_stamp" +
3125
                        " from release_manager.planned pl," +
2880
                        " from release_manager.planned pl," +
3126
                        "      release_manager.release_tags rt," +
2881
                        "      release_manager.release_tags rt," +
3127
                        "      release_manager.package_versions pv," +
2882
                        "      release_manager.package_versions pv," +
3128
                        "      release_manager.users u1," +
2883
                        "      release_manager.users u1," +
Line 3136... Line 2891...
3136
                        "   and u1.user_id=pv.creator_id" +
2891
                        "   and u1.user_id=pv.creator_id" +
3137
                        "   and u2.user_id=pv.owner_id" +
2892
                        "   and u2.user_id=pv.owner_id" +
3138
                        "   and u3.user_id=pv.modifier_id" +
2893
                        "   and u3.user_id=pv.modifier_id" +
3139
                        "   order by pv.modified_stamp"
2894
                        "   order by pv.modified_stamp"
3140
                        );
2895
                        );
3141
                stmt51.setFetchSize(500);
2896
                stmt6.setFetchSize(500);
3142
                ResultSet rset51 = stmt51.executeQuery();
2897
                RmResultSet rset6 = new RmResultSet(stmt6.executeQuery(), "queryPackageVersions rset6");
3143
 
2898
 
3144
                while( rset51.next() )
2899
                while( rset6.next() )
3145
                {
2900
                {
3146
                    int pv_id = rset51.getInt("pv_id");
2901
                    int pv_id = rset6.mustGetKeyInt("pv_id");
3147
 
-
 
3148
                    if ( rset51.wasNull() )
-
 
3149
                    {
-
 
3150
                        mLogger.fatal("queryPackageVersions rset51 null pv_id");
-
 
3151
                        // show stopper
-
 
3152
                        throw new Exception("queryPackageVersions rset51 null pv_id");
-
 
3153
                    }
-
 
3154
 
-
 
3155
                    Package p = findPackage(pv_id, packageCollection);
2902
                    Package p = findPackage(pv_id, packageCollection);
3156
 
-
 
3157
                    if ( p == NULL_PACKAGE )
2903
                    if ( p == NULL_PACKAGE )
3158
                    {
2904
                    {
3159
                        mLogger.info("queryPackageVersions rset51 package superceded by planned " + pv_id);
2905
                        mLogger.info("queryPackageVersions rset6 package superceded by planned " + pv_id);
3160
                    }
2906
                    }
3161
                    else
2907
                    else
3162
                    {
2908
                    {
3163
 
2909
 
3164
                        // walk the 3 columns of user_email in the resultset
2910
                        // walk the 3 columns of user_email in the resultset
3165
                        // columns 2, 3 and 4, all of the same name, respectively
2911
                        // columns 2, 3 and 4, all of the same name, respectively
3166
                        for(int column=2; column<5; column++ )
2912
                        for(int column=2; column<5; column++ )
3167
                        {
2913
                        {
3168
                            String user_email = rset51.getString(column);
2914
                            String user_email = rset6.getString(column,null);
3169
 
-
 
3170
                            if ( user_email != null )
2915
                            if ( user_email != null )
3171
                            {
2916
                            {
3172
                                p.addEmail(user_email);
2917
                                p.addEmail(user_email);
3173
                            }
2918
                            }
3174
                        }
2919
                        }
3175
                    }
2920
                    }
3176
                }
2921
                }
3177
 
2922
 
3178
                rset51.close();
2923
                rset6.close();
3179
                stmt51.close();
2924
                stmt6.close();
3180
 
2925
 
3181
                // get planned package advisory ripple info
2926
                // get planned package advisory ripple info
3182
                mLogger.debug("queryPackageVersions: stmt7");
2927
                mLogger.debug("queryPackageVersions: stmt7");
3183
                phase.setPhase("getPlannedPkgs8");
2928
                phase.setPhase("getPlannedPkgs8");
3184
                PreparedStatement stmt7 = mConnection.prepareStatement(
2929
                PreparedStatement stmt7 = mConnection.prepareStatement(
Line 3193... Line 2938...
3193
                        "    and ar.rtag_id=pl.rtag_id" +
2938
                        "    and ar.rtag_id=pl.rtag_id" +
3194
                        "    and ar.pv_id=pl.pv_id " +
2939
                        "    and ar.pv_id=pl.pv_id " +
3195
                        " order by pv.modified_stamp"
2940
                        " order by pv.modified_stamp"
3196
                        );
2941
                        );
3197
                stmt7.setFetchSize(500);
2942
                stmt7.setFetchSize(500);
3198
                ResultSet rset7 = stmt7.executeQuery();
2943
                RmResultSet rset7 = new RmResultSet(stmt7.executeQuery(), "queryPackageVersions rset7");
3199
 
2944
 
3200
                while( rset7.next() )
2945
                while( rset7.next() )
3201
                {
2946
                {
3202
                    boolean ignore = false;
2947
                    boolean ignore = false;
3203
 
2948
 
3204
                    int pv_id = rset7.getInt("pv_id");
2949
                    int pv_id = rset7.mustGetInt("pv_id");
3205
 
-
 
3206
                    if ( rset7.wasNull() )
-
 
3207
                    {
-
 
3208
                        mLogger.fatal("queryPackageVersions rset7 null pv_id");
-
 
3209
                        // show stopper
-
 
3210
                        throw new Exception("queryPackageVersions rset7 null pv_id");
-
 
3211
                    }
-
 
3212
 
-
 
3213
                    Package p = findPackage(pv_id, packageCollection);
2950
                    Package p = findPackage(pv_id, packageCollection);
3214
 
-
 
3215
                    if ( p == NULL_PACKAGE )
2951
                    if ( p == NULL_PACKAGE )
3216
                    {
2952
                    {
3217
                        mLogger.info("queryPackageVersions rset7 package superceded by planned " + pv_id);
2953
                        mLogger.info("queryPackageVersions rset7 package superceded by planned " + pv_id);
3218
                        ignore = true;
2954
                        ignore = true;
3219
                    }
2955
                    }
Line 3224... Line 2960...
3224
                    }
2960
                    }
3225
                }
2961
                }
3226
 
2962
 
3227
                rset7.close();
2963
                rset7.close();
3228
                stmt7.close();
2964
                stmt7.close();
-
 
2965
                
-
 
2966
                //  Process Scheduled Build Approvals. OpCode is 2
-
 
2967
                //      These are treated as requests to not-include a 'Pending' package-version in the current build set
-
 
2968
                //      If there is an un-expired instruction, then remove the pending package-version from the build set
-
 
2969
                //
-
 
2970
                //  Process all expired requests
-
 
2971
                //      These are scheduled builds were the scheduled time has been exceeded
-
 
2972
                //      Simply discard the instruction and let the Approved build proceed
-
 
2973
                //
-
 
2974
                DaemonInstruction di = new DaemonInstruction(baseline, 2, true);
-
 
2975
              
-
 
2976
                phase.setPhase("removeOldSchedBuilds");
-
 
2977
                while ( getDaemonInst( di ) )
-
 
2978
                {
-
 
2979
                    markDaemonInstCompleted(di.instruction);
-
 
2980
                    mLogger.info("queryPackageVersions remove Scheduled Build Approvals " + di.pvId);
-
 
2981
                }
-
 
2982
                
-
 
2983
                phase.setPhase("getSchedBuilds");
-
 
2984
                di = new DaemonInstruction(baseline, 2, false);
-
 
2985
                while ( getDaemonInst( di ) )
-
 
2986
                {
-
 
2987
                    Package p = findPackage(di.pvId, packageCollection);
-
 
2988
 
-
 
2989
                    if ( p != NULL_PACKAGE )
-
 
2990
                    {
-
 
2991
                        mLogger.info("queryPackageVersions Scheduled Build Approvals " + di.pvId);
-
 
2992
                        packageCollection.remove(p);
-
 
2993
                    }
-
 
2994
                    else
-
 
2995
                    {
-
 
2996
                        // discard - the package no longer exists
-
 
2997
                        markDaemonInstCompleted( di.instruction );
-
 
2998
                        mLogger.info("queryPackageVersions remove Scheduled Build Approvals for nonexistent package " + di.pvId);
-
 
2999
                    }
-
 
3000
                }                
3229
 
3001
 
3230
                // get released package info
3002
                // get released package info
3231
                //    Get package information on ALL released packages within the release of interest
3003
                //    Get package information on ALL released packages within the release of interest
3232
                //
3004
                //
3233
                mLogger.debug("queryPackageVersions: stmt8");
3005
                mLogger.debug("queryPackageVersions: stmt8");
Line 3259... Line 3031...
3259
                                " AND peg.pv_id(+) = rc.pv_id" +
3031
                                " AND peg.pv_id(+) = rc.pv_id" +
3260
                                " ORDER BY rc.pv_id"
3032
                                " ORDER BY rc.pv_id"
3261
                        );
3033
                        );
3262
                mLogger.debug("queryPackageVersions: stmt8 Prepared");
3034
                mLogger.debug("queryPackageVersions: stmt8 Prepared");
3263
                stmt8.setFetchSize(1000);
3035
                stmt8.setFetchSize(1000);
3264
                ResultSet rset8 = stmt8.executeQuery();
3036
                RmResultSet rset8 = new RmResultSet(stmt8.executeQuery(), "queryPackageVersions rset8");
3265
                mLogger.debug("queryPackageVersions: stmt8 Query Done");
3037
                mLogger.debug("queryPackageVersions: stmt8 Query Done");
3266
 
3038
 
3267
                while( rset8.next() )
3039
                while( rset8.next() )
3268
                {
3040
                {
3269
                    int pv_id = rset8.getInt("pv_id");
3041
                    int pv_id = rset8.mustGetKeyInt("pv_id");
3270
 
-
 
3271
                    if ( rset8.wasNull() )
-
 
3272
                    {
-
 
3273
                        mLogger.fatal("queryPackageVersions rset8 null pv_id");
-
 
3274
                        // show stopper
-
 
3275
                        throw new Exception("queryPackageVersions rset8 null pv_id");
-
 
3276
                    }
-
 
3277
 
-
 
3278
                    int pkg_id = rset8.getInt("pkg_id");
3042
                    int pkg_id = rset8.mustGetInt("pkg_id");
3279
 
-
 
3280
                    if ( rset8.wasNull() )
-
 
3281
                    {
-
 
3282
                        mLogger.fatal("queryPackageVersions rset8 null pkg_id " + pv_id);
-
 
3283
                        // show stopper
-
 
3284
                        throw new Exception("queryPackageVersions rset8 null pkg_id " + pv_id);
-
 
3285
                    }
-
 
3286
 
-
 
3287
                    String pkg_name = rset8.getString("pkg_name");
3043
                    String pkg_name = rset8.mustGetString("pkg_name");
3288
 
-
 
3289
                    if ( pkg_name == null )
-
 
3290
                    {
-
 
3291
                        mLogger.fatal("queryPackageVersions rset8 null pkg_name " + pv_id);
-
 
3292
                        // show stopper
-
 
3293
                        throw new Exception("queryPackageVersions rset8 null pkg_name " + pv_id);
-
 
3294
                    }
-
 
3295
 
-
 
3296
                    String pkg_version = rset8.getString("pkg_version");
3044
                    String pkg_version = rset8.mustGetString("pkg_version");
3297
 
-
 
3298
                    if ( pkg_version == null )
-
 
3299
                    {
-
 
3300
                        mLogger.fatal("queryPackageVersions rset8 null pkg_version " + pv_id);
-
 
3301
                        // show stopper
-
 
3302
                        throw new Exception("queryPackageVersions rset8 null pkg_version " + pv_id);
-
 
3303
                    }
-
 
3304
 
-
 
3305
                    String v_ext = rset8.getString("v_ext");
3045
                    String v_ext = rset8.getString("v_ext", "");
3306
 
-
 
3307
                    if ( v_ext == null )
-
 
3308
                    {
-
 
3309
                        v_ext = "";
-
 
3310
                    }
-
 
3311
 
-
 
3312
                    String ripple_field = rset8.getString("ripple_field");
3046
                    String ripple_field = rset8.getString("ripple_field", "b");
3313
 
-
 
3314
                    if ( ripple_field == null || ripple_field.length() == 0 )
-
 
3315
                    {
-
 
3316
                        ripple_field = "b";
-
 
3317
                    }
-
 
3318
 
-
 
3319
                    int major_limit = rset8.getInt("major_limit");
3047
                    int major_limit = rset8.getInt("major_limit",0);
3320
 
-
 
3321
                    if ( rset8.wasNull() )
-
 
3322
                    {
-
 
3323
                        major_limit = 0;
-
 
3324
                    }
-
 
3325
 
-
 
3326
                    int minor_limit = rset8.getInt("minor_limit");
3048
                    int minor_limit = rset8.getInt("minor_limit", 0);
3327
 
-
 
3328
                    if ( rset8.wasNull() )
-
 
3329
                    {
-
 
3330
                        minor_limit = 0;
-
 
3331
                    }
-
 
3332
 
-
 
3333
                    int patch_limit = rset8.getInt("patch_limit");
3049
                    int patch_limit = rset8.getInt("patch_limit",0);
3334
 
-
 
3335
                    if ( rset8.wasNull() )
-
 
3336
                    {
-
 
3337
                        patch_limit = 0;
-
 
3338
                    }
-
 
3339
 
-
 
3340
                    int build_number_limit = rset8.getInt("build_number_limit");
3050
                    int build_number_limit = rset8.getInt("build_number_limit", 0);
3341
 
-
 
3342
                    if ( rset8.wasNull() )
-
 
3343
                    {
-
 
3344
                        build_number_limit = 0;
-
 
3345
                    }
-
 
3346
 
-
 
3347
                    String vcs_tag = rset8.getString("vcsTag");
3051
                    String vcs_tag = rset8.getString("vcsTag","");
3348
                    if ( vcs_tag == null )
-
 
3349
                    {
-
 
3350
                        vcs_tag = "";
-
 
3351
                    }
-
 
3352
                    
-
 
3353
                    int isAnSdk = rset8.getInt("sdktag_id"); 
3052
                    int isAnSdk = rset8.getInt("sdktag_id",0); 
3354
                    if ( rset8.wasNull() )
-
 
3355
                    {
-
 
3356
                        isAnSdk = 0;
-
 
3357
                    }
-
 
3358
                    
-
 
3359
                    int isPegged = rset8.getInt("pegged");
3053
                    int isPegged = rset8.getInt("pegged",0);
3360
                    if ( rset8.wasNull() )
-
 
3361
                    {
-
 
3362
                        isPegged = 0;
-
 
3363
                    }
-
 
3364
                    
-
 
3365
                    String buildType = rset8.getString("build_type");
3054
                    String buildType = rset8.getString("build_type", null);
3366
                    boolean isBuildable = ( buildType != null ) && (buildType.equals("A") || buildType.equals("Y") );
3055
                    boolean isBuildable = ( buildType != null ) && (buildType.equals("A") || buildType.equals("Y") );
3367
                    
3056
                    
3368
                    
-
 
3369
                    String rippleStopData = rset8.getString("ripple_stop");
3057
                    String rippleStopData = rset8.getString("ripple_stop","n");
3370
                    char rippleStop = 'n';
-
 
3371
                    if ( ! rset8.wasNull() ) {
-
 
3372
                        rippleStop =  rippleStopData.charAt(0);
3058
                    char rippleStop = rippleStopData.charAt(0);
3373
                    }
-
 
3374
 
3059
 
3375
                    Package p = new Package(pkg_id, pv_id, pkg_name, pkg_version, v_ext, pkg_name + v_ext, vcs_tag, ripple_field.charAt(0));
3060
                    Package p = new Package(pkg_id, pv_id, pkg_name, pkg_version, v_ext, pkg_name + v_ext, vcs_tag, ripple_field.charAt(0));
3376
                    p.mMajorLimit = major_limit;
3061
                    p.mMajorLimit = major_limit;
3377
                    p.mMinorLimit = minor_limit;
3062
                    p.mMinorLimit = minor_limit;
3378
                    p.mPatchLimit = patch_limit;
3063
                    p.mPatchLimit = patch_limit;
Line 3413... Line 3098...
3413
                // get released package dependency info
3098
                // get released package dependency info
3414
                // 
3099
                // 
3415
                mLogger.debug("queryPackageVersions: stmt9");
3100
                mLogger.debug("queryPackageVersions: stmt9");
3416
                phase.setPhase("getAllPkgs2");
3101
                phase.setPhase("getAllPkgs2");
3417
                PreparedStatement stmt9 = mConnection.prepareStatement(
3102
                PreparedStatement stmt9 = mConnection.prepareStatement(
3418
                        "select rc.pv_id, dpv.pv_id, p.pkg_name, dpv.v_ext" +
3103
                        "select rc.pv_id as pv_id, dpv.pv_id as dpv_id, p.pkg_name, dpv.v_ext" +
3419
                                " from release_manager.release_content rc," +
3104
                                " from release_manager.release_content rc," +
3420
                                "      release_manager.package_versions pv," + 
3105
                                "      release_manager.package_versions pv," + 
3421
                                "      release_manager.package_dependencies pd,"+
3106
                                "      release_manager.package_dependencies pd,"+
3422
                                "      release_manager.package_versions dpv,"+
3107
                                "      release_manager.package_versions dpv,"+
3423
                                "      release_manager.packages p" +
3108
                                "      release_manager.packages p" +
Line 3428... Line 3113...
3428
                                "  and p.pkg_id=dpv.pkg_id" +
3113
                                "  and p.pkg_id=dpv.pkg_id" +
3429
                                " order by rc.pv_id"
3114
                                " order by rc.pv_id"
3430
                        );
3115
                        );
3431
                mLogger.debug("queryPackageVersions: stmt9 prepared");
3116
                mLogger.debug("queryPackageVersions: stmt9 prepared");
3432
                stmt9.setFetchSize(1000);
3117
                stmt9.setFetchSize(1000);
3433
                ResultSet rset9 = stmt9.executeQuery();
3118
                RmResultSet rset9 = new RmResultSet(stmt9.executeQuery(), "queryPackageVersions rset9");
3434
                mLogger.debug("queryPackageVersions: stmt9 query done");
3119
                mLogger.debug("queryPackageVersions: stmt9 query done");
3435
 
3120
 
3436
                while( rset9.next() )
3121
                while( rset9.next() )
3437
                {
3122
                {
3438
                    boolean ignore = false;
3123
                    boolean ignore = false;
3439
 
3124
 
3440
                    int pv_id = rset9.getInt(1);
3125
                    int pv_id = rset9.mustGetKeyInt("pv_id");
3441
 
-
 
3442
                    if ( rset9.wasNull() )
-
 
3443
                    {
-
 
3444
                        mLogger.fatal("queryPackageVersions rset9 null pv_id");
-
 
3445
                        // show stopper
-
 
3446
                        throw new Exception("queryPackageVersions rset9 null pv_id");
-
 
3447
                    }
-
 
3448
 
-
 
3449
                    int dpv_id = rset9.getInt(2);
3126
                    int dpv_id = rset9.mustGetInt("dpv_id");
3450
 
-
 
3451
                    if ( rset9.wasNull() )
-
 
3452
                    {
-
 
3453
                        mLogger.fatal("queryPackageVersions rset9 null dpv_id " + pv_id);
-
 
3454
                        // show stopper
-
 
3455
                        throw new Exception("queryPackageVersions rset9 null dpv_id " + pv_id);
-
 
3456
                    }
-
 
3457
 
-
 
3458
                    Package p = findPackage(pv_id, packageCollection);
3127
                    Package p = findPackage(pv_id, packageCollection);
3459
 
3128
 
3460
                    if ( p == NULL_PACKAGE )
3129
                    if ( p == NULL_PACKAGE )
3461
                    {
3130
                    {
3462
                        mLogger.info("queryPackageVersions rset9 package superceded by planned " + pv_id);
3131
                        mLogger.info("queryPackageVersions rset9 package superceded by planned " + pv_id);
3463
                        ignore = true;
3132
                        ignore = true;
3464
                    }
3133
                    }
3465
 
3134
 
3466
                    String pkg_name = rset9.getString("pkg_name");
3135
                    String pkg_name = rset9.mustGetString("pkg_name");
3467
 
-
 
3468
                    if ( pkg_name == null )
-
 
3469
                    {
-
 
3470
                        mLogger.fatal("queryPackageVersions rset9 null pkg_name " + pv_id);
-
 
3471
                        // show stopper
-
 
3472
                        throw new Exception("queryPackageVersions rset9 null pkg_name " + pv_id);
-
 
3473
                    }
-
 
3474
 
-
 
3475
                    String v_ext = rset9.getString("v_ext");
3136
                    String v_ext = rset9.getString("v_ext","");
3476
 
-
 
3477
                    if ( v_ext == null )
-
 
3478
                    {
-
 
3479
                        v_ext = "";
-
 
3480
                    }
-
 
3481
 
3137
 
3482
                    if ( !ignore )
3138
                    if ( !ignore )
3483
                    {
3139
                    {
3484
                        p.mDependencyCollection.add(pkg_name + v_ext);
3140
                        p.mDependencyCollection.add(pkg_name + v_ext);
3485
                        p.mDependencyIDCollection.add(dpv_id);
3141
                        p.mDependencyIDCollection.add(dpv_id);
Line 3507... Line 3163...
3507
                                "     and bsa.bsa_id=pbi.bsa_id " +
3163
                                "     and bsa.bsa_id=pbi.bsa_id " +
3508
                                "order by rc.pv_id"
3164
                                "order by rc.pv_id"
3509
                        );
3165
                        );
3510
                stmt10.setFetchSize(1000);
3166
                stmt10.setFetchSize(1000);
3511
                stmt10.setInt(1, baseline);
3167
                stmt10.setInt(1, baseline);
3512
                ResultSet rset10 = stmt10.executeQuery();
3168
                RmResultSet rset10 = new RmResultSet(stmt10.executeQuery(), "queryPackageVersions rset10");
3513
 
3169
 
3514
                while( rset10.next() )
3170
                while( rset10.next() )
3515
                {
3171
                {
3516
                    boolean ignore = false;
3172
                    boolean ignore = false;
3517
                    int pv_id = rset10.getInt("pv_id");
3173
                    int pv_id = rset10.mustGetKeyInt("pv_id");
3518
 
-
 
3519
                    if ( rset10.wasNull() )
-
 
3520
                    {
-
 
3521
                        mLogger.fatal("queryPackageVersions rset10 null pv_id");
-
 
3522
                        // show stopper
-
 
3523
                        throw new Exception("queryPackageVersions rset10 null pv_id");
-
 
3524
                    }
-
 
3525
 
-
 
3526
                    Package p = findPackage(pv_id, packageCollection);
3174
                    Package p = findPackage(pv_id, packageCollection);
3527
 
-
 
3528
                    if ( p == NULL_PACKAGE )
3175
                    if ( p == NULL_PACKAGE )
3529
                    {
3176
                    {
3530
                        mLogger.info("queryPackageVersions rset10 package superceded by planned " + pv_id);
3177
                        mLogger.info("queryPackageVersions rset10 package superceded by planned " + pv_id);
3531
                        ignore = true;
3178
                        ignore = true;
3532
                    }
3179
                    }
3533
 
3180
 
3534
                    String bm_name = rset10.getString("bm_name");
3181
                    String bm_name = rset10.mustGetString("bm_name");
3535
 
-
 
3536
                    if ( bm_name == null )
-
 
3537
                    {
-
 
3538
                        mLogger.fatal("queryPackageVersions rset10 null bm_name " + pv_id);
-
 
3539
                        // show stopper
-
 
3540
                        throw new Exception("queryPackageVersions rset10 null bm_name " + pv_id);
-
 
3541
                    }
-
 
3542
 
-
 
3543
                    String bsa_name = rset10.getString("bsa_name");
3182
                    String bsa_name = rset10.mustGetString("bsa_name");
3544
 
-
 
3545
                    if ( bsa_name == null )
-
 
3546
                    {
-
 
3547
                        mLogger.fatal("queryPackageVersions rset10 null bsa_name " + pv_id);
-
 
3548
                        // show stopper
-
 
3549
                        throw new Exception("queryPackageVersions rset10 null bsa_name " + pv_id);
-
 
3550
                    }
-
 
3551
 
3183
 
3552
                    if ( !ignore )
3184
                    if ( !ignore )
3553
                    {
3185
                    {
3554
                        BuildStandard bs = new BuildStandard(rippleEngine, bm_name, bsa_name);
3186
                        BuildStandard bs = new BuildStandard(rippleEngine, bm_name, bsa_name);
3555
 
3187
 
Line 3572... Line 3204...
3572
                                "where rc.rtag_id=" + baseline +
3204
                                "where rc.rtag_id=" + baseline +
3573
                                " and pv.pv_id = rc.pv_id and ut.pv_id=pv.pv_id and tt.test_type_id=ut.test_types_fk " +
3205
                                " and pv.pv_id = rc.pv_id and ut.pv_id=pv.pv_id and tt.test_type_id=ut.test_types_fk " +
3574
                                "order by rc.pv_id"
3206
                                "order by rc.pv_id"
3575
                        );
3207
                        );
3576
                stmt11.setFetchSize(1000);
3208
                stmt11.setFetchSize(1000);
3577
                ResultSet rset11 = stmt11.executeQuery();
3209
                RmResultSet rset11 = new RmResultSet(stmt11.executeQuery(), "queryPackageVersions rset11");
3578
 
3210
 
3579
                while( rset11.next() )
3211
                while( rset11.next() )
3580
                {
3212
                {
3581
                    boolean ignore = false;
3213
                    boolean ignore = false;
3582
 
3214
 
3583
                    int pv_id = rset11.getInt("pv_id");
3215
                    int pv_id = rset11.mustGetKeyInt("pv_id");
3584
 
-
 
3585
                    if ( rset11.wasNull() )
-
 
3586
                    {
-
 
3587
                        mLogger.fatal("queryPackageVersions rset11 null pv_id");
-
 
3588
                        // show stopper
-
 
3589
                        throw new Exception("queryPackageVersions rset11 null pv_id");
-
 
3590
                    }
-
 
3591
 
-
 
3592
                    Package p = findPackage(pv_id, packageCollection);
3216
                    Package p = findPackage(pv_id, packageCollection);
3593
 
-
 
3594
                    if ( p == NULL_PACKAGE )
3217
                    if ( p == NULL_PACKAGE )
3595
                    {
3218
                    {
3596
                        mLogger.info("queryPackageVersions rset11 package superceded by planned " + pv_id);
3219
                        mLogger.info("queryPackageVersions rset11 package superceded by planned " + pv_id);
3597
                        ignore = true;
3220
                        ignore = true;
3598
                    }
3221
                    }
3599
 
3222
 
3600
                    String test_type_name = rset11.getString("test_type_name");
3223
                    String test_type_name = rset11.mustGetString("test_type_name");
3601
 
-
 
3602
                    if ( test_type_name == null )
-
 
3603
                    {
-
 
3604
                        mLogger.fatal("queryPackageVersions rset11 null test_type_name " + pv_id);
-
 
3605
                        // show stopper
-
 
3606
                        throw new Exception("queryPackageVersions rset11 null test_type_name " + pv_id);
-
 
3607
                    }
-
 
3608
 
-
 
3609
                    if ( !ignore )
3224
                    if ( !ignore )
3610
                    {
3225
                    {
3611
                        if ( test_type_name.compareTo("Autobuild UTF") == 0 )
3226
                        if ( test_type_name.compareTo("Autobuild UTF") == 0 )
3612
                        {
3227
                        {
3613
                            p.mHasAutomatedUnitTests = true;
3228
                            p.mHasAutomatedUnitTests = true;
Line 3639... Line 3254...
3639
                        " AND u.user_id        = mg.user_id" +
3254
                        " AND u.user_id        = mg.user_id" +
3640
                        " AND af.proj_id       = rt.proj_id" +
3255
                        " AND af.proj_id       = rt.proj_id" +
3641
                        " ORDER BY rc.pv_id"
3256
                        " ORDER BY rc.pv_id"
3642
                        );
3257
                        );
3643
                stmt12.setFetchSize(1000);
3258
                stmt12.setFetchSize(1000);
3644
                ResultSet rset12 = stmt12.executeQuery();
3259
                RmResultSet rset12 = new RmResultSet(stmt12.executeQuery(), "queryPackageVersions rset12");
3645
 
3260
 
3646
                while( rset12.next() )
3261
                while( rset12.next() )
3647
                {
3262
                {
3648
                    int pv_id = rset12.getInt("pv_id");
3263
                    int pv_id = rset12.mustGetKeyInt("pv_id");
3649
 
-
 
3650
                    if ( rset12.wasNull() )
-
 
3651
                    {
-
 
3652
                        mLogger.fatal("queryPackageVersions rset12 null pv_id");
-
 
3653
                        // show stopper
-
 
3654
                        throw new Exception("queryPackageVersions rset12 null pv_id");
-
 
3655
                    }
-
 
3656
 
-
 
3657
                    Package p = findPackage(pv_id, packageCollection);
3264
                    Package p = findPackage(pv_id, packageCollection);
3658
 
3265
 
3659
                    if ( p == NULL_PACKAGE )
3266
                    if ( p == NULL_PACKAGE )
3660
                    {
3267
                    {
3661
                        mLogger.info("queryPackageVersions rset12 package superceded by planned " + pv_id);
3268
                        mLogger.info("queryPackageVersions rset12 package superceded by planned " + pv_id);
3662
                    }
3269
                    }
3663
                    else
3270
                    else
3664
                    {
3271
                    {
3665
                        String user_email = rset12.getString("user_email");
3272
                        String user_email = rset12.getString("user_email",null);
3666
 
3273
 
3667
                        if ( user_email != null )
3274
                        if ( user_email != null )
3668
                        {
3275
                        {
3669
                            p.addEmail(user_email);
3276
                            p.addEmail(user_email);
3670
                        }
3277
                        }
Line 3683... Line 3290...
3683
                                "where rc.rtag_id=" + baseline +
3290
                                "where rc.rtag_id=" + baseline +
3684
                                " and pv.pv_id = rc.pv_id and ar.rtag_id=rc.rtag_id and ar.pv_id=rc.pv_id " +
3291
                                " and pv.pv_id = rc.pv_id and ar.rtag_id=rc.rtag_id and ar.pv_id=rc.pv_id " +
3685
                                "order by rc.pv_id"
3292
                                "order by rc.pv_id"
3686
                        );
3293
                        );
3687
                stmt14.setFetchSize(1000);
3294
                stmt14.setFetchSize(1000);
3688
                ResultSet rset14 = stmt14.executeQuery();
3295
                RmResultSet rset14 = new RmResultSet(stmt14.executeQuery(), "queryPackageVersions rset14");
3689
 
3296
 
3690
                while( rset14.next() )
3297
                while( rset14.next() )
3691
                {
3298
                {
3692
                    boolean ignore = false;
3299
                    boolean ignore = false;
3693
 
3300
 
3694
                    int pv_id = rset14.getInt("pv_id");
3301
                    int pv_id = rset14.mustGetInt("pv_id");
3695
 
-
 
3696
                    if ( rset14.wasNull() )
-
 
3697
                    {
-
 
3698
                        mLogger.fatal("queryPackageVersions rset14 null pv_id");
-
 
3699
                        // show stopper
-
 
3700
                        throw new Exception("queryPackageVersions rset14 null pv_id");
-
 
3701
                    }
-
 
3702
 
-
 
3703
                    Package p = findPackage(pv_id, packageCollection);
3302
                    Package p = findPackage(pv_id, packageCollection);
3704
 
-
 
3705
                    if ( p == NULL_PACKAGE )
3303
                    if ( p == NULL_PACKAGE )
3706
                    {
3304
                    {
3707
                        mLogger.info("queryPackageVersions rset14 package superceded by planned " + pv_id);
3305
                        mLogger.info("queryPackageVersions rset14 package superceded by planned " + pv_id);
3708
                        ignore = true;
3306
                        ignore = true;
3709
                    }
3307
                    }
Line 3717... Line 3315...
3717
                rset14.close();
3315
                rset14.close();
3718
                stmt14.close();
3316
                stmt14.close();
3719
 
3317
 
3720
                // Daemon Instruction: Force Package Ripple
3318
                // Daemon Instruction: Force Package Ripple
3721
                //  An op code of 0 means force ripple
3319
                //  An op code of 0 means force ripple
3722
                MutableInt instruction = new MutableInt(0);
-
 
3723
                MutableInt pvid = new MutableInt(0);
-
 
3724
                MutableInt userid = new MutableInt(0);
-
 
3725
                MutableString userEmail = new MutableString();
-
 
-
 
3320
 
3726
                phase.setPhase("getDaemonInstructions1");
3321
                phase.setPhase("getDaemonInstructions1");
3727
                while ( getDaemonInst( baseline, 0, instruction, pvid, userid, userEmail ) )
3322
                di = new DaemonInstruction( baseline, 0, true);
-
 
3323
                while ( getDaemonInst( di ) )
3728
                {
3324
                {
3729
                    Package p = findPackage(pvid.value, packageCollection);
3325
                    Package p = findPackage(di.pvId, packageCollection);
3730
 
3326
 
3731
                    if ( p != NULL_PACKAGE )
3327
                    if ( p != NULL_PACKAGE )
3732
                    {
3328
                    {
3733
                        mLogger.info("queryPackageVersions forced ripple data " + pvid.value);
3329
                        mLogger.info("queryPackageVersions forced ripple data " + di.pvId);
3734
                        p.mForcedRippleInstruction = instruction.value;
3330
                        p.mForcedRippleInstruction = di.instruction;
3735
                        p.mTestBuildEmail = userEmail.value;
3331
                        p.mTestBuildEmail = di.userEmail;
3736
                    }
3332
                    }
3737
                    else
3333
                    else
3738
                    {
3334
                    {
3739
                        // discard
3335
                        // discard
3740
                        markDaemonInstCompleted( instruction.value );
3336
                        markDaemonInstCompleted( di.instruction );
3741
                    }
3337
                    }
3742
                }
3338
                }
3743
 
3339
 
3744
                // Daemon Instruction: Test Build Package
3340
                // Daemon Instruction: Test Build Package
3745
                //  An op code of 1 means test build
3341
                //  An op code of 1 means test build
Line 3763... Line 3359...
3763
                // of the snapshot of build information that applied to the build and store in:
3359
                // of the snapshot of build information that applied to the build and store in:
3764
                // - mTestBuildEmailBody
3360
                // - mTestBuildEmailBody
3765
                
3361
                
3766
                mLogger.debug("queryPackageVersions: stmt141");
3362
                mLogger.debug("queryPackageVersions: stmt141");
3767
                phase.setPhase("getTestBuild1");
3363
                phase.setPhase("getTestBuild1");
3768
                instruction.value = 0;
3364
                di = new DaemonInstruction( baseline, 1, true);
3769
                while ( getDaemonInst( baseline, 1, instruction, pvid, userid, userEmail ) )
3365
                while ( getDaemonInst( di ) )
3770
                {
3366
                {
3771
                    // can only do one test build at a time - others will be discarded until future cycle
3367
                    // can only do one test build at a time - others will be discarded until future cycle
3772
                    mLogger.info("queryPackageVersions test build data " + pvid.value);
3368
                    mLogger.info("queryPackageVersions test build data " + di.pvId);
3773
                    int testBuildPvId = pvid.value;
3369
                    int testBuildPvId = di.pvId;
3774
                    int testBuildInstruction = instruction.value;
3370
                    int testBuildInstruction = di.instruction;
3775
                    String testBuildEmail = userEmail.value; 
3371
                    String testBuildEmail = di.userEmail; 
3776
 
3372
 
3777
                    String pkg_name = "";
3373
                    String pkg_name = "";
3778
                    String pkg_ext = "";
3374
                    String pkg_ext = "";
3779
                    String testBuildVcsTag = "null";
3375
                    String testBuildVcsTag = "null";
3780
                    int pkg_id = 0;
3376
                    int pkg_id = 0;
Line 3787... Line 3383...
3787
                                    "release_manager.packages p" +
3383
                                    "release_manager.packages p" +
3788
                                    " where pv.pv_id=" + testBuildPvId +
3384
                                    " where pv.pv_id=" + testBuildPvId +
3789
                                    " and p.pkg_id=pv.pkg_id "
3385
                                    " and p.pkg_id=pv.pkg_id "
3790
                            );
3386
                            );
3791
                    stmt15.setFetchSize(10);
3387
                    stmt15.setFetchSize(10);
3792
                    ResultSet rset15 = stmt15.executeQuery();
3388
                    RmResultSet rset15 = new RmResultSet(stmt15.executeQuery(), "queryPackageVersions rset15");
3793
 
3389
 
3794
                    int rsetSize = 0;
3390
                    int rsetSize = 0;
3795
 
3391
 
3796
                    while( rset15.next() )
3392
                    while( rset15.next() )
3797
                    {
3393
                    {
3798
                        rsetSize++;
3394
                        rsetSize++;
3799
                        pkg_name = rset15.getString("pkg_name");
3395
                        pkg_name = rset15.mustGetKeyString("pkg_name");
3800
 
-
 
3801
                        if ( pkg_name == null )
-
 
3802
                        {
-
 
3803
                            mLogger.fatal("queryPackageVersions rset15 null pkg_name " + testBuildPvId);
-
 
3804
                            // show stopper
-
 
3805
                            throw new Exception("queryPackageVersions rset15 null pkg_name " + testBuildPvId);
-
 
3806
                        }
-
 
3807
                        
-
 
3808
                        pkg_id = rset15.getInt("pkg_id");
3396
                        pkg_id = rset15.mustGetInt("pkg_id");
3809
 
-
 
3810
                        if ( rset15.wasNull() )
-
 
3811
                        {
-
 
3812
                            mLogger.fatal("queryPackageVersions rset15 null pkg_id " + testBuildPvId);
-
 
3813
                            // show stopper
-
 
3814
                            throw new Exception("queryPackageVersions rset15 null pkg_id " + testBuildPvId);
-
 
3815
                        }
-
 
3816
 
-
 
3817
                        pkg_ext = rset15.getString("v_ext");
3397
                        pkg_ext = rset15.getString("v_ext","");
3818
 
-
 
3819
                        if ( pkg_ext == null )
-
 
3820
                        {
-
 
3821
                            pkg_ext = "";
-
 
3822
                        }
-
 
3823
 
-
 
3824
                        testBuildVcsTag = rset15.getString("vcsTag");
3398
                        testBuildVcsTag = rset15.getString("vcsTag", "null");
3825
                        if ( testBuildVcsTag == null )
-
 
3826
                        {
-
 
3827
                            testBuildVcsTag = "null";
-
 
3828
                        }
-
 
3829
                    }
3399
                    }
3830
 
3400
 
3831
                    rset15.close();
3401
                    rset15.close();
3832
                    stmt15.close();
3402
                    stmt15.close();
3833
 
3403
 
3834
                    mLogger.debug("queryPackageVersions: stmt16");
3404
                    mLogger.debug("queryPackageVersions: stmt16");
3835
                    if ( rsetSize == 0 )
3405
                    if ( rsetSize == 0 )
3836
                    {
3406
                    {
3837
                        mLogger.error("queryPackageVersions rset15 no data found " + instruction.value);
3407
                        mLogger.error("queryPackageVersions rset15 no data found " + di.instruction);
3838
                        markDaemonInstCompleted( instruction.value );
3408
                        markDaemonInstCompleted( di.instruction );
3839
                    }
3409
                    }
3840
                    else
3410
                    else
3841
                    {
3411
                    {
3842
                        Package q = findPackage(pkg_name + pkg_ext, packageCollection);
3412
                        Package q = findPackage(pkg_name + pkg_ext, packageCollection);
3843
 
3413
 
Line 3871... Line 3441...
3871
                                        "   and pd.pv_id=" + testBuildPvId +
3441
                                        "   and pd.pv_id=" + testBuildPvId +
3872
                                        "   and dpv.pv_id=pd.dpv_id"+
3442
                                        "   and dpv.pv_id=pd.dpv_id"+
3873
                                        "   and p.pkg_id=dpv.pkg_id"
3443
                                        "   and p.pkg_id=dpv.pkg_id"
3874
                                );
3444
                                );
3875
                        stmt16.setFetchSize(1000);
3445
                        stmt16.setFetchSize(1000);
3876
                        ResultSet rset16 = stmt16.executeQuery();
3446
                        RmResultSet rset16 = new RmResultSet(stmt16.executeQuery(), "queryPackageVersions rset16");
3877
 
3447
 
3878
                        while( rset16.next() )
3448
                        while( rset16.next() )
3879
                        {
3449
                        {
3880
                            String dpkg_name = rset16.getString("pkg_name");
3450
                            String dpkg_name = rset16.mustGetString("pkg_name");
3881
 
-
 
3882
                            if ( dpkg_name == null )
-
 
3883
                            {
-
 
3884
                                mLogger.fatal("queryPackageVersions rset16 null pkg_name " + testBuildPvId);
-
 
3885
                                // show stopper
-
 
3886
                                throw new Exception("queryPackageVersions rset16 null pkg_name " + testBuildPvId);
-
 
3887
                            }
-
 
3888
 
-
 
3889
                            String v_ext = rset16.getString("v_ext");
3451
                            String v_ext = rset16.getString("v_ext", "");
3890
 
-
 
3891
                            if ( v_ext == null )
-
 
3892
                            {
-
 
3893
                                v_ext = "";
-
 
3894
                            }
-
 
3895
 
-
 
3896
                            q.mTestBuildDependencyCollection.add(dpkg_name + v_ext);
3452
                            q.mTestBuildDependencyCollection.add(dpkg_name + v_ext);
3897
                        }
3453
                        }
3898
 
3454
 
3899
                        rset16.close();
3455
                        rset16.close();
3900
                        stmt16.close();
3456
                        stmt16.close();
Line 3910... Line 3466...
3910
                                        "where pv.pv_id=" + testBuildPvId +
3466
                                        "where pv.pv_id=" + testBuildPvId +
3911
                                        "   and pbi.pv_id=pv.pv_id" +
3467
                                        "   and pbi.pv_id=pv.pv_id" +
3912
                                        "   and bm.bm_id=pbi.bm_id" +
3468
                                        "   and bm.bm_id=pbi.bm_id" +
3913
                                        "   and bsa.bsa_id=pbi.bsa_id"
3469
                                        "   and bsa.bsa_id=pbi.bsa_id"
3914
                                );
3470
                                );
3915
                        ResultSet rset17 = stmt17.executeQuery();
3471
                        RmResultSet rset17 = new RmResultSet(stmt17.executeQuery(), "queryPackageVersions rset17");
3916
 
3472
 
3917
                        while( rset17.next() )
3473
                        while( rset17.next() )
3918
                        {
3474
                        {
3919
                            String bm_name = rset17.getString("bm_name");
3475
                            String bm_name = rset17.mustGetKeyString("bm_name");
3920
 
-
 
3921
                            if ( bm_name == null )
-
 
3922
                            {
-
 
3923
                                mLogger.fatal("queryPackageVersions rset17 null bm_name " + testBuildPvId);
-
 
3924
                                // show stopper
-
 
3925
                                throw new Exception("queryPackageVersions rset17 null bm_name " + testBuildPvId);
-
 
3926
                            }
-
 
3927
 
-
 
3928
                            String bsa_name = rset17.getString("bsa_name");
3476
                            String bsa_name = rset17.mustGetString("bsa_name");
3929
 
-
 
3930
                            if ( bsa_name == null )
-
 
3931
                            {
-
 
3932
                                mLogger.fatal("queryPackageVersions rset17 null bsa_name " + testBuildPvId);
-
 
3933
                                // show stopper
-
 
3934
                                throw new Exception("queryPackageVersions rset17 null bsa_name " + testBuildPvId);
-
 
3935
                            }
-
 
3936
 
3477
 
3937
                            BuildStandard bs = new BuildStandard(rippleEngine, bm_name, bsa_name);
3478
                            BuildStandard bs = new BuildStandard(rippleEngine, bm_name, bsa_name);
3938
 
3479
 
3939
                            if ( bs.supportedBuildStandard() )
3480
                            if ( bs.supportedBuildStandard() )
3940
                            {
3481
                            {
Line 3952... Line 3493...
3952
                                "  from release_manager.unit_tests ut," +
3493
                                "  from release_manager.unit_tests ut," +
3953
                                "       release_manager.test_types tt" +
3494
                                "       release_manager.test_types tt" +
3954
                                " where ut.pv_id=" + testBuildPvId +
3495
                                " where ut.pv_id=" + testBuildPvId +
3955
                                "  and tt.test_type_id=ut.test_types_fk" 
3496
                                "  and tt.test_type_id=ut.test_types_fk" 
3956
                                );
3497
                                );
3957
                        ResultSet rset18 = stmt18.executeQuery();
3498
                        RmResultSet rset18 = new RmResultSet(stmt18.executeQuery(), "queryPackageVersions rset18");
3958
 
3499
 
3959
                        while( rset18.next() )
3500
                        while( rset18.next() )
3960
                        {
3501
                        {
3961
                            boolean ignore = false;
3502
                            boolean ignore = false;
3962
 
3503
 
3963
                            String test_type_name = rset18.getString("test_type_name");
3504
                            String test_type_name = rset18.mustGetString("test_type_name");
3964
 
-
 
3965
                            if ( test_type_name == null )
-
 
3966
                            {
-
 
3967
                                mLogger.fatal("queryPackageVersions rset18 null test_type_name " + testBuildPvId);
-
 
3968
                                // show stopper
-
 
3969
                                throw new Exception("queryPackageVersions rset18 null test_type_name " + testBuildPvId);
-
 
3970
                            }
-
 
3971
 
3505
 
3972
                            if ( !ignore )
3506
                            if ( !ignore )
3973
                            {
3507
                            {
3974
                                if ( test_type_name.compareTo("Autobuild UTF") == 0 )
3508
                                if ( test_type_name.compareTo("Autobuild UTF") == 0 )
3975
                                {
3509
                                {
Line 3981... Line 3515...
3981
                        rset18.close();
3515
                        rset18.close();
3982
                        stmt18.close();
3516
                        stmt18.close();
3983
                        
3517
                        
3984
                    }
3518
                    }
3985
                }
3519
                }
-
 
3520
               
3986
            }
3521
            }
3987
            else
3522
            else
3988
            {
3523
            {
3989
                // Escrow Mode
3524
                // Escrow Mode
3990
                // get released product info
3525
                // get released product info
Line 4003... Line 3538...
4003
                                " and pv.pv_id=oc.prod_id" +
3538
                                " and pv.pv_id=oc.prod_id" +
4004
                                " and p.pkg_id=pv.pkg_id" +
3539
                                " and p.pkg_id=pv.pkg_id" +
4005
                                " order by oc.prod_id"
3540
                                " order by oc.prod_id"
4006
                        );
3541
                        );
4007
                stmt.setFetchSize(1000);
3542
                stmt.setFetchSize(1000);
4008
                ResultSet rset = stmt.executeQuery();
3543
                RmResultSet rset = new RmResultSet(stmt.executeQuery(), "queryPackageVersions rset");
4009
 
3544
 
4010
                while( rset.next() )
3545
                while( rset.next() )
4011
                {
3546
                {
4012
                    int pv_id = rset.getInt("prod_id");
3547
                    int pv_id = rset.mustGetKeyInt("prod_id");
4013
 
-
 
4014
                    if ( rset.wasNull() )
-
 
4015
                    {
-
 
4016
                        mLogger.fatal("queryPackageVersions rset null prod_id");
-
 
4017
                        // show stopper
-
 
4018
                        throw new Exception("queryPackageVersions rset null prod_id");
-
 
4019
                    }
-
 
4020
 
-
 
4021
                    String pkg_name = rset.getString("pkg_name");
3548
                    String pkg_name = rset.mustGetString("pkg_name");
4022
 
-
 
4023
                    if ( pkg_name == null )
-
 
4024
                    {
-
 
4025
                        mLogger.fatal("queryPackageVersions rset null pkg_name " + pv_id);
-
 
4026
                        // show stopper
-
 
4027
                        throw new Exception("queryPackageVersions rset null pkg_name " + pv_id);
-
 
4028
                    }
-
 
4029
 
-
 
4030
                    String pkg_version = rset.getString("pkg_version");
3549
                    String pkg_version = rset.mustGetString("pkg_version");
4031
 
-
 
4032
                    if ( pkg_version == null )
-
 
4033
                    {
-
 
4034
                        mLogger.fatal("queryPackageVersions rset null pkg_version " + pv_id);
-
 
4035
                        // show stopper
-
 
4036
                        throw new Exception("queryPackageVersions rset null pkg_version " + pv_id);
-
 
4037
                    }
-
 
4038
 
-
 
4039
                    String v_ext = rset.getString("v_ext");
3550
                    String v_ext = rset.getString("v_ext", "");
4040
 
-
 
4041
                    if ( v_ext == null )
-
 
4042
                    {
-
 
4043
                        v_ext = "";
-
 
4044
                    }
-
 
4045
 
-
 
4046
                    String vcs_tag = rset.getString("vcsTag");
3551
                    String vcs_tag = rset.getString("vcsTag","");
4047
                    if ( vcs_tag == null )
-
 
4048
                    {
-
 
4049
                        vcs_tag = "";
-
 
4050
                    }
3552
                    
4051
 
-
 
4052
                    Package p = findPackage(pv_id, packageCollection);
3553
                    Package p = findPackage(pv_id, packageCollection);
4053
 
-
 
4054
                    if ( p == NULL_PACKAGE )
3554
                    if ( p == NULL_PACKAGE )
4055
                    {
3555
                    {
4056
                        Package q = new Package(0, pv_id, pkg_name, pkg_version, v_ext, pkg_name + "." + pkg_version, vcs_tag, 'x');
3556
                        Package q = new Package(0, pv_id, pkg_name, pkg_version, v_ext, pkg_name + "." + pkg_version, vcs_tag, 'x');
4057
                        packageCollection.add(q);
3557
                        packageCollection.add(q);
4058
                    }
3558
                    }
Line 4211... Line 3711...
4211
                                "   and pd.pv_id=pv.pv_id" +
3711
                                "   and pd.pv_id=pv.pv_id" +
4212
                                "   and dpv.pv_id=pd.dpv_id" + 
3712
                                "   and dpv.pv_id=pd.dpv_id" + 
4213
                                "   and p.pkg_id=dpv.pkg_id" + 
3713
                                "   and p.pkg_id=dpv.pkg_id" + 
4214
                        " order by pv.pv_id");
3714
                        " order by pv.pv_id");
4215
                stmt.setFetchSize(1000);
3715
                stmt.setFetchSize(1000);
4216
                ResultSet rset = stmt.executeQuery();
3716
                RmResultSet rset = new RmResultSet(stmt.executeQuery(),"traverseDependencies");
4217
 
3717
 
4218
                while (rset.next())
3718
                while (rset.next())
4219
                {
3719
                {
4220
                    int pv_id = rset.getInt("pv_id");
3720
                    int pv_id = rset.mustGetKeyInt("pv_id");
4221
 
-
 
4222
                    if (rset.wasNull())
-
 
4223
                    {
-
 
4224
                        mLogger.fatal("traverseDependencies null pv_id");
-
 
4225
                        // show stopper
-
 
4226
                        throw new Exception("traverseDependencies null pv_id");
-
 
4227
                    }
-
 
4228
 
-
 
4229
                    String pkg_name = rset.getString("pkg_name");
3721
                    String pkg_name = rset.mustGetString("pkg_name");
4230
 
-
 
4231
                    if (pkg_name == null)
-
 
4232
                    {
-
 
4233
                        mLogger.fatal("traverseDependencies null pkg_name " + pv_id);
-
 
4234
                        // show stopper
-
 
4235
                        throw new Exception("traverseDependencies null pkg_name " + pv_id);
-
 
4236
                    }
-
 
4237
 
-
 
4238
                    String pkg_version = rset.getString("pkg_version");
3722
                    String pkg_version = rset.mustGetString("pkg_version");
4239
 
-
 
4240
                    if (pkg_version == null)
-
 
4241
                    {
-
 
4242
                        mLogger.fatal("traverseDependencies null pkg_version " + pv_id);
-
 
4243
                        // show stopper
-
 
4244
                        throw new Exception("traverseDependencies null pkg_version " + pv_id);
-
 
4245
                    }
-
 
4246
 
-
 
4247
                    String v_ext = rset.getString("v_ext");
3723
                    String v_ext = rset.getString("v_ext","");
4248
 
-
 
4249
                    if (v_ext == null)
-
 
4250
                    {
-
 
4251
                        v_ext = "";
-
 
4252
                    }
-
 
4253
 
-
 
4254
                    String vcs_tag = rset.getString("vcsTag");
3724
                    String vcs_tag = rset.getString("vcsTag","");
4255
                    if (vcs_tag == null)
-
 
4256
                    {
-
 
4257
                        vcs_tag = "";
-
 
4258
                    }
-
 
4259
 
3725
 
4260
                    Package p = new Package(0, pv_id, pkg_name, pkg_version, v_ext, pkg_name + "." + pkg_version, vcs_tag, 'x');
3726
                    Package p = new Package(0, pv_id, pkg_name, pkg_version, v_ext, pkg_name + "." + pkg_version, vcs_tag, 'x');
4261
                    resultset.add(p);
3727
                    resultset.add(p);
4262
                    pkg.mDependencyCollection.add(p.mAlias);
3728
                    pkg.mDependencyCollection.add(p.mAlias);
4263
                }
3729
                }
Line 4319... Line 3785...
4319
                    + "where pv.pv_id=" + p.mId 
3785
                    + "where pv.pv_id=" + p.mId 
4320
                    + "   and pbi.pv_id=pv.pv_id" 
3786
                    + "   and pbi.pv_id=pv.pv_id" 
4321
                    + "   and bm.bm_id=pbi.bm_id"
3787
                    + "   and bm.bm_id=pbi.bm_id"
4322
                    + "   and bsa.bsa_id=pbi.bsa_id " 
3788
                    + "   and bsa.bsa_id=pbi.bsa_id " 
4323
                    + "order by pv.pv_id");
3789
                    + "order by pv.pv_id");
4324
            ResultSet rset = stmt.executeQuery();
3790
            RmResultSet rset = new RmResultSet (stmt.executeQuery(),"queryBuildInfo");
4325
 
3791
 
4326
            while (rset.next())
3792
            while (rset.next())
4327
            {
3793
            {
4328
                String bm_name = rset.getString("bm_name");
3794
                String bm_name = rset.mustGetKeyString("bm_name");
4329
 
-
 
4330
                if (bm_name == null)
-
 
4331
                {
-
 
4332
                    mLogger.fatal("queryBuildInfo null bm_name " + p.mId);
-
 
4333
                    // show stopper
-
 
4334
                    throw new Exception("queryBuildInfo null bm_name " + p.mId);
-
 
4335
                }
-
 
4336
 
-
 
4337
                String bsa_name = rset.getString("bsa_name");
3795
                String bsa_name = rset.mustGetString("bsa_name");
4338
 
-
 
4339
                if (bsa_name == null)
-
 
4340
                {
-
 
4341
                    mLogger.fatal("queryBuildInfo null bsa_name " + p.mId);
-
 
4342
                    // show stopper
-
 
4343
                    throw new Exception("queryBuildInfo null bsa_name " + p.mId);
-
 
4344
                }
-
 
4345
 
3796
 
4346
                BuildStandard bs = new BuildStandard(rippleEngine, bm_name, bsa_name);
3797
                BuildStandard bs = new BuildStandard(rippleEngine, bm_name, bsa_name);
4347
 
3798
 
4348
                if (bs.supportedBuildStandard())
3799
                if (bs.supportedBuildStandard())
4349
                {
3800
                {
Line 4519... Line 3970...
4519
            PreparedStatement stmt = mConnection.prepareStatement(
3970
            PreparedStatement stmt = mConnection.prepareStatement(
4520
                    "select pv_id, root_pv_id, root_cause" +
3971
                    "select pv_id, root_pv_id, root_cause" +
4521
                    " from release_manager.do_not_ripple" + 
3972
                    " from release_manager.do_not_ripple" + 
4522
                    " where rtag_id=" + baseline);
3973
                    " where rtag_id=" + baseline);
4523
            stmt.setFetchSize(1000);
3974
            stmt.setFetchSize(1000);
4524
            ResultSet rset = stmt.executeQuery();
3975
            RmResultSet rset = new RmResultSet(stmt.executeQuery(),"queryBuildExclusions");
4525
 
3976
 
4526
            while( rset.next() )
3977
            while( rset.next() )
4527
            {
3978
            {
4528
                int pvId = rset.getInt("pv_id");
3979
                int pvId = rset.mustGetKeyInt("pv_id");
4529
                if ( rset.wasNull() )
-
 
4530
                {
-
 
4531
                    // show stopper
-
 
4532
                    mLogger.fatal("queryBuildExclusions rset null pv_id");
-
 
4533
                    throw new Exception("queryBuildExclusions rset null pv_id");
-
 
4534
                }
-
 
4535
 
-
 
4536
                int rootPvId = rset.getInt("root_pv_id");
3980
                int rootPvId = rset.getInt("root_pv_id", -1);
4537
                if ( rset.wasNull() )
-
 
4538
                {
-
 
4539
                    // quite acceptable
-
 
4540
                    rootPvId = -1;
-
 
4541
                }
-
 
4542
 
-
 
4543
                // again, a null root_cause is quite acceptable
-
 
4544
                String rootCause = rset.getString("root_cause");
3981
                String rootCause = rset.getString("root_cause", null);
4545
 
3982
 
4546
                // force email notification by using a zero test build instruction
3983
                // force email notification by using a zero test build instruction
4547
                BuildExclusion buildExclusion = new BuildExclusion(pvId, rootPvId, rootCause, 0);
3984
                BuildExclusion buildExclusion = new BuildExclusion(pvId, rootPvId, rootCause, 0);
4548
                buildExclusionCollection.add(buildExclusion);
3985
                buildExclusionCollection.add(buildExclusion);
4549
            }
3986
            }
Line 4803... Line 4240...
4803
                    "     release_manager.run_level rl" +
4240
                    "     release_manager.run_level rl" +
4804
                    " WHERE rc.rtag_id = " + rtag_id +
4241
                    " WHERE rc.rtag_id = " + rtag_id +
4805
                    " AND   rl.rcon_id = rc.rcon_id" +
4242
                    " AND   rl.rcon_id = rc.rcon_id" +
4806
                    " AND   rc.bmcon_id is not NULL");
4243
                    " AND   rc.bmcon_id is not NULL");
4807
            stmt.setFetchSize(20);
4244
            stmt.setFetchSize(20);
4808
            ResultSet rset = stmt.executeQuery();
4245
            RmResultSet rset = new RmResultSet(stmt.executeQuery(),"queryRunLevel 2");
4809
            int rcon_id = 0;
4246
            int rcon_id = 0;
4810
            int current_run_level = 0;
4247
            int current_run_level = 0;
4811
            String modeString;
4248
            String modeString;
4812
            char mode;
4249
            char mode;
4813
            int pause = 0;
4250
            int pause = 0;
4814
            int buildFilePresent = 0;
4251
            int buildFilePresent = 0;
4815
 
4252
 
4816
            while( rset.next() )
4253
            while( rset.next() )
4817
            {
4254
            {
4818
                rcon_id = rset.getInt("rcon_id");
4255
                rcon_id = rset.mustGetKeyInt("rcon_id");
4819
                if ( rset.wasNull() )
-
 
4820
                {
-
 
4821
                    mLogger.fatal("queryRunLevel 2 null rcon_id");
-
 
4822
                    // show stopper
-
 
4823
                    throw new Exception("queryRunLevel 2 null rcon_id");
-
 
4824
                }
-
 
4825
                
-
 
4826
                modeString = rset.getString("daemon_mode");
4256
                modeString = rset.mustGetString("daemon_mode");
4827
                if ( rset.wasNull() )
-
 
4828
                {
-
 
4829
                    mLogger.fatal("queryRunLevel 2 null rcon_id");
-
 
4830
                    // show stopper
-
 
4831
                    throw new Exception("queryRunLevel 2 null rcon_id");
-
 
4832
                }
-
 
4833
                mode = modeString.charAt(0);
4257
                mode = modeString.charAt(0);
4834
                
-
 
4835
                buildFilePresent = rset.getInt("bfPresent");
4258
                buildFilePresent = rset.getInt("bfPresent",0);
4836
 
-
 
4837
                current_run_level = rset.getInt("current_run_level");
4259
                current_run_level = rset.getInt("current_run_level", BuildState.DB_IDLE.toValue());
4838
                if ( rset.wasNull() )
-
 
4839
                {
-
 
4840
                    // slave may never have started to insert run level
-
 
4841
                    // use idle
-
 
4842
                    current_run_level = BuildState.DB_IDLE.toValue();
-
 
4843
                }
-
 
4844
 
4260
 
4845
                //
4261
                //
4846
                //  Pause: null -> 0 == Run
4262
                //  Pause: null -> 0 == Run
4847
                //         1         == Pause
4263
                //         1         == Pause
4848
                //         2         == Disabled
4264
                //         2         == Disabled
4849
                //
4265
                //
4850
                pause = rset.getInt("pause");
4266
                pause = rset.getInt("pause", 0);
4851
                
4267
                
4852
                //  Ignore disabled entries
4268
                //  Ignore disabled entries
4853
                if ( pause <= 1 )
4269
                if ( pause <= 1 )
4854
                {
4270
                {
4855
                    RunLevelData runLevel = new RunLevelData(rcon_id, current_run_level, mode, buildFilePresent);
4271
                    RunLevelData runLevel = new RunLevelData(rcon_id, current_run_level, mode, buildFilePresent);
Line 4914... Line 4330...
4914
                    "   AND rc.rcon_id=" + rcon_id +
4330
                    "   AND rc.rcon_id=" + rcon_id +
4915
                    "   AND rc.bmcon_id is not NULL" +
4331
                    "   AND rc.bmcon_id is not NULL" +
4916
                    "   AND rc.daemon_mode='" + daemon_mode + "'" +
4332
                    "   AND rc.daemon_mode='" + daemon_mode + "'" +
4917
                    "   AND UPPER(rc.daemon_hostname)=UPPER('" + hostname + "')"
4333
                    "   AND UPPER(rc.daemon_hostname)=UPPER('" + hostname + "')"
4918
                    );
4334
                    );
4919
            ResultSet rset = stmt.executeQuery();
4335
            RmResultSet rset = new RmResultSet(stmt.executeQuery(),"querySingleRunLevel");
4920
            int rsetSize = 0;
4336
            int rsetSize = 0;
4921
            int current_run_level = 0;
4337
            int current_run_level = 0;
4922
            int pause = 0;
4338
            int pause = 0;
4923
            int buildFilePresent = 0;
4339
            int buildFilePresent = 0;
4924
 
4340
 
4925
            while( rset.next() )
4341
            while( rset.next() )
4926
            {
4342
            {
4927
                rsetSize++;
4343
                rsetSize++;
4928
                current_run_level = rset.getInt("current_run_level");
4344
                current_run_level = rset.mustGetInt("current_run_level");
4929
 
-
 
4930
                if ( rset.wasNull() )
-
 
4931
                {
-
 
4932
                    mLogger.fatal("querySingleRunLevel null current_run_level");
-
 
4933
                    // show stopper
-
 
4934
                    throw new Exception("querySingleRunLevel null current_run_level");
-
 
4935
                }
-
 
4936
                
-
 
4937
                buildFilePresent = rset.getInt("bfPresent");
4345
                buildFilePresent = rset.getInt("bfPresent",0);
4938
                
4346
                
4939
                //
4347
                //
4940
                //  Pause: null -> 0 == Run
4348
                //  Pause: null -> 0 == Run
4941
                //         1         == Pause
4349
                //         1         == Pause
4942
                //         2         == Disabled
4350
                //         2         == Disabled
4943
                //
4351
                //
4944
                pause = rset.getInt("pause");
4352
                pause = rset.getInt("pause",0);
4945
 
4353
 
4946
                //  Ignore disabled daemons
4354
                //  Ignore disabled daemons
4947
                if ( pause <= 1)
4355
                if ( pause <= 1)
4948
                {
4356
                {
4949
                    RunLevelData runLevel = new RunLevelData(rcon_id, current_run_level, daemon_mode, buildFilePresent);
4357
                    RunLevelData runLevel = new RunLevelData(rcon_id, current_run_level, daemon_mode, buildFilePresent);