From 0d7a7fb6dcef91c111513b7d8bc9d97d048eb8e9 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Wed, 21 Oct 2020 10:19:15 -0500 Subject: [PATCH 1/4] Removed obsolete fwkJobReports option from MessageLogger The option has done nothing for years so can safely be removed. --- .../MessageLogger_ReleaseValidation_cfi.py | 11 +--- .../python/MessageLogger_cfi.py | 15 +---- .../src/MessageLoggerDefaults.h | 1 - .../src/MessageServicePSetValidation.cc | 65 ------------------- .../src/MessageServicePSetValidation.h | 3 - 5 files changed, 3 insertions(+), 92 deletions(-) diff --git a/FWCore/MessageService/python/MessageLogger_ReleaseValidation_cfi.py b/FWCore/MessageService/python/MessageLogger_ReleaseValidation_cfi.py index e476e1be80d60..4b8ccb07152af 100644 --- a/FWCore/MessageService/python/MessageLogger_ReleaseValidation_cfi.py +++ b/FWCore/MessageService/python/MessageLogger_ReleaseValidation_cfi.py @@ -43,14 +43,6 @@ ), threshold = cms.untracked.string('INFO') ), - FrameworkJobReport = cms.untracked.PSet( - default = cms.untracked.PSet( - limit = cms.untracked.int32(0) - ), - FwkJob = cms.untracked.PSet( - limit = cms.untracked.int32(10000000) - ) - ), suppressWarning = cms.untracked.vstring(), statistics = cms.untracked.vstring('cerr_stats'), cerr_stats = cms.untracked.PSet( @@ -73,8 +65,7 @@ categories = cms.untracked.vstring('FwkJob', 'FwkReport', 'FwkSummary', - 'Root_NoDictionary'), - fwkJobReports = cms.untracked.vstring('FrameworkJobReport') + 'Root_NoDictionary') ) diff --git a/FWCore/MessageService/python/MessageLogger_cfi.py b/FWCore/MessageService/python/MessageLogger_cfi.py index b45aed7202170..6dbc7845e0bd2 100644 --- a/FWCore/MessageService/python/MessageLogger_cfi.py +++ b/FWCore/MessageService/python/MessageLogger_cfi.py @@ -21,7 +21,7 @@ ), cerr = cms.untracked.PSet( optionalPSet = cms.untracked.bool(True), - INFO = cms.untracked.PSet( + INFO = cms.untracked.PSet( limit = cms.untracked.int32(0) ), noTimeStamps = cms.untracked.bool(False), @@ -48,16 +48,6 @@ ), threshold = cms.untracked.string('INFO') ), - FrameworkJobReport = cms.untracked.PSet( - optionalPSet = cms.untracked.bool(True), - default = cms.untracked.PSet( - limit = cms.untracked.int32(0) - ), - FwkJob = cms.untracked.PSet( - optionalPSet = cms.untracked.bool(True), - limit = cms.untracked.int32(10000000) - ) - ), suppressWarning = cms.untracked.vstring(), statistics = cms.untracked.vstring('cerr_stats'), cerr_stats = cms.untracked.PSet( @@ -83,8 +73,7 @@ categories = cms.untracked.vstring('FwkJob', 'FwkReport', 'FwkSummary', - 'Root_NoDictionary'), - fwkJobReports = cms.untracked.vstring('FrameworkJobReport') + 'Root_NoDictionary') ) diff --git a/FWCore/MessageService/src/MessageLoggerDefaults.h b/FWCore/MessageService/src/MessageLoggerDefaults.h index 1fd1bf3ff3c6d..646e5f7be2411 100644 --- a/FWCore/MessageService/src/MessageLoggerDefaults.h +++ b/FWCore/MessageService/src/MessageLoggerDefaults.h @@ -89,7 +89,6 @@ namespace edm { std::vector categories; std::vector destinations; - std::vector fwkJobReports; std::vector statistics; std::map destination; diff --git a/FWCore/MessageService/src/MessageServicePSetValidation.cc b/FWCore/MessageService/src/MessageServicePSetValidation.cc index bde88be565bfb..cc12625bda9ad 100644 --- a/FWCore/MessageService/src/MessageServicePSetValidation.cc +++ b/FWCore/MessageService/src/MessageServicePSetValidation.cc @@ -63,7 +63,6 @@ namespace edm { destinationPSets(pset); defaultPSet(pset); statisticsPSets(pset); - fwkJobReportPSets(pset); categoryPSets(pset, "MessageLogger"); // No other PSets -- unless they contain optionalPSet or placeholder=True @@ -104,20 +103,12 @@ namespace edm { noKeywords(statistics, "MessageLogger", "statistics"); noNonPSetUsage(pset, statistics, "MessageLogger", "statistics"); - fwkJobReports = check(pset, "MessageLogger", "fwkJobReports"); - noDuplicates(fwkJobReports, "MessageLogger", "fwkJobReports"); - noKeywords(fwkJobReports, "MessageLogger", "fwkJobReports"); - noNonPSetUsage(pset, fwkJobReports, "MessageLogger", "fwkJobReports"); - noDuplicates(fwkJobReports, destinations, "MessageLogger", "fwkJobReports", "destinations"); - noDuplicates(fwkJobReports, statistics, "MessageLogger", "fwkJobReports", "statistics"); - categories = check(pset, "MessageLogger", "categories"); noDuplicates(categories, "MessageLogger", "categories"); noKeywords(categories, "MessageLogger", "categories"); noNonPSetUsage(pset, categories, "MessageLogger", "categories"); noDuplicates(categories, destinations, "MessageLogger", "categories", "destinations"); noDuplicates(categories, statistics, "MessageLogger", "categories", "statistics"); - noDuplicates(categories, fwkJobReports, "MessageLogger", "categories", "fwkJobReports"); messageIDs = check(pset, "MessageLogger", "messageIDs"); noDuplicates(messageIDs, "MessageLogger", "messageIDs"); @@ -125,8 +116,6 @@ namespace edm { noNonPSetUsage(pset, messageIDs, "MessageLogger", "messageIDs"); noDuplicates(messageIDs, destinations, "MessageLogger", "messageIDs", "destinations"); noDuplicates(messageIDs, statistics, "MessageLogger", "messageIDs", "statistics"); - noDuplicates(messageIDs, fwkJobReports, "MessageLogger", "messageIDs", "fwkJobReports"); - noDuplicates(messageIDs, fwkJobReports, "MessageLogger", "messageIDs", "categories"); } // psetLists @@ -209,8 +198,6 @@ namespace edm { return true; if (s == "destinations") return true; - if (s == "fwkJobReports") - return true; if (s == "categories") return true; if (s == "messageIDs") @@ -321,8 +308,6 @@ namespace edm { return false; if (word == "messageIDs") return false; - if (word == "fwkJobReports") - return false; if (word == "destinations") return false; if (word == "statistics") @@ -428,8 +413,6 @@ namespace edm { continue; if (lookForMatch(statistics, *i)) continue; - if (lookForMatch(fwkJobReports, *i)) - continue; if (lookForMatch(categories, *i)) continue; if (lookForMatch(messageIDs, *i)) @@ -630,54 +613,6 @@ namespace edm { } // statisticsPSet - void edm::service::MessageServicePSetValidation::fwkJobReportPSets(ParameterSet const& pset) { - ParameterSet empty_PSet; - std::vector::const_iterator end = fwkJobReports.end(); - for (std::vector::const_iterator i = fwkJobReports.begin(); i != end; ++i) { - ParameterSet const& d = pset.getUntrackedParameterSet(*i, empty_PSet); - fwkJobReportPSet(d, *i); - } - } // fwkJobReportPSets - - void edm::service::MessageServicePSetValidation::fwkJobReportPSet(ParameterSet const& pset, - std::string const& psetName) { - // Category PSets - - categoryPSets(pset, psetName); - - // No other PSets -- unless they contain optionalPSet or placeholder=True - - noNoncategoryPsets(pset, psetName); - - // General parameters - - check(pset, psetName, "placeholder"); - std::string s = check(pset, "psetName", "filename"); - if ((s == "cerr") || (s == "cout")) { - flaws << psetName << " PSet: \n" << s << " is not allowed as a value of filename \n"; - } - s = check(pset, "psetName", "extension"); - if ((s == "cerr") || (s == "cout")) { - flaws << psetName << " PSet: \n" << s << " is not allowed as a value of extension \n"; - } - s = check(pset, "psetName", "output"); - - // No other parameters - - noneExcept(pset, psetName, "int"); - - vString okbool; - okbool.push_back("placeholder"); - okbool.push_back("optionalPSet"); - noneExcept(pset, psetName, "bool", okbool); - vString okstring; - okstring.push_back("output"); - okstring.push_back("filename"); - okstring.push_back("extension"); - noneExcept(pset, psetName, "string", okstring); - - } // fwkJobReportPSet - void edm::service::MessageServicePSetValidation::noNoncategoryPsets(ParameterSet const& pset, std::string const& psetName) { vString psnames; diff --git a/FWCore/MessageService/src/MessageServicePSetValidation.h b/FWCore/MessageService/src/MessageServicePSetValidation.h index bf55c09b9fcdf..4958a27bce1d4 100644 --- a/FWCore/MessageService/src/MessageServicePSetValidation.h +++ b/FWCore/MessageService/src/MessageServicePSetValidation.h @@ -81,8 +81,6 @@ namespace edm { void defaultPSet(ParameterSet const& main_pset); void statisticsPSets(ParameterSet const& pset); void statisticsPSet(ParameterSet const& pset, std::string const& psetName); - void fwkJobReportPSets(ParameterSet const& pset); - void fwkJobReportPSet(ParameterSet const& pset, std::string const& psetName); void categoryPSets(ParameterSet const& pset, std::string const& psetName); void categoryPSet(ParameterSet const& pset, std::string const& OuterPsetName, std::string const& categoryName); void catInts(ParameterSet const& pset, std::string const& psetName, std::string const& categoryName); @@ -257,7 +255,6 @@ namespace edm { std::ostringstream flaws; std::vector destinations; std::vector statistics; - std::vector fwkJobReports; std::vector categories; std::vector messageIDs; std::vector debugModules; From 50a4088f40e80542e5f192a8a39fdc2a948f69e0 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Wed, 21 Oct 2020 10:58:00 -0500 Subject: [PATCH 2/4] FrameworkJobReport as a category needs to be removed This was only used by fwkJobReports option. --- .../MessageService/src/HardwiredDefaults.cc | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/FWCore/MessageService/src/HardwiredDefaults.cc b/FWCore/MessageService/src/HardwiredDefaults.cc index ebb51b0c80685..3ee9f48446f97 100644 --- a/FWCore/MessageService/src/HardwiredDefaults.cc +++ b/FWCore/MessageService/src/HardwiredDefaults.cc @@ -78,16 +78,6 @@ namespace edm { cerr.category["Root_NoDictionary"] = Root_NoDictionary; destination["cerr"] = cerr; } - { - Destination FrameworkJobReport; // PSet FrameworkJobReport - Category default_for_dest; // PSet default - default_for_dest.limit = 0; // int32 limit = 0 - FrameworkJobReport.category["default"] = default_for_dest; - Category FwkJob; // PSet FwkJob - FwkJob.limit = 10000000; // int32 limit = 10000000 - FrameworkJobReport.category["FwkJob"] = FwkJob; - destination["FrameworkJobReport"] = FrameworkJobReport; - } { Destination cerr_stats; // PSet cerr_stats cerr_stats.threshold = "WARNING"; // string threshold = "WARNING" @@ -133,16 +123,6 @@ namespace edm { cerr.category["Root_NoDictionary"] = Root_NoDictionary; destination["cerr"] = cerr; } - { - Destination FrameworkJobReport; // PSet FrameworkJobReport - Category default_for_dest; // PSet default - default_for_dest.limit = 0; // int32 limit = 0 - FrameworkJobReport.category["default"] = default_for_dest; - Category FwkJob; // PSet FwkJob - FwkJob.limit = 10000000; // int32 limit = 10000000 - FrameworkJobReport.category["FwkJob"] = FwkJob; - destination["FrameworkJobReport"] = FrameworkJobReport; - } { Destination cerr_stats; // PSet cerr_stats cerr_stats.threshold = "INFO"; // string threshold = "INFO" From 2209a878097936420a961ef5cf90ce56d23bb0c8 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Wed, 21 Oct 2020 11:00:23 -0500 Subject: [PATCH 3/4] Removed deprecated messageIDs parameter messageIDs was just an old synonym for categories. --- FWCore/MessageService/src/MessageLoggerScribe.cc | 9 --------- .../src/MessageServicePSetValidation.cc | 15 --------------- .../src/MessageServicePSetValidation.h | 1 - .../src/ThreadSafeLogMessageLoggerScribe.cc | 9 --------- FWCore/MessageService/test/messageLogger_cfg.py | 5 ++--- 5 files changed, 2 insertions(+), 37 deletions(-) diff --git a/FWCore/MessageService/src/MessageLoggerScribe.cc b/FWCore/MessageService/src/MessageLoggerScribe.cc index 0b59cd17b2c3f..425c9f7d787be 100644 --- a/FWCore/MessageService/src/MessageLoggerScribe.cc +++ b/FWCore/MessageService/src/MessageLoggerScribe.cc @@ -253,15 +253,6 @@ namespace edm { // grab list of categories vString categories = getAparameter(*job_pset_p, "categories", empty_vString); - // grab list of messageIDs -- these are a synonym for categories - // Note -- the use of messageIDs is deprecated in favor of categories - { - vString messageIDs = getAparameter(*job_pset_p, "messageIDs", empty_vString); - - // combine the lists, not caring about possible duplicates (for now) - copy_all(messageIDs, std::back_inserter(categories)); - } // no longer need messageIDs - // grab list of hardwired categories (hardcats) -- these are to be added // to the list of categories { diff --git a/FWCore/MessageService/src/MessageServicePSetValidation.cc b/FWCore/MessageService/src/MessageServicePSetValidation.cc index cc12625bda9ad..13ffcb653f087 100644 --- a/FWCore/MessageService/src/MessageServicePSetValidation.cc +++ b/FWCore/MessageService/src/MessageServicePSetValidation.cc @@ -110,13 +110,6 @@ namespace edm { noDuplicates(categories, destinations, "MessageLogger", "categories", "destinations"); noDuplicates(categories, statistics, "MessageLogger", "categories", "statistics"); - messageIDs = check(pset, "MessageLogger", "messageIDs"); - noDuplicates(messageIDs, "MessageLogger", "messageIDs"); - noKeywords(messageIDs, "MessageLogger", "messageIDs"); - noNonPSetUsage(pset, messageIDs, "MessageLogger", "messageIDs"); - noDuplicates(messageIDs, destinations, "MessageLogger", "messageIDs", "destinations"); - noDuplicates(messageIDs, statistics, "MessageLogger", "messageIDs", "statistics"); - } // psetLists void edm::service::MessageServicePSetValidation::suppressionLists(ParameterSet const& pset) { @@ -200,8 +193,6 @@ namespace edm { return true; if (s == "categories") return true; - if (s == "messageIDs") - return true; if (s == "debugModules") return true; if (s == "suppressInfo") @@ -306,8 +297,6 @@ namespace edm { return false; if (word == "categories") return false; - if (word == "messageIDs") - return false; if (word == "destinations") return false; if (word == "statistics") @@ -415,8 +404,6 @@ namespace edm { continue; if (lookForMatch(categories, *i)) continue; - if (lookForMatch(messageIDs, *i)) - continue; if ((*i) == "default") continue; ParameterSet empty_PSet; @@ -621,8 +608,6 @@ namespace edm { for (vString::const_iterator i = psnames.begin(); i != end; ++i) { if (lookForMatch(categories, *i)) continue; - if (lookForMatch(messageIDs, *i)) - continue; if ((*i) == "default") continue; if ((*i) == "ERROR") diff --git a/FWCore/MessageService/src/MessageServicePSetValidation.h b/FWCore/MessageService/src/MessageServicePSetValidation.h index 4958a27bce1d4..b6038b5d6b09c 100644 --- a/FWCore/MessageService/src/MessageServicePSetValidation.h +++ b/FWCore/MessageService/src/MessageServicePSetValidation.h @@ -256,7 +256,6 @@ namespace edm { std::vector destinations; std::vector statistics; std::vector categories; - std::vector messageIDs; std::vector debugModules; std::vector suppressInfo; std::vector suppressFwkInfo; diff --git a/FWCore/MessageService/src/ThreadSafeLogMessageLoggerScribe.cc b/FWCore/MessageService/src/ThreadSafeLogMessageLoggerScribe.cc index d34c39adfa77b..40fd2410d2e63 100644 --- a/FWCore/MessageService/src/ThreadSafeLogMessageLoggerScribe.cc +++ b/FWCore/MessageService/src/ThreadSafeLogMessageLoggerScribe.cc @@ -234,15 +234,6 @@ namespace edm { // grab list of categories vString categories = getAparameter(*job_pset_p, "categories", empty_vString); - // grab list of messageIDs -- these are a synonym for categories - // Note -- the use of messageIDs is deprecated in favor of categories - { - vString messageIDs = getAparameter(*job_pset_p, "messageIDs", empty_vString); - - // combine the lists, not caring about possible duplicates (for now) - copy_all(messageIDs, std::back_inserter(categories)); - } // no longer need messageIDs - // grab list of hardwired categories (hardcats) -- these are to be added // to the list of categories -- change log 24 { diff --git a/FWCore/MessageService/test/messageLogger_cfg.py b/FWCore/MessageService/test/messageLogger_cfg.py index 40d0477c6e55b..e435b65aaeafa 100644 --- a/FWCore/MessageService/test/messageLogger_cfg.py +++ b/FWCore/MessageService/test/messageLogger_cfg.py @@ -10,8 +10,6 @@ process.load("FWCore.MessageService.test.Services_cff") process.MessageLogger = cms.Service("MessageLogger", - messageIDs = cms.untracked.vstring('unimportant', - 'trkwarning'), default = cms.untracked.PSet( limit = cms.untracked.int32(100), timespan = cms.untracked.int32(60) @@ -37,7 +35,8 @@ threshold = cms.untracked.string('ERROR') ), debugModules = cms.untracked.vstring('sendSomeMessages'), - categories = cms.untracked.vstring('postBeginJob'), + categories = cms.untracked.vstring('postBeginJob', 'unimportant', + 'trkwarning'), destinations = cms.untracked.vstring('detailedInfo', 'critical') ) From 81b730f37a349210a787aa8daba29827d0b6b89b Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Wed, 21 Oct 2020 12:11:08 -0500 Subject: [PATCH 4/4] Remove unused FwkJob category from configurations --- FWCore/MessageLogger/src/JobReport.cc | 2 -- .../python/MessageLogger_ReleaseValidation_cfi.py | 6 +----- FWCore/MessageService/python/MessageLogger_cfi.py | 7 +------ FWCore/MessageService/src/HardwiredDefaults.cc | 12 ------------ 4 files changed, 2 insertions(+), 25 deletions(-) diff --git a/FWCore/MessageLogger/src/JobReport.cc b/FWCore/MessageLogger/src/JobReport.cc index 1f5dc6155b5da..78e5537d22303 100644 --- a/FWCore/MessageLogger/src/JobReport.cc +++ b/FWCore/MessageLogger/src/JobReport.cc @@ -665,7 +665,6 @@ namespace edm { msg << " \n" << "\n"; msg << std::flush; - //LogInfo("FwkJob") << msg.str(); } } @@ -687,7 +686,6 @@ namespace edm { msg << " \n" << "\n"; msg << std::flush; - //LogInfo("FwkJob") << msg.str(); } } diff --git a/FWCore/MessageService/python/MessageLogger_ReleaseValidation_cfi.py b/FWCore/MessageService/python/MessageLogger_ReleaseValidation_cfi.py index 4b8ccb07152af..ec9e3ab40ebec 100644 --- a/FWCore/MessageService/python/MessageLogger_ReleaseValidation_cfi.py +++ b/FWCore/MessageService/python/MessageLogger_ReleaseValidation_cfi.py @@ -34,9 +34,6 @@ Root_NoDictionary = cms.untracked.PSet( limit = cms.untracked.int32(0) ), - FwkJob = cms.untracked.PSet( - limit = cms.untracked.int32(0) - ), FwkSummary = cms.untracked.PSet( reportEvery = cms.untracked.int32(1), limit = cms.untracked.int32(10000000) @@ -62,8 +59,7 @@ 'cout', 'cerr'), debugModules = cms.untracked.vstring(), - categories = cms.untracked.vstring('FwkJob', - 'FwkReport', + categories = cms.untracked.vstring('FwkReport', 'FwkSummary', 'Root_NoDictionary') ) diff --git a/FWCore/MessageService/python/MessageLogger_cfi.py b/FWCore/MessageService/python/MessageLogger_cfi.py index 6dbc7845e0bd2..9f2a995bb90c8 100644 --- a/FWCore/MessageService/python/MessageLogger_cfi.py +++ b/FWCore/MessageService/python/MessageLogger_cfi.py @@ -37,10 +37,6 @@ optionalPSet = cms.untracked.bool(True), limit = cms.untracked.int32(0) ), - FwkJob = cms.untracked.PSet( - optionalPSet = cms.untracked.bool(True), - limit = cms.untracked.int32(0) - ), FwkSummary = cms.untracked.PSet( optionalPSet = cms.untracked.bool(True), reportEvery = cms.untracked.int32(1), @@ -70,8 +66,7 @@ 'cout', 'cerr'), debugModules = cms.untracked.vstring(), - categories = cms.untracked.vstring('FwkJob', - 'FwkReport', + categories = cms.untracked.vstring('FwkReport', 'FwkSummary', 'Root_NoDictionary') ) diff --git a/FWCore/MessageService/src/HardwiredDefaults.cc b/FWCore/MessageService/src/HardwiredDefaults.cc index 3ee9f48446f97..7de9799087d92 100644 --- a/FWCore/MessageService/src/HardwiredDefaults.cc +++ b/FWCore/MessageService/src/HardwiredDefaults.cc @@ -45,7 +45,6 @@ namespace edm { void MessageLoggerDefaults::hardwireGridJobMode() { // std::cerr << " ======= hardwireGridJobMode() \n"; destinations.push_back("cerr"); - categories.push_back("FwkJob"); categories.push_back("FwkReport"); categories.push_back("FwkSummary"); categories.push_back("Root_NoDictionary"); @@ -70,9 +69,6 @@ namespace edm { FwkSummary.limit = 10000000; // int32 limit = 10000000 FwkSummary.reportEvery = 1; // int32 reportEvery = 1 cerr.category["FwkSummary"] = FwkSummary; - Category FwkJob; // PSet FwkJob - FwkJob.limit = 0; // int32 limit = 0 - cerr.category["FwkJob"] = FwkJob; Category Root_NoDictionary; // PSet Root_NoDictionary Root_NoDictionary.limit = 0; // int32 limit = 0 cerr.category["Root_NoDictionary"] = Root_NoDictionary; @@ -90,7 +86,6 @@ namespace edm { void MessageLoggerDefaults::hardwireReleaseValidationJobMode() { // std::cerr << " ======= hardwireReleaseValidationJobMode() \n"; destinations.push_back("cerr"); - categories.push_back("FwkJob"); categories.push_back("FwkReport"); categories.push_back("FwkSummary"); categories.push_back("Root_NoDictionary"); @@ -115,9 +110,6 @@ namespace edm { FwkSummary.limit = 10000000; // int32 limit = 10000000 FwkSummary.reportEvery = 1; // int32 reportEvery = 1 cerr.category["FwkSummary"] = FwkSummary; - Category FwkJob; // PSet FwkJob - FwkJob.limit = 0; // int32 limit = 0 - cerr.category["FwkJob"] = FwkJob; Category Root_NoDictionary; // PSet Root_NoDictionary Root_NoDictionary.limit = 0; // int32 limit = 0 cerr.category["Root_NoDictionary"] = Root_NoDictionary; @@ -135,7 +127,6 @@ namespace edm { void MessageLoggerDefaults::hardwireAnalysisJobMode() { // std::cerr << " ======= hardwireAnalysisJobMode() \n"; destinations.push_back("warnings"); - categories.push_back("FwkJob"); categories.push_back("FwkReport"); categories.push_back("FwkSummary"); categories.push_back("Root_NoDictionary"); @@ -159,9 +150,6 @@ namespace edm { Category FwkSummary; // PSet FwkSummary FwkSummary.limit = 10000000; // int32 limit = 10000000 warnings.category["FwkSummary"] = FwkSummary; - Category FwkJob; // PSet FwkJob - FwkJob.limit = 0; // int32 limit = 0 - warnings.category["FwkJob"] = FwkJob; Category Root_NoDictionary; // PSet Root_NoDictionary Root_NoDictionary.limit = 0; // int32 limit = 0 warnings.category["Root_NoDictionary"] = Root_NoDictionary;