Changeset 7908


Ignore:
Timestamp:
22/03/11 14:39:50 (8 years ago)
Author:
mnagni
Message:

Corrected a possible NullPointer? in CSWHarvester.getHits()
Refactored the error management for JMS/Async classes using an external ErrorManagement? class

Location:
RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/AsyncProcessManager.java

    r7625 r7908  
    4949                        process.invoke(); 
    5050                } catch (NdgExecutionException ex) { 
    51                         manageError(process.getHiProcess(), ex); 
     51                        ManageError.getInstance().manageError(process.getHiProcess(), ex); 
    5252                } 
    5353        } 
    54          
    55         private void manageError(HiProcess hiProcess, NdgExecutionException ex) { 
    56                 try { 
    57                         //EJBBeanFactory.getModelManager().updateHarvestingLogAndStatus(hiProcess, null); 
    58                         MailHelper.getInstance().sentProcessFailedMail(hiProcess, formatError(hiProcess.getId(), ex)); 
    59                 } catch (NdgExecutionException e) { 
    60                         e.printStackTrace(); 
    61                 } 
    62         } 
    63          
    64         private String formatError(int processID, NdgExecutionException ex) throws NdgExecutionException { 
    65                 String failedMsg = EJBBeanFactory.getModelManager().getConfigurationParameter( 
    66                                 ServiceConfigurationParameter.PROCESS_FAILED_EMAIL); 
    67                 MessageFormatter mf = new MessageFormatter(); 
    68                 String msg = ex.getBundlMessage() != null ? mf.getFormattedText(ex.getBundlMessage()) : ex.getMessage(); 
    69                 return MessageFormatter.getFormattedText(failedMsg, new Object[] {processID, msg}); 
    70         } 
    7154} 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/ejb/JMSConsumer.java

    r7625 r7908  
    3232package ndg.services.revitalization.ejb; 
    3333 
     34import java.io.Serializable; 
     35 
    3436import javax.ejb.ActivationConfigProperty; 
    3537import javax.ejb.EJB; 
     
    3739import javax.ejb.TransactionManagement; 
    3840import javax.ejb.TransactionManagementType; 
     41import javax.jms.JMSException; 
    3942import javax.jms.Message; 
    4043import javax.jms.MessageListener; 
    4144import javax.jms.ObjectMessage; 
    4245 
     46import ndg.common.NdgMessage; 
     47import ndg.common.exception.NdgExecutionException; 
    4348import ndg.services.revitalization.InvokeProcess; 
     49import ndg.services.revitalization.MailHelper; 
    4450import ndg.services.revitalization.executor.IngesterImpl; 
    4551import ndg.services.revitalization.harvest.HarvestRequest; 
     
    4854import ndg.services.revitalization.harvest.ProviderAdapter; 
    4955import ndg.services.revitalization.harvest.ejb.interfaces.AsyncProcessManagerLocal; 
     56import ndg.services.revitalization.jpa.HiProcess; 
    5057 
    5158/** 
     
    6774        @SuppressWarnings("unchecked") 
    6875        public void onMessage(Message message) { 
     76                ObjectMessage objMessage = null; 
     77                HiProcess hiProcess = null; 
    6978                try { 
    70                         ObjectMessage objMessage = (ObjectMessage) message; 
    71  
    72                         if ((objMessage.getObject() instanceof HarvestRequest)) { 
     79                        objMessage = (ObjectMessage) message;                    
     80                        if ((getObject(objMessage) instanceof HarvestRequest)) { 
     81                                hiProcess = ((HarvestRequest) getObject(objMessage)).getProcess(); 
    7382                                Harvester harvester = ProviderAdapter.getInstance().getHarvester( 
    74                                                 (HarvestRequest) objMessage.getObject()); 
     83                                                (HarvestRequest) getObject(objMessage)); 
    7584                                executor.invoke((InvokeProcess) harvester); 
    7685                        } 
    7786 
    78                         if ((objMessage.getObject() instanceof IngestRequest)) { 
    79                                 IngesterImpl ingester = new IngesterImpl((IngestRequest) objMessage.getObject()); 
     87                        if ((getObject(objMessage) instanceof IngestRequest)) { 
     88                                hiProcess = ((InvokeProcess) getObject(objMessage)).getHiProcess(); 
     89                                IngesterImpl ingester = new IngesterImpl((IngestRequest) getObject(objMessage)); 
    8090                                executor.invoke((InvokeProcess) ingester); 
    8191                        } 
    8292                        return; 
    83                 } catch (Exception e) { 
    84                         e.printStackTrace(); 
     93                } catch (NdgExecutionException ex) { 
     94                        ManageError.getInstance().manageError(hiProcess, ex); 
     95                } 
     96        } 
     97         
     98        private Serializable getObject(ObjectMessage objMessage) throws NdgExecutionException { 
     99                try { 
     100                        return objMessage.getObject(); 
     101                } catch (JMSException e) { 
     102                        throw new NdgExecutionException(new NdgMessage("execution.error", new Object[] { "getObject(ObjectMessage objMessage)", e.getMessage() }, null)); 
    85103                } 
    86104        } 
  • RevitalizationWS/ws/DPWS/trunk/src/main/java/ndg/services/revitalization/harvest/csw/CSWHarvester.java

    r7905 r7908  
    3333import javax.xml.transform.stream.StreamResult; 
    3434 
     35import ndg.common.NdgMessage; 
    3536import ndg.common.exception.NdgExecutionException; 
    3637import ndg.common.exception.ResourceNotAvailable; 
     
    8889 
    8990        private BigInteger getHits() throws NdgExecutionException { 
    90                 recordsRequest.setResultType(ResultType.HITS); 
     91                BigInteger ret = new BigInteger("0"); 
     92                recordsRequest.setResultType(ResultType.HITS);           
     93                if (getResponse() == null || getResponse().getSearchResults() == null) { 
     94                        throw new NdgExecutionException(new NdgMessage("null.object", new Object[] { "getHits()" }, null)); 
     95                } 
    9196                return getResponse().getSearchResults().getNumberOfRecordsMatched(); 
    9297        } 
Note: See TracChangeset for help on using the changeset viewer.