Avoid crash on opening of input eclipse case without grid and log error

This commit is contained in:
Rebecca Cox
2017-10-19 11:37:17 +02:00
parent 7c0c45b7b9
commit 66af820acd
3 changed files with 14 additions and 7 deletions

View File

@@ -20,6 +20,7 @@
#include "RicImportInputEclipseCaseFeature.h"
#include "RiaApplication.h"
#include "RiaLogging.h"
#include "RiaPorosityModel.h"
#include "RimEclipseCaseCollection.h"
@@ -50,10 +51,15 @@ bool RicImportInputEclipseCaseFeature::openInputEclipseCaseFromFileNames(const Q
project->assignCaseIdToCase(rimInputReservoir);
rimInputReservoir->openDataFileSet(fileNames);
bool gridImportSuccess = rimInputReservoir->openDataFileSet(fileNames);
if (!gridImportSuccess)
{
RiaLogging::error("Failed to import grid");
return false;
}
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : NULL;
if (analysisModels == NULL) return false;
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
if (analysisModels == nullptr) return false;
analysisModels->cases.push_back(rimInputReservoir);

View File

@@ -83,7 +83,7 @@ RimEclipseInputCase::~RimEclipseInputCase()
/// Open the supplied file set. If no grid data has been read, it will first find the possible
/// grid data among the files then read all supported properties from the files matching the grid
//--------------------------------------------------------------------------------------------------
void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
bool RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
{
if (fileNames.contains(RiaDefines::mockModelBasicInputCase()))
{
@@ -100,7 +100,7 @@ void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
computeCachedData();
return;
return true;
}
if (this->eclipseCaseData() == NULL)
@@ -135,7 +135,7 @@ void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
if (this->eclipseCaseData()->mainGrid()->gridPointDimensions() == cvf::Vec3st(0,0,0))
{
return ; // No grid present
return false; // No grid present
}
std::vector<QString> filesToRead;
@@ -171,6 +171,7 @@ void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
m_inputPropertyCollection->inputProperties.push_back(inputProperty);
}
}
return true;
}

View File

@@ -49,7 +49,7 @@ public:
caf::PdmChildField<RimEclipseInputPropertyCollection*> m_inputPropertyCollection;
// File open methods
void openDataFileSet(const QStringList& fileNames);
bool openDataFileSet(const QStringList& fileNames);
void loadAndSyncronizeInputProperties();
// RimCase overrides