public void onSuccessRespEvent(ResponseEvent event, ActivityContextInterface aci) {
		
		if (tracer.isFineEnabled())
			tracer.fine("Received 2xx (SUCCESS) response:\n"+event.getResponse());
		
		final SbbLocalObject sbbLocalObject = sbbContext.getSbbLocalObject();
		aci.detach(sbbLocalObject);
		
		final Response response = event.getResponse();
		final SIPETagHeader sipeTagHeader = (SIPETagHeader) response.getHeader(SIPETagHeader.NAME);
		if(sipeTagHeader != null) {
			this.setETagCMP(sipeTagHeader.getETag());
		}
				
		final PublishRequestType type = getPublishRequestTypeCMP();
		
		if (type != PublishRequestType.REMOVE) {
			final ExpiresHeader expiresHeader = (ExpiresHeader) response.getHeader(ExpiresHeader.NAME);
			if(expiresHeader!=null && expiresHeader.getExpires() != 0) {
				//update expires time.
				setExpiresCMP(expiresHeader.getExpires());
				startExpiresTimer();
			}
		}
		
		PostponedRequest postponedRequest = null;
		setPublishRequestTypeCMP(null);

		try{
			switch (type) {
			case NEW:
				postponedRequest = getPostponedRequestCMP();
				getParent().newPublicationSucceed((PublicationClientChildSbbLocalObject) sbbLocalObject);
				break;
			case REFRESH:
				postponedRequest = getPostponedRequestCMP();
				break;
			case UPDATE:
				postponedRequest = getPostponedRequestCMP();
				getParent().modifyPublicationSucceed((PublicationClientChildSbbLocalObject) sbbLocalObject);
				break;
			case REMOVE:
				getParent().removePublicationSucceed((PublicationClientChildSbbLocalObject) sbbLocalObject);
				break;
			}
		}
		catch(Exception e) {
			if(tracer.isSevereEnabled()) {
				tracer.severe("Exception in publication parent!", e);
			}
		}

		if (postponedRequest != null) {
			// refresh may be concurrent with another request, if there is a
			// postponed request resume it now
			postponedRequest.resume(this);
		}
		
	}
public void onSuccessRespEvent ( ResponseEvent event , ActivityContextInterface aci ) { if ( tracer . isFineEnabled ( ) ) tracer . fine ( "Received 2xx (SUCCESS) response:\n" + event . getResponse ( ) ) ; final SbbLocalObject sbbLocalObject = sbbContext . getSbbLocalObject ( ) ; aci . detach ( sbbLocalObject ) ; final Response response = event . getResponse ( ) ; final SIPETagHeader sipeTagHeader = ( SIPETagHeader ) response . getHeader ( SIPETagHeader . NAME ) ; if ( sipeTagHeader != null ) { this . setETagCMP ( sipeTagHeader . getETag ( ) ) ; } final PublishRequestType type = getPublishRequestTypeCMP ( ) ; if ( type != PublishRequestType . REMOVE ) { final ExpiresHeader expiresHeader = ( ExpiresHeader ) response . getHeader ( ExpiresHeader . NAME ) ; if ( expiresHeader != null && expiresHeader . getExpires ( ) != 0 ) { setExpiresCMP ( expiresHeader . getExpires ( ) ) ; startExpiresTimer ( ) ; } } PostponedRequest postponedRequest = null ; setPublishRequestTypeCMP ( null ) ; try { switch ( type ) { case NEW : postponedRequest = getPostponedRequestCMP ( ) ; getParent ( ) . newPublicationSucceed ( ( PublicationClientChildSbbLocalObject ) sbbLocalObject ) ; break ; case REFRESH : postponedRequest = getPostponedRequestCMP ( ) ; break ; case UPDATE : postponedRequest = getPostponedRequestCMP ( ) ; getParent ( ) . modifyPublicationSucceed ( ( PublicationClientChildSbbLocalObject ) sbbLocalObject ) ; break ; case REMOVE : getParent ( ) . removePublicationSucceed ( ( PublicationClientChildSbbLocalObject ) sbbLocalObject ) ; break ; } } catch ( Exception e ) { if ( tracer . isSevereEnabled ( ) ) { tracer . severe ( "Exception in publication parent!" , e ) ; } } if ( postponedRequest != null ) { postponedRequest . resume ( this ) ; } }
//////////////////