From: <mat...@or...> - 2014-06-23 15:47:22
|
osaf/services/saf/smfsv/smfd/SmfCampState.cc | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) By way of ticket #677 we restore the pbe in the campaign completed state itself. i.e. In SmfCampStateExecuting::executeWrapup() { a) we first restore the pbe i.e. i_camp->restorePbe(); b) And, then subsequently update the campaign state, i.e. changeState(i_camp, SmfCampStateExecCompleted::instance()); } However, it is possible that when the pbe is restored, the pbe could take more time (than the immutil wait time) to become functionally ready. And in such sitautions, the updation to the campaign state will not succeed until the PBE is really ready. The patch updates the campaign state first (to imm) inthe completed state and subsequently restores the pbe. diff --git a/osaf/services/saf/smfsv/smfd/SmfCampState.cc b/osaf/services/saf/smfsv/smfd/SmfCampState.cc --- a/osaf/services/saf/smfsv/smfd/SmfCampState.cc +++ b/osaf/services/saf/smfsv/smfd/SmfCampState.cc @@ -838,9 +838,6 @@ SmfCampStateExecuting::executeWrapup(Smf return SMF_CAMP_FAILED; } - //Activate IMM BPE if active when campaign was started. - i_camp->restorePbe(); - // TODO Start wait to complete timer LOG_NO("CAMP: Start wait to complete timer (not implemented yet)"); @@ -848,6 +845,10 @@ SmfCampStateExecuting::executeWrapup(Smf changeState(i_camp, SmfCampStateExecCompleted::instance()); LOG_NO("CAMP: Upgrade campaign completed %s", i_camp->getCampaignName().c_str()); + + //Activate IMM BPE if active when campaign was started. + i_camp->restorePbe(); + TRACE_LEAVE(); return SMF_CAMP_COMPLETED; } |