Added try catches to manage errors on publishing
This commit is contained in:
parent
b5512eb7c0
commit
e54ba3b0b6
|
@ -194,6 +194,8 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
||||||
@Override
|
@Override
|
||||||
public void onSave(SaveGeonaDataFormsEvent saveGeonaDataFormsEvent) {
|
public void onSave(SaveGeonaDataFormsEvent saveGeonaDataFormsEvent) {
|
||||||
|
|
||||||
|
geoNaMainForm.enableButtonSave(false);
|
||||||
|
|
||||||
if(saveGeonaDataFormsEvent.getListGeonaDataForms()!=null) {
|
if(saveGeonaDataFormsEvent.getListGeonaDataForms()!=null) {
|
||||||
|
|
||||||
final Modal modal = new Modal(true);
|
final Modal modal = new Modal(true);
|
||||||
|
@ -206,29 +208,32 @@ public class GeoPortalDataEntryApp implements EntryPoint {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
modal.remove(loader);
|
modal.clear();
|
||||||
Alert alert = new Alert(caught.getMessage());
|
Alert alert = new Alert(caught.getMessage());
|
||||||
alert.setType(AlertType.ERROR);
|
alert.setType(AlertType.ERROR);
|
||||||
alert.setClose(false);
|
alert.setClose(false);
|
||||||
modal.add(alert);
|
modal.add(alert);
|
||||||
modal.setCloseVisible(true);
|
modal.setCloseVisible(true);
|
||||||
//resetUI();
|
//resetUI();
|
||||||
|
geoNaMainForm.enableButtonSave(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String result) {
|
public void onSuccess(String result) {
|
||||||
modal.remove(loader);
|
modal.clear();
|
||||||
Alert alert = new Alert(result);
|
Alert alert = new Alert(result);
|
||||||
alert.setType(AlertType.INFO);
|
alert.setType(AlertType.INFO);
|
||||||
alert.setClose(false);
|
alert.setClose(false);
|
||||||
modal.add(alert);
|
modal.add(alert);
|
||||||
modal.setCloseVisible(true);
|
modal.setCloseVisible(true);
|
||||||
//resetUI();
|
//resetUI();
|
||||||
|
geoNaMainForm.enableButtonSave(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
modal.show();
|
modal.show();
|
||||||
}
|
}else
|
||||||
|
geoNaMainForm.enableButtonSave(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -12,6 +12,7 @@ import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetada
|
||||||
import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean;
|
import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean;
|
||||||
|
|
||||||
import com.github.gwtbootstrap.client.ui.AlertBlock;
|
import com.github.gwtbootstrap.client.ui.AlertBlock;
|
||||||
|
import com.github.gwtbootstrap.client.ui.Button;
|
||||||
import com.github.gwtbootstrap.client.ui.Tab;
|
import com.github.gwtbootstrap.client.ui.Tab;
|
||||||
import com.github.gwtbootstrap.client.ui.TabPanel;
|
import com.github.gwtbootstrap.client.ui.TabPanel;
|
||||||
import com.github.gwtbootstrap.client.ui.constants.AlertType;
|
import com.github.gwtbootstrap.client.ui.constants.AlertType;
|
||||||
|
@ -44,6 +45,9 @@ public class GeonaDataEntryMainForm extends Composite {
|
||||||
@UiField
|
@UiField
|
||||||
AlertBlock alertFormAction;
|
AlertBlock alertFormAction;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
Button buttonSave;
|
||||||
|
|
||||||
private LinkedHashMap<String,MetadataFormCard> mapForms = new LinkedHashMap<String,MetadataFormCard>();
|
private LinkedHashMap<String,MetadataFormCard> mapForms = new LinkedHashMap<String,MetadataFormCard>();
|
||||||
|
|
||||||
private List<Tab> listTabs = new ArrayList<Tab>();
|
private List<Tab> listTabs = new ArrayList<Tab>();
|
||||||
|
@ -152,6 +156,10 @@ public class GeonaDataEntryMainForm extends Composite {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void enableButtonSave(boolean enabled) {
|
||||||
|
buttonSave.setEnabled(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the ative after.
|
* Sets the ative after.
|
||||||
|
|
|
@ -61,122 +61,138 @@ public class GreetingServiceImpl extends RemoteServiceServlet implements Greetin
|
||||||
|
|
||||||
GCubeUser user = SessionUtil.getCurrentUser(this.getThreadLocalRequest());
|
GCubeUser user = SessionUtil.getCurrentUser(this.getThreadLocalRequest());
|
||||||
|
|
||||||
//Saving Data
|
ConcessioneManager manager;
|
||||||
//Informazioni di Progetto
|
try {
|
||||||
List<GeoNaFormDataObject> list = toMap.get(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO);
|
|
||||||
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
|
||||||
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getTitle());
|
|
||||||
|
|
||||||
List<GenericDatasetBean> listGDB = list.get(0).getListGDB();
|
//Saving Data
|
||||||
GenericDatasetBean idp = listGDB.get(0);
|
//Informazioni di Progetto
|
||||||
LOG.debug("\n\n");
|
List<GeoNaFormDataObject> list = toMap.get(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO);
|
||||||
LOG.debug(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO+" building with client obj: "+idp);
|
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
||||||
Concessione concessione = ConvertToServiceModel.toConcessione(idp, user);
|
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getTitle());
|
||||||
LOG.debug("Built "+ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO+" as server obj: "+concessione);
|
|
||||||
//saving into back-end
|
List<GenericDatasetBean> listGDB = list.get(0).getListGDB();
|
||||||
ConcessioneManager manager = ManagerFactory.registerNew(concessione);
|
GenericDatasetBean idp = listGDB.get(0);
|
||||||
|
|
||||||
//RELAZIONE_DI_SCAVO
|
|
||||||
list = toMap.get(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO);
|
|
||||||
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
|
||||||
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO.getTitle());
|
|
||||||
|
|
||||||
listGDB = list.get(0).getListGDB();
|
|
||||||
GenericDatasetBean rds = listGDB.get(0);
|
|
||||||
LOG.debug("\n\n");
|
|
||||||
LOG.debug(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO+" building with client obj: "+rds);
|
|
||||||
RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(rds);
|
|
||||||
LOG.debug("Built "+ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO+" as server obj: "+relazioneDiScavo);
|
|
||||||
//Should be only one
|
|
||||||
for (FileUploaded fileUploaded : rds.getFilesUploaded()) {
|
|
||||||
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
|
||||||
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
|
||||||
//saving into back-end
|
|
||||||
manager.setRelazioneScavo(relazioneDiScavo, isd);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//IMMAGINI_RAPPRESENTATIVE
|
|
||||||
list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
|
|
||||||
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
|
||||||
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getTitle());
|
|
||||||
|
|
||||||
List<GenericDatasetBean> imgRaprsLst = list.get(0).getListGDB();
|
|
||||||
for (GenericDatasetBean imgRapr : imgRaprsLst) {
|
|
||||||
LOG.debug("\n\n");
|
LOG.debug("\n\n");
|
||||||
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE+" building with client obj: "+imgRapr);
|
LOG.debug(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO+" building with client obj: "+idp);
|
||||||
UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr);
|
Concessione concessione = ConvertToServiceModel.toConcessione(idp, user);
|
||||||
LOG.debug("Built "+ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE+" as server obj: "+img);
|
LOG.debug("Built "+ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO+" as server obj: "+concessione);
|
||||||
for (FileUploaded fileUploaded : imgRapr.getFilesUploaded()) {
|
//saving into back-end
|
||||||
LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+img);
|
manager = ManagerFactory.registerNew(concessione);
|
||||||
|
|
||||||
|
//RELAZIONE_DI_SCAVO
|
||||||
|
list = toMap.get(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO);
|
||||||
|
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
||||||
|
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO.getTitle());
|
||||||
|
|
||||||
|
listGDB = list.get(0).getListGDB();
|
||||||
|
GenericDatasetBean rds = listGDB.get(0);
|
||||||
|
LOG.debug("\n\n");
|
||||||
|
LOG.debug(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO+" building with client obj: "+rds);
|
||||||
|
RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(rds);
|
||||||
|
LOG.debug("Built "+ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO+" as server obj: "+relazioneDiScavo);
|
||||||
|
//Should be only one
|
||||||
|
for (FileUploaded fileUploaded : rds.getFilesUploaded()) {
|
||||||
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
||||||
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
||||||
//saving into back-end
|
//saving into back-end
|
||||||
manager.addImmagineRappresentativa(img,isd);
|
manager.setRelazioneScavo(relazioneDiScavo, isd);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//IMMAGINI_RAPPRESENTATIVE
|
||||||
|
list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
|
||||||
|
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
||||||
|
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getTitle());
|
||||||
|
|
||||||
|
List<GenericDatasetBean> imgRaprsLst = list.get(0).getListGDB();
|
||||||
|
for (GenericDatasetBean imgRapr : imgRaprsLst) {
|
||||||
|
LOG.debug("\n\n");
|
||||||
|
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE+" building with client obj: "+imgRapr);
|
||||||
|
UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr);
|
||||||
|
LOG.debug("Built "+ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE+" as server obj: "+img);
|
||||||
|
for (FileUploaded fileUploaded : imgRapr.getFilesUploaded()) {
|
||||||
|
LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+img);
|
||||||
|
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
||||||
|
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
||||||
|
//saving into back-end
|
||||||
|
manager.addImmagineRappresentativa(img,isd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//POSIZIONAMENTO_DELL_AREA_DI_INDAGINE
|
||||||
|
list = toMap.get(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
|
||||||
|
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
||||||
|
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getTitle());
|
||||||
|
|
||||||
|
listGDB = list.get(0).getListGDB();
|
||||||
|
GenericDatasetBean pad = listGDB.get(0);
|
||||||
|
LOG.debug("\n\n");
|
||||||
|
LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE+" building with client obj: "+pad);
|
||||||
|
LayerConcessione layerPad = ConvertToServiceModel.toLayerConcessione(pad);
|
||||||
|
LOG.debug("Built "+ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE+" as server obj: "+layerPad);
|
||||||
|
for (FileUploaded fileUploaded : pad.getFilesUploaded()) {
|
||||||
|
LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+layerPad);
|
||||||
|
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
||||||
|
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
||||||
|
//saving into back-end
|
||||||
|
manager.setPosizionamento(layerPad, isd);
|
||||||
|
}
|
||||||
|
|
||||||
|
//PIANTA_DI_FINE_SCAVO
|
||||||
|
list = toMap.get(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO);
|
||||||
|
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
||||||
|
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getTitle());
|
||||||
|
|
||||||
|
listGDB = list.get(0).getListGDB();
|
||||||
|
GenericDatasetBean pfs = listGDB.get(0);
|
||||||
|
LOG.debug("\n\n");
|
||||||
|
LOG.debug(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO+" building with client obj: "+pfs);
|
||||||
|
LayerConcessione layerPfs = ConvertToServiceModel.toLayerConcessione(pfs);
|
||||||
|
LOG.debug("Built "+ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO+" as server obj: "+layerPfs);
|
||||||
|
for (FileUploaded fileUploaded : pfs.getFilesUploaded()) {
|
||||||
|
LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+layerPfs);
|
||||||
|
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
||||||
|
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
||||||
|
//saving into back-end
|
||||||
|
manager.addPiantaFineScavo(layerPfs, isd);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//POSIZIONAMENTO_DELL_AREA_DI_INDAGINE
|
|
||||||
list = toMap.get(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
|
|
||||||
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
|
||||||
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getTitle());
|
|
||||||
|
|
||||||
listGDB = list.get(0).getListGDB();
|
|
||||||
GenericDatasetBean pad = listGDB.get(0);
|
|
||||||
LOG.debug("\n\n");
|
|
||||||
LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE+" building with client obj: "+pad);
|
|
||||||
LayerConcessione layerPad = ConvertToServiceModel.toLayerConcessione(pad);
|
|
||||||
LOG.debug("Built "+ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE+" as server obj: "+layerPad);
|
|
||||||
for (FileUploaded fileUploaded : pad.getFilesUploaded()) {
|
|
||||||
LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+layerPad);
|
|
||||||
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
|
||||||
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
|
||||||
//saving into back-end
|
|
||||||
manager.setPosizionamento(layerPad, isd);
|
|
||||||
}
|
|
||||||
|
|
||||||
//PIANTA_DI_FINE_SCAVO
|
|
||||||
list = toMap.get(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO);
|
|
||||||
if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
|
|
||||||
throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getTitle());
|
|
||||||
|
|
||||||
listGDB = list.get(0).getListGDB();
|
|
||||||
GenericDatasetBean pfs = listGDB.get(0);
|
|
||||||
LOG.debug("\n\n");
|
|
||||||
LOG.debug(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO+" building with client obj: "+pfs);
|
|
||||||
LayerConcessione layerPfs = ConvertToServiceModel.toLayerConcessione(pfs);
|
|
||||||
LOG.debug("Built "+ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO+" as server obj: "+layerPfs);
|
|
||||||
for (FileUploaded fileUploaded : pfs.getFilesUploaded()) {
|
|
||||||
LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+layerPfs);
|
|
||||||
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
|
||||||
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
|
||||||
//saving into back-end
|
|
||||||
manager.addPiantaFineScavo(layerPfs, isd);
|
|
||||||
}
|
|
||||||
|
|
||||||
//If true -> data are published into the SDI
|
|
||||||
Boolean publish=false;
|
|
||||||
|
|
||||||
/*Chiedo al manager di salvare il progetto, causando :
|
|
||||||
*scrittura sul WS
|
|
||||||
*pubblicazione sull'SDI (boolean publish)
|
|
||||||
*scrittura sul DB di applicazione sia dei meta che dei vari link */
|
|
||||||
Concessione registered=manager.commit(publish);
|
|
||||||
|
|
||||||
LOG.info("Registered: "+registered);
|
|
||||||
String link = null;
|
|
||||||
try {
|
|
||||||
link = ((WorkspaceContent)registered.getRelazioneScavo().getActualContent().get(0)).getLink();
|
|
||||||
}catch (Exception e) {
|
}catch (Exception e) {
|
||||||
// TODO: handle exception
|
LOG.error("Error on converting form data: ",e);
|
||||||
|
throw new Exception("Error occurred on saving data, try again or contact the support");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
//If true -> data are published into the SDI
|
||||||
|
Boolean publish=false;
|
||||||
|
|
||||||
|
/*Chiedo al manager di salvare il progetto, causando :
|
||||||
|
*scrittura sul WS
|
||||||
|
*pubblicazione sull'SDI (boolean publish)
|
||||||
|
*scrittura sul DB di applicazione sia dei meta che dei vari link */
|
||||||
|
Concessione registered=manager.commit(publish);
|
||||||
|
|
||||||
|
LOG.info("Registered: "+registered);
|
||||||
|
String link = null;
|
||||||
|
try {
|
||||||
|
link = ((WorkspaceContent)registered.getRelazioneScavo().getActualContent().get(0)).getLink();
|
||||||
|
}catch (Exception e) {
|
||||||
|
// TODO: handle exception
|
||||||
|
}
|
||||||
|
|
||||||
|
//String link = "toTest";
|
||||||
|
|
||||||
|
if(link!=null)
|
||||||
|
return "Project saved successfully";
|
||||||
|
else
|
||||||
|
return "Project saved with errors";
|
||||||
|
|
||||||
|
}catch (Exception e) {
|
||||||
|
LOG.error("Error on commiting data: ",e);
|
||||||
|
throw new Exception("Error occurred on saving data, try again or contact the support");
|
||||||
}
|
}
|
||||||
|
|
||||||
//String link = "toTest";
|
|
||||||
|
|
||||||
if(link!=null)
|
|
||||||
return "Project saved successfully";
|
|
||||||
else
|
|
||||||
return "Project saved with errors";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue