RicezioneBusteExternalErrorGenerator.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */
  20. package org.openspcoop2.pdd.services.error;

  21. import java.util.List;

  22. import org.openspcoop2.core.constants.TipoPdD;
  23. import org.openspcoop2.core.eccezione.details.DettaglioEccezione;
  24. import org.openspcoop2.message.OpenSPCoop2Message;
  25. import org.openspcoop2.message.OpenSPCoop2MessageFactory;
  26. import org.openspcoop2.message.config.ConfigurationRFC7807;
  27. import org.openspcoop2.message.config.IntegrationErrorReturnConfiguration;
  28. import org.openspcoop2.message.constants.IntegrationError;
  29. import org.openspcoop2.message.constants.MessageType;
  30. import org.openspcoop2.pdd.core.PdDContext;
  31. import org.openspcoop2.pdd.core.transazioni.Transaction;
  32. import org.openspcoop2.pdd.core.transazioni.TransactionContext;
  33. import org.openspcoop2.protocol.engine.builder.ImbustamentoErrore;
  34. import org.openspcoop2.protocol.sdk.Busta;
  35. import org.openspcoop2.protocol.sdk.Context;
  36. import org.openspcoop2.protocol.sdk.Eccezione;
  37. import org.openspcoop2.protocol.sdk.Integrazione;
  38. import org.openspcoop2.protocol.sdk.ProtocolException;
  39. import org.openspcoop2.protocol.sdk.builder.ProprietaErroreApplicativo;
  40. import org.openspcoop2.protocol.sdk.constants.CodiceErroreCooperazione;
  41. import org.openspcoop2.protocol.sdk.constants.ErroreCooperazione;
  42. import org.openspcoop2.protocol.sdk.constants.ErroreIntegrazione;
  43. import org.openspcoop2.protocol.sdk.constants.ErroriIntegrazione;
  44. import org.openspcoop2.protocol.sdk.constants.IntegrationFunctionError;
  45. import org.openspcoop2.protocol.sdk.constants.TipoOraRegistrazione;
  46. import org.openspcoop2.protocol.sdk.state.IState;
  47. import org.openspcoop2.protocol.sdk.state.RequestInfo;
  48. import org.openspcoop2.security.message.MessageSecurityContext;
  49. import org.slf4j.Logger;

  50. /**
  51.  * RicezioneBusteExternalErrorGenerator
  52.  *
  53.  * @author Poli Andrea (apoli@link.it)
  54.  * @author $Author$
  55.  * @version $Rev$, $Date$
  56.  */
  57. public class RicezioneBusteExternalErrorGenerator extends AbstractErrorGenerator {

  58.     private ImbustamentoErrore imbustamentoErrore;
  59.     public ImbustamentoErrore getImbustamentoErrore() {
  60.         return this.imbustamentoErrore;
  61.     }

  62.     private boolean forceSoapPrefixCompatibilitOpenSPCoopV1 = false;
  63.    
  64.     private IState state;
  65.     public void updateState(IState state) {
  66.         this.state = state;
  67.     }

  68.     public RicezioneBusteExternalErrorGenerator(Logger log, String idModulo, RequestInfo requestInfo, IState state) throws ProtocolException{
  69.        
  70.         super(log, idModulo, requestInfo, TipoPdD.APPLICATIVA, false);

  71.         this.state = state;
  72.        
  73.         ProprietaErroreApplicativo proprieta = this.openspcoopProperties.getProprietaGestioneErrorePD(this.protocolFactory.createProtocolManager());
  74.         this.imbustamentoErrore = new ImbustamentoErrore(this.log, this.protocolFactory, this.state,
  75.                 this.serviceBinding,
  76.                 proprieta.getDefaultFaultCodeIntegrationNamespace(), proprieta.getDefaultFaultCodeProtocolNamespace(),
  77.                 proprieta.getFaultActor(),
  78.                 requestInfo.getIdTransazione());
  79.        
  80.         this.forceSoapPrefixCompatibilitOpenSPCoopV1 = this.openspcoopProperties.isForceSoapPrefixCompatibilitaOpenSPCoopV1();

  81.     }
  82.    
  83.     public OpenSPCoop2Message buildErroreProcessamento(Context context, IntegrationFunctionError integrationFunctionError, ErroreIntegrazione erroreIntegrazione) {
  84.         return this.buildErroreProcessamento(context, integrationFunctionError, erroreIntegrazione, null);
  85.     }
  86.     public OpenSPCoop2Message buildErroreProcessamento(Context context, IntegrationFunctionError integrationFunctionError, ErroreIntegrazione erroreIntegrazione, Throwable eProcessamento) {
  87.        
  88.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  89.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  90.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  91.         boolean useProblemRFC7807 = rfc7807!=null;
  92.         try{
  93.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  94.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  95.             OpenSPCoop2Message msg = this.imbustamentoErrore.buildFaultProtocollo_processamento(this.identitaPdD,this.tipoPdD,this.idModulo,
  96.                     erroreIntegrazione,eProcessamento,
  97.                     msgTypeErrorResponse,rfc7807, returnConfig, integrationFunctionError, this.getInterfaceName(),
  98.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  99.                     context);  
  100.             return msg;
  101.         }catch(Exception e){
  102.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  103.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse,useProblemRFC7807, e);
  104.         }
  105.     }
  106.    
  107.     public OpenSPCoop2Message buildErroreProcessamento(Context context, IntegrationFunctionError integrationFunctionError, DettaglioEccezione dettaglioEccezione){  
  108.        
  109.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  110.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  111.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  112.         boolean useProblemRFC7807 = rfc7807!=null;
  113.         try{        
  114.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  115.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  116.             OpenSPCoop2Message msg = this.imbustamentoErrore.buildFaultProtocollo_processamento(dettaglioEccezione,
  117.                     this.protocolFactory.createProtocolManager().isGenerazioneDetailsFaultProtocollo_EccezioneProcessamento(),
  118.                     msgTypeErrorResponse,rfc7807, returnConfig, integrationFunctionError, this.getInterfaceName(),
  119.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  120.                     context);
  121.             return msg;
  122.         }catch(Exception e){
  123.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  124.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  125.         }
  126.     }
  127.    
  128.     public OpenSPCoop2Message buildErroreIntestazione(Context context, IntegrationFunctionError integrationFunctionError)  {

  129.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  130.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  131.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  132.         boolean useProblemRFC7807 = rfc7807!=null;
  133.         try{        
  134.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  135.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  136.             ErroreIntegrazione erroreIntegrazione = ErroriIntegrazione.ERRORE_5XX_GENERICO_PROCESSAMENTO_MESSAGGIO.getErroreIntegrazione();
  137.             OpenSPCoop2Message msg = this.imbustamentoErrore.buildFaultProtocollo_intestazione(
  138.                     this.identitaPdD,this.tipoPdD,this.idModulo,
  139.                     erroreIntegrazione, msgTypeErrorResponse,rfc7807, returnConfig, integrationFunctionError, this.getInterfaceName(),
  140.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  141.                     context);  
  142.             return msg;
  143.         }catch(Exception e){
  144.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  145.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  146.         }
  147.     }
  148.    
  149.     public OpenSPCoop2Message buildErroreIntestazione(Context context, IntegrationFunctionError integrationFunctionError, ErroreIntegrazione erroreIntegrazione) {
  150.        
  151.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  152.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  153.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  154.         boolean useProblemRFC7807 = rfc7807!=null;
  155.         try{        
  156.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  157.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  158.             OpenSPCoop2Message msg = this.imbustamentoErrore.buildFaultProtocollo_intestazione(this.identitaPdD,this.tipoPdD,this.idModulo,
  159.                     erroreIntegrazione,msgTypeErrorResponse,rfc7807, returnConfig, integrationFunctionError, this.getInterfaceName(),
  160.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  161.                     context);  
  162.             return msg;
  163.         }catch(Exception e){
  164.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  165.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  166.         }
  167.     }
  168.     public OpenSPCoop2Message buildErroreIntestazione(Context context, IntegrationFunctionError integrationFunctionError, CodiceErroreCooperazione codiceErroreCooperazione, String descrizione) {
  169.        
  170.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  171.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  172.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  173.         boolean useProblemRFC7807 = rfc7807!=null;
  174.         try{        
  175.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  176.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  177.             OpenSPCoop2Message msg = this.imbustamentoErrore.buildFaultProtocollo_intestazione(this.identitaPdD,this.tipoPdD,this.idModulo,
  178.                     codiceErroreCooperazione,descrizione,
  179.                     msgTypeErrorResponse,rfc7807, returnConfig, integrationFunctionError, this.getInterfaceName(),
  180.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  181.                     context);  
  182.             return msg;
  183.         }catch(Exception e){
  184.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  185.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  186.         }
  187.     }
  188.    
  189.    
  190.    
  191.     public OpenSPCoop2Message buildErroreProtocollo_Processamento(IntegrationFunctionError integrationFunctionError,
  192.             Busta busta,Integrazione integrazione, String idTransazione,
  193.             List<Eccezione> errori,
  194.             java.util.Map<String,Object> messageSecurityPropertiesResponse,
  195.             MessageSecurityContext messageSecurityContext,long attesaAttiva,int checkInterval,String profiloGestione,
  196.             TipoOraRegistrazione tipoTempo,boolean generazioneListaTrasmissioni,Exception eProcessamento,
  197.             PdDContext pddContext){
  198.        
  199.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  200.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  201.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  202.         boolean useProblemRFC7807 = rfc7807!=null;
  203.         try{        
  204.             Transaction transactionNullable = null;
  205.             try{
  206.                 transactionNullable = TransactionContext.getTransaction(idTransazione);
  207.             }catch(Exception e){
  208.                 // puo' non essere presente in comunicazioni stateful
  209.             }
  210.            
  211.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  212.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  213.             OpenSPCoop2Message msg = this.imbustamentoErrore.msgErroreProtocollo_Processamento(this.identitaPdD,this.tipoPdD,pddContext,
  214.                     this.idModulo,
  215.                     busta, integrazione, idTransazione, errori,
  216.                     messageSecurityPropertiesResponse, messageSecurityContext,
  217.                     attesaAttiva, checkInterval, profiloGestione,
  218.                     tipoTempo, generazioneListaTrasmissioni,
  219.                     eProcessamento, msgTypeErrorResponse, rfc7807, returnConfig, integrationFunctionError,
  220.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  221.                     transactionNullable!=null ? transactionNullable.getTempiElaborazione() : null,
  222.                     this.requestInfo);  
  223.             return msg;
  224.         }catch(Exception e){
  225.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  226.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  227.         }
  228.        
  229.     }
  230.    
  231.     public OpenSPCoop2Message buildErroreProtocollo_Processamento(IntegrationFunctionError integrationFunctionError,
  232.             Busta busta,Integrazione integrazione, String idTransazione,
  233.             ErroreCooperazione erroreCooperazione,
  234.             java.util.Map<String,Object> messageSecurityPropertiesResponse,
  235.             MessageSecurityContext messageSecurityContext,long attesaAttiva,int checkInterval,String profiloGestione,
  236.             TipoOraRegistrazione tipoTempo,boolean generazioneListaTrasmissioni,
  237.             Exception eProcessamento,
  238.             PdDContext pddContext){
  239.        
  240.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  241.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  242.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  243.         boolean useProblemRFC7807 = rfc7807!=null;
  244.         try{        
  245.             Transaction transactionNullable = null;
  246.             try{
  247.                 transactionNullable = TransactionContext.getTransaction(idTransazione);
  248.             }catch(Exception e){
  249.                 // puo' non essere presente in comunicazioni stateful
  250.             }
  251.            
  252.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  253.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  254.             OpenSPCoop2Message msg = this.imbustamentoErrore.msgErroreProtocollo_Processamento(this.identitaPdD,this.tipoPdD,pddContext,
  255.                     this.idModulo,
  256.                     busta, integrazione, idTransazione, erroreCooperazione,
  257.                     messageSecurityPropertiesResponse, messageSecurityContext,
  258.                     attesaAttiva, checkInterval, profiloGestione,
  259.                     tipoTempo, generazioneListaTrasmissioni,
  260.                     eProcessamento, msgTypeErrorResponse, rfc7807, returnConfig, integrationFunctionError,
  261.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  262.                     transactionNullable!=null ? transactionNullable.getTempiElaborazione() : null,
  263.                     this.requestInfo);
  264.             return msg;
  265.         }catch(Exception e){
  266.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  267.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  268.         }
  269.        
  270.     }
  271.    
  272.     public OpenSPCoop2Message buildErroreProtocollo_Processamento(IntegrationFunctionError integrationFunctionError,
  273.             Busta busta,Integrazione integrazione, String idTransazione,
  274.             ErroreIntegrazione erroreIntegrazione,
  275.             java.util.Map<String,Object> messageSecurityPropertiesResponse,
  276.             MessageSecurityContext messageSecurityContext,long attesaAttiva,int checkInterval,String profiloGestione,
  277.             TipoOraRegistrazione tipoTempo,boolean generazioneListaTrasmissioni,
  278.             Exception eProcessamento,
  279.             PdDContext pddContext){
  280.        
  281.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  282.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  283.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  284.         boolean useProblemRFC7807 = rfc7807!=null;
  285.         try{        
  286.             Transaction transactionNullable = null;
  287.             try{
  288.                 transactionNullable = TransactionContext.getTransaction(idTransazione);
  289.             }catch(Exception e){
  290.                 // puo' non essere presente in comunicazioni stateful
  291.             }
  292.            
  293.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  294.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  295.             OpenSPCoop2Message msg = this.imbustamentoErrore.msgErroreProtocollo_Processamento(this.identitaPdD,this.tipoPdD,pddContext,
  296.                     this.idModulo,
  297.                     busta, integrazione, idTransazione, erroreIntegrazione,
  298.                     messageSecurityPropertiesResponse, messageSecurityContext,
  299.                     attesaAttiva, checkInterval, profiloGestione,
  300.                     tipoTempo, generazioneListaTrasmissioni,
  301.                     eProcessamento, msgTypeErrorResponse, rfc7807, returnConfig, integrationFunctionError,
  302.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  303.                     transactionNullable!=null ? transactionNullable.getTempiElaborazione() : null,
  304.                     this.requestInfo);
  305.             return msg;
  306.         }catch(Exception e){
  307.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  308.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  309.         }
  310.        
  311.     }
  312.    
  313.     public  OpenSPCoop2Message buildErroreProtocollo_Intestazione(IntegrationFunctionError integrationFunctionError,
  314.             Busta busta,Integrazione integrazione, String idTransazione,        
  315.             List<Eccezione> errori,
  316.             java.util.Map<String,Object> messageSecurityPropertiesResponse,
  317.             MessageSecurityContext messageSecurityContext,long attesaAttiva,int checkInterval,String profiloGestione,
  318.             TipoOraRegistrazione tipoTempo,boolean generazioneListaTrasmissioni,
  319.             PdDContext pddContext){
  320.        
  321.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  322.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  323.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  324.         boolean useProblemRFC7807 = rfc7807!=null;
  325.         try{        
  326.             Transaction transactionNullable = null;
  327.             try{
  328.                 transactionNullable = TransactionContext.getTransaction(idTransazione);
  329.             }catch(Exception e){
  330.                 // puo' non essere presente in comunicazioni stateful
  331.             }
  332.            
  333.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  334.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  335.             OpenSPCoop2Message msg = this.imbustamentoErrore.msgErroreProtocollo_Intestazione(this.identitaPdD,this.tipoPdD,pddContext,
  336.                     this.idModulo,
  337.                     busta, integrazione, idTransazione, errori,
  338.                     messageSecurityPropertiesResponse, messageSecurityContext,
  339.                     attesaAttiva, checkInterval, profiloGestione,
  340.                     tipoTempo, generazioneListaTrasmissioni,
  341.                     msgTypeErrorResponse, rfc7807, returnConfig, integrationFunctionError,
  342.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  343.                     transactionNullable!=null ? transactionNullable.getTempiElaborazione() : null,
  344.                     this.requestInfo);
  345.             return msg;
  346.         }catch(Exception e){
  347.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  348.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  349.         }
  350.     }
  351.    
  352.     public OpenSPCoop2Message buildErroreProtocollo_Intestazione(IntegrationFunctionError integrationFunctionError,
  353.             Busta busta,Integrazione integrazione,
  354.             String idTransazione,
  355.             ErroreCooperazione erroreCooperazione,
  356.             java.util.Map<String,Object> messageSecurityPropertiesResponse,
  357.             MessageSecurityContext messageSecurityContext,
  358.             long attesaAttiva,
  359.             int checkInterval,
  360.             String profiloGestione,
  361.             TipoOraRegistrazione tipoTempo, boolean generazioneListaTrasmissioni,
  362.             PdDContext pddContext){
  363.        
  364.         IntegrationError integrationError = convertToIntegrationError(integrationFunctionError);
  365.         MessageType msgTypeErrorResponse = this.getMessageTypeForErrorSafeMode(integrationError);
  366.         ConfigurationRFC7807 rfc7807 = this.getRfc7807ForErrorSafeMode(integrationError);
  367.         boolean useProblemRFC7807 = rfc7807!=null;
  368.         try{        
  369.             Transaction transactionNullable = null;
  370.             try{
  371.                 transactionNullable = TransactionContext.getTransaction(idTransazione);
  372.             }catch(Exception e){
  373.                 // puo' non essere presente in comunicazioni stateful
  374.             }
  375.            
  376.             IntegrationErrorReturnConfiguration returnConfig = this.getReturnConfigForError(integrationError);
  377.             boolean useInternalFault = this.isUseInternalFault(integrationError);
  378.             OpenSPCoop2Message msg = this.imbustamentoErrore.msgErroreProtocollo_Intestazione(this.identitaPdD,this.tipoPdD,pddContext,
  379.                     this.idModulo,
  380.                     busta, integrazione, idTransazione, erroreCooperazione,
  381.                     messageSecurityPropertiesResponse, messageSecurityContext,
  382.                     attesaAttiva, checkInterval, profiloGestione,
  383.                     tipoTempo, generazioneListaTrasmissioni,
  384.                     msgTypeErrorResponse, rfc7807, returnConfig, integrationFunctionError,
  385.                     this.forceSoapPrefixCompatibilitOpenSPCoopV1, useInternalFault,
  386.                     transactionNullable!=null ? transactionNullable.getTempiElaborazione() : null,
  387.                     this.requestInfo);  
  388.             return msg;
  389.         }catch(Exception e){
  390.             this.log.error("Errore durante la costruzione del messaggio di eccezione integrazione",e);
  391.             return OpenSPCoop2MessageFactory.getDefaultMessageFactory().createFaultMessage(msgTypeErrorResponse, useProblemRFC7807, e);
  392.         }
  393.        
  394.     }
  395.    
  396. }