Build: #2 was successful

Job: Tag Branch for Packages was successful

Stages & jobs

  1. Tag Branch

  2. Default Stage

  3. Create Critial Test Plan Branch

Build log

The build generated 174,891 lines of output.The output is too long and has been truncated to the last 1,000 lines. Download or view full build log.

28-Jun-2019 15:56:23 }
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23 -  bool synthesisimager::getweightdensity()
28-Jun-2019 15:56:23 +  string synthesisimager::getweightdensity()
28-Jun-2019 15:56:23    {
28-Jun-2019 15:56:23 -    Bool rstat(false);
28-Jun-2019 15:56:23 +    string rstat("");
28-Jun-2019 15:56:23      
28-Jun-2019 15:56:23      try {
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23        //if( ! itsImager ) itsImager = new SynthesisImager();
28-Jun-2019 15:56:23        itsImager = makeSI();
28-Jun-2019 15:56:23 -      itsImager->getWeightDensity();
28-Jun-2019 15:56:23 +      rstat=(itsImager->getWeightDensity());
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23      } catch  (AipsError x) {
28-Jun-2019 15:56:23        RETHROW(x);
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23      return rstat;
28-Jun-2019 15:56:23    }
28-Jun-2019 15:56:23 -  bool synthesisimager::setweightdensity()
28-Jun-2019 15:56:23 +  bool synthesisimager::setweightdensity(const std::string& wgtdensity )
28-Jun-2019 15:56:23    {
28-Jun-2019 15:56:23      Bool rstat(false);
28-Jun-2019 15:56:23      
28-Jun-2019 15:56:23 @@ -704,7 +726,7 @@ int synthesisimager::updatenchan()
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23        //if( ! itsImager ) itsImager = new SynthesisImager();
28-Jun-2019 15:56:23        itsImager = makeSI();
28-Jun-2019 15:56:23 -      itsImager->setWeightDensity();
28-Jun-2019 15:56:23 +      itsImager->setWeightDensity(wgtdensity);
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23      } catch  (AipsError x) {
28-Jun-2019 15:56:23        RETHROW(x);
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/synthesis/synthesisiterbot_cmpt.cc b/gcwrap/tools/synthesis/synthesisiterbot_cmpt.cc
28-Jun-2019 15:56:23 index b34b2d6..b1f34ba 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/synthesis/synthesisiterbot_cmpt.cc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/synthesis/synthesisiterbot_cmpt.cc
28-Jun-2019 15:56:23 @@ -51,8 +51,8 @@ casac::record* synthesisiterbot::setupiteration(const casac::record& iterpars)
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( iterpars );
28-Jun-2019 15:56:23 -      itsIterBot->setupIteration( recpars );
28-Jun-2019 15:56:23 +      const std::unique_ptr<Record> recpars(toRecord( iterpars ));
28-Jun-2019 15:56:23 +      itsIterBot->setupIteration( *recpars );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 @@ -202,8 +202,8 @@ bool synthesisiterbot::mergeinitrecord(const casac::record& initrecord)
28-Jun-2019 15:56:23    
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( initrecord );
28-Jun-2019 15:56:23 -      itsIterBot->startMinorCycle( recpars );
28-Jun-2019 15:56:23 +      const std::unique_ptr<Record> recpars(toRecord( initrecord ));
28-Jun-2019 15:56:23 +      itsIterBot->startMinorCycle( *recpars );
28-Jun-2019 15:56:23       }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 @@ -219,8 +219,8 @@ bool synthesisiterbot::mergeexecrecord(const casac::record& execrecord)
28-Jun-2019 15:56:23    
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( execrecord );
28-Jun-2019 15:56:23 -      itsIterBot->endMinorCycle(recpars);
28-Jun-2019 15:56:23 +      const std::unique_ptr<Record> recpars(toRecord( execrecord ));
28-Jun-2019 15:56:23 +      itsIterBot->endMinorCycle(*recpars);
28-Jun-2019 15:56:23       }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/synthesis/synthesisnormalizer_cmpt.cc b/gcwrap/tools/synthesis/synthesisnormalizer_cmpt.cc
28-Jun-2019 15:56:23 index 4f7f4e8..d9ff936 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/synthesis/synthesisnormalizer_cmpt.cc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/synthesis/synthesisnormalizer_cmpt.cc
28-Jun-2019 15:56:23 @@ -46,8 +46,8 @@ synthesisnormalizer::~synthesisnormalizer()
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record rec = *toRecord( normpars );
28-Jun-2019 15:56:23 -      itsNormalizer->setupNormalizer( rec );
28-Jun-2019 15:56:23 +      std::unique_ptr<casacore::Record> rec(toRecord( normpars ));
28-Jun-2019 15:56:23 +      itsNormalizer->setupNormalizer( *rec );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/synthesis/synthesisutils_cmpt.cc b/gcwrap/tools/synthesis/synthesisutils_cmpt.cc
28-Jun-2019 15:56:23 index 02feb60..95f70e5 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/synthesis/synthesisutils_cmpt.cc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/synthesis/synthesisutils_cmpt.cc
28-Jun-2019 15:56:23 @@ -45,8 +45,8 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( selpars );
28-Jun-2019 15:56:23 -      rstat = fromRecord(  itsUtils->continuumDataPartition( recpars , npart ) );
28-Jun-2019 15:56:23 +      std::unique_ptr<casacore::Record> recpars(toRecord( selpars ));
28-Jun-2019 15:56:23 +      rstat = fromRecord(  itsUtils->continuumDataPartition( *recpars , npart ) );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 @@ -62,7 +62,7 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( selpars );
28-Jun-2019 15:56:23 +      std::unique_ptr<casacore::Record> recpars(toRecord( selpars ));
28-Jun-2019 15:56:23        casacore::Quantity qstart(1.0, "GHz");
28-Jun-2019 15:56:23        casacore::Quantity qend(1.5,"GHz");
28-Jun-2019 15:56:23        if( (fstart.toString().size() != 0) && String(fstart.toString()) != String("[]"))
28-Jun-2019 15:56:23 @@ -72,7 +72,7 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23        casacore::MFrequency::Types eltype;
28-Jun-2019 15:56:23        casacore::MFrequency::getType(eltype, frame);
28-Jun-2019 15:56:23 -      rstat = fromRecord(  itsUtils->cubeDataPartition( recpars , npart, qstart.getValue("Hz"), qend.getValue("Hz"), eltype ) );
28-Jun-2019 15:56:23 +      rstat = fromRecord(  itsUtils->cubeDataPartition( *recpars , npart, qstart.getValue("Hz"), qend.getValue("Hz"), eltype ) );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 @@ -88,8 +88,8 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( selpars );
28-Jun-2019 15:56:23 -      rstat = fromRecord(  itsUtils->cubeImagePartition( recpars , npart ) );
28-Jun-2019 15:56:23 +      std::unique_ptr<casacore::Record> recpars(toRecord( selpars ));
28-Jun-2019 15:56:23 +      rstat = fromRecord(  itsUtils->cubeImagePartition( *recpars , npart ) );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 @@ -106,14 +106,14 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23     try
28-Jun-2019 15:56:23       {
28-Jun-2019 15:56:23 -        casacore::Record recselpars = *toRecord( selpars );
28-Jun-2019 15:56:23 -        casacore::Record recincsys = *toRecord( incsysrec );
28-Jun-2019 15:56:23 -        if (recincsys.nfields() != 0 ) {
28-Jun-2019 15:56:23 +        std::unique_ptr<casacore::Record> recselpars(toRecord( selpars ));
28-Jun-2019 15:56:23 +        std::unique_ptr<casacore::Record> recincsys(toRecord( incsysrec ));
28-Jun-2019 15:56:23 +        if (recincsys->nfields() != 0 ) {
28-Jun-2019 15:56:23            CoordinateSystem *incsys;
28-Jun-2019 15:56:23 -          incsys = CoordinateSystem::restore(recincsys,"coordsys");
28-Jun-2019 15:56:23 +          incsys = CoordinateSystem::restore(*recincsys,"coordsys");
28-Jun-2019 15:56:23            Vector<CoordinateSystem> ocsysvec;
28-Jun-2019 15:56:23            Vector<Int> outnchanvec;
28-Jun-2019 15:56:23 -          rstat = fromRecord( itsUtils->cubeDataImagePartition( recselpars, *incsys, npart, nchannel, ocsysvec, outnchanvec) );
28-Jun-2019 15:56:23 +          rstat = fromRecord( itsUtils->cubeDataImagePartition( *recselpars, *incsys, npart, nchannel, ocsysvec, outnchanvec) );
28-Jun-2019 15:56:23          }
28-Jun-2019 15:56:23       }
28-Jun-2019 15:56:23     catch (AipsError x)
28-Jun-2019 15:56:23 @@ -130,9 +130,9 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( selpars );
28-Jun-2019 15:56:23 +      std::unique_ptr<casacore::Record> recpars(toRecord( selpars ));
28-Jun-2019 15:56:23        SynthesisParamsSelect pars;
28-Jun-2019 15:56:23 -      pars.fromRecord( recpars );
28-Jun-2019 15:56:23 +      pars.fromRecord( *recpars );
28-Jun-2019 15:56:23        rstat = fromRecord(  pars.toRecord()  );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23 @@ -149,9 +149,9 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( impars );
28-Jun-2019 15:56:23 +      std::unique_ptr<casacore::Record> recpars(toRecord( impars ));
28-Jun-2019 15:56:23        SynthesisParamsImage pars;
28-Jun-2019 15:56:23 -      pars.fromRecord( recpars );
28-Jun-2019 15:56:23 +      pars.fromRecord( *recpars );
28-Jun-2019 15:56:23        rstat = fromRecord(  pars.toRecord()  );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23 @@ -169,9 +169,9 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( gridpars );
28-Jun-2019 15:56:23 +      std::unique_ptr<casacore::Record> recpars(toRecord( gridpars ));
28-Jun-2019 15:56:23        SynthesisParamsGrid pars;
28-Jun-2019 15:56:23 -      pars.fromRecord( recpars );
28-Jun-2019 15:56:23 +      pars.fromRecord( *recpars );
28-Jun-2019 15:56:23        rstat = fromRecord(  pars.toRecord()  );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23 @@ -189,8 +189,8 @@ synthesisutils::~synthesisutils()
28-Jun-2019 15:56:23    try
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23        SynthesisParamsImage pars;
28-Jun-2019 15:56:23 -      casacore::Record recpars = *toRecord( impars );
28-Jun-2019 15:56:23 -      rstat = fromRecord( pars.updateParams( recpars ) );
28-Jun-2019 15:56:23 +      std::unique_ptr<casacore::Record> recpars(toRecord( impars ));
28-Jun-2019 15:56:23 +      rstat = fromRecord( pars.updateParams( *recpars ) );
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23    catch  (AipsError x)
28-Jun-2019 15:56:23      {
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/tables/TablePlot/BasePlot.cc b/gcwrap/tools/tables/TablePlot/BasePlot.cc
28-Jun-2019 15:56:23 index 623e4fb..d9291c5 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/tables/TablePlot/BasePlot.cc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/tables/TablePlot/BasePlot.cc
28-Jun-2019 15:56:23 @@ -310,7 +310,7 @@ Int BasePlot::createTENS(Vector<String> &datastr)
28-Jun-2019 15:56:23        log->out(String("column ")+colnames_p(i),
28-Jun-2019 15:56:23              fnname, clname, LogMessage::DEBUGGING);
28-Jun-2019 15:56:23 #endif
28-Jun-2019 15:56:23 -      ROTableColumn rot(SelTab_p,colnames_p(i));
28-Jun-2019 15:56:23 +      TableColumn rot(SelTab_p,colnames_p(i));
28-Jun-2019 15:56:23                  if(!rot.isNull())
28-Jun-2019 15:56:23        {
28-Jun-2019 15:56:23            ColumnDesc cdesc = rot.columnDesc();
28-Jun-2019 15:56:23 @@ -2158,14 +2158,14 @@ Int BasePlot::createXTENS(Vector<String> &datastr)
28-Jun-2019 15:56:23     {
28-Jun-2019 15:56:23        xtens_p[i] = RecordGram::parse(SelTab_p,datastr[i*2]);
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23 -      //if( (xtens_p[i].dataType() != TpDouble)  )
28-Jun-2019 15:56:23        if(!((xtens_p[i].dataType() == TpDouble) ||
28-Jun-2019 15:56:23             (xtens_p[i].dataType() == TpInt) ||
28-Jun-2019 15:56:23 +           (xtens_p[i].dataType() == TpInt64) ||
28-Jun-2019 15:56:23             (xtens_p[i].dataType() == TpFloat)))
28-Jun-2019 15:56:23        {
28-Jun-2019 15:56:23           ostringstream dtype;
28-Jun-2019 15:56:23 -         dtype << xtens_p[i].dataType();
28-Jun-2019 15:56:23 -         BasePlotError(String("DataType of TaQL expression (") +
28-Jun-2019 15:56:23 +         dtype << xtens_p[i].dataType() << ", actual value == '" << datastr[i*2] << "', ";
28-Jun-2019 15:56:23 +         BasePlotError(String("DataType of TaQL expression for X (") +
28-Jun-2019 15:56:23                 dtype + String(") is not plottable"));
28-Jun-2019 15:56:23        }
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23 @@ -2189,14 +2189,14 @@ Int BasePlot::createYTENS(Vector<String> &datastr)
28-Jun-2019 15:56:23     {
28-Jun-2019 15:56:23        ytens_p[i] = RecordGram::parse(SelTab_p,datastr[i*2+1]);
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 -      //if( (ytens_p[i].dataType() != TpDouble) )
28-Jun-2019 15:56:23        if(!((ytens_p[i].dataType() == TpDouble) ||
28-Jun-2019 15:56:23             (ytens_p[i].dataType() == TpInt) ||
28-Jun-2019 15:56:23 +           (ytens_p[i].dataType() == TpInt64) ||
28-Jun-2019 15:56:23             (ytens_p[i].dataType() == TpFloat)))
28-Jun-2019 15:56:23        {
28-Jun-2019 15:56:23           ostringstream dtype;
28-Jun-2019 15:56:23 -         dtype << ytens_p[i].dataType();
28-Jun-2019 15:56:23 -         BasePlotError(String("DataType of TaQL expression (") +
28-Jun-2019 15:56:23 +         dtype << ytens_p[i].dataType() << ", actual value == '" << datastr[i*2] << "', ";
28-Jun-2019 15:56:23 +         BasePlotError(String("DataType of TaQL expression for Y (") +
28-Jun-2019 15:56:23                dtype + String(") is not plottable"));
28-Jun-2019 15:56:23        }
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/tables/TablePlot/BasePlot.tcc b/gcwrap/tools/tables/TablePlot/BasePlot.tcc
28-Jun-2019 15:56:23 index 89ab693..92e1ce4 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/tables/TablePlot/BasePlot.tcc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/tables/TablePlot/BasePlot.tcc
28-Jun-2019 15:56:23 @@ -308,7 +308,7 @@ Int BasePlot::createTENS(casacore::Vector<casacore::String> &datastr)
28-Jun-2019 15:56:23        log->out(casacore::String("column ")+colnames_p(i),
28-Jun-2019 15:56:23              fnname, clname, casacore::LogMessage::DEBUGGING);
28-Jun-2019 15:56:23 #endif
28-Jun-2019 15:56:23 -      casacore::ROTableColumn rot(SelTab_p,colnames_p(i));
28-Jun-2019 15:56:23 +      casacore::TableColumn rot(SelTab_p,colnames_p(i));
28-Jun-2019 15:56:23                  if(!rot.isNull())
28-Jun-2019 15:56:23        {
28-Jun-2019 15:56:23            casacore::ColumnDesc cdesc = rot.columnDesc();
28-Jun-2019 15:56:23 @@ -2153,8 +2153,8 @@ Int BasePlot::createXTENS(casacore::Vector<casacore::String> &datastr)
28-Jun-2019 15:56:23        if( (xtens_p[i].dataType() != TpDouble)  )
28-Jun-2019 15:56:23        {
28-Jun-2019 15:56:23           ostringstream dtype;
28-Jun-2019 15:56:23 -         dtype << xtens_p[i].dataType();
28-Jun-2019 15:56:23 -         BasePlotError(casacore::String("DataType of TaQL expression (") +
28-Jun-2019 15:56:23 +         dtype << xtens_p[i].dataType() << ", actual value == '" << datastr[i*2] << "', ";
28-Jun-2019 15:56:23 +         BasePlotError(casacore::String("DataType of TaQL expression for X (") +
28-Jun-2019 15:56:23                 dtype + casacore::String(") is not plottable"));
28-Jun-2019 15:56:23        }
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23 @@ -2181,8 +2181,8 @@ Int BasePlot::createYTENS(casacore::Vector<casacore::String> &datastr)
28-Jun-2019 15:56:23        if( (ytens_p[i].dataType() != TpDouble) )
28-Jun-2019 15:56:23        {
28-Jun-2019 15:56:23           ostringstream dtype;
28-Jun-2019 15:56:23 -         dtype << ytens_p[i].dataType();
28-Jun-2019 15:56:23 -         BasePlotError(casacore::String("DataType of TaQL expression (") +
28-Jun-2019 15:56:23 +         dtype << ytens_p[i].dataType() << ", actual value == '" << datastr[i*2+1] << "', ";
28-Jun-2019 15:56:23 +         BasePlotError(casacore::String("DataType of TaQL expression for Y (") +
28-Jun-2019 15:56:23                dtype + casacore::String(") is not plottable"));
28-Jun-2019 15:56:23        }
28-Jun-2019 15:56:23        
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/tables/TablePlot/TablePlot.cc b/gcwrap/tools/tables/TablePlot/TablePlot.cc
28-Jun-2019 15:56:23 index f35790a..dc06e5c 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/tables/TablePlot/TablePlot.cc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/tables/TablePlot/TablePlot.cc
28-Jun-2019 15:56:23 @@ -3040,7 +3040,7 @@ Bool TablePlot::checkShapes(Table &intab)
28-Jun-2019 15:56:23    
28-Jun-2019 15:56:23     if( tdesc.isColumn(dataFlagColName_p) )
28-Jun-2019 15:56:23     {
28-Jun-2019 15:56:23 -      ROArrayColumn<Complex> col;
28-Jun-2019 15:56:23 +      ArrayColumn<Complex> col;
28-Jun-2019 15:56:23        col.attach(intab,dataFlagColName_p);
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23        // Iterate over all rows and check the shape.
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/tables/table_cmpt.cc b/gcwrap/tools/tables/table_cmpt.cc
28-Jun-2019 15:56:23 index 83a62cb..e404e76 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/tables/table_cmpt.cc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/tables/table_cmpt.cc
28-Jun-2019 15:56:23 @@ -763,6 +763,14 @@ table::calc(const std::string& expr, const std::string& prefix, const bool showt
28-Jun-2019 15:56:23          rstat=new ::casac::variant(s_int, shape);
28-Jun-2019 15:56:23         }
28-Jun-2019 15:56:23          break;
28-Jun-2019 15:56:23 +       case TpInt64:{
28-Jun-2019 15:56:23 +         Array<Int64> oInt;
28-Jun-2019 15:56:23 +         oInt=result.node().getColumnInt64(rownrs);
28-Jun-2019 15:56:23 +         oInt.shape().asVector().tovector(shape);
28-Jun-2019 15:56:23 +         std::vector<int> s_int(oInt.begin(), oInt.end());
28-Jun-2019 15:56:23 +         rstat=new ::casac::variant(s_int, shape);
28-Jun-2019 15:56:23 +       }
28-Jun-2019 15:56:23 +         break;
28-Jun-2019 15:56:23         case TpUInt:{
28-Jun-2019 15:56:23          Array<uInt> ouInt;
28-Jun-2019 15:56:23          ouInt=result.node().getColumnuInt(rownrs);
28-Jun-2019 15:56:23 @@ -828,6 +836,9 @@ table::calc(const std::string& expr, const std::string& prefix, const bool showt
28-Jun-2019 15:56:23           case TpInt:
28-Jun-2019 15:56:23             outrec.define(String::toString(i), result.node().getArrayInt(i));
28-Jun-2019 15:56:23             break;
28-Jun-2019 15:56:23 +          case TpInt64:
28-Jun-2019 15:56:23 +            outrec.define(String::toString(i), result.node().getArrayInt(i));
28-Jun-2019 15:56:23 +            break;
28-Jun-2019 15:56:23           case TpDouble:
28-Jun-2019 15:56:23             outrec.define(String::toString(i), result.node().getArrayDouble(i));
28-Jun-2019 15:56:23             break;
28-Jun-2019 15:56:23 @@ -838,8 +849,8 @@ table::calc(const std::string& expr, const std::string& prefix, const bool showt
28-Jun-2019 15:56:23             outrec.define(String::toString(i), result.node().getArrayString(i));
28-Jun-2019 15:56:23             break;
28-Jun-2019 15:56:23           default:
28-Jun-2019 15:56:23 -             *itsLog << LogIO::SEVERE << "Don't know how to interprete result" << LogIO::POST;
28-Jun-2019 15:56:23 -             break;
28-Jun-2019 15:56:23 +            *itsLog << LogIO::SEVERE << "Don't know how to interprete result row " << i << LogIO::POST;
28-Jun-2019 15:56:23 +            break;
28-Jun-2019 15:56:23           }
28-Jun-2019 15:56:23         }
28-Jun-2019 15:56:23         ::casac::record *rec=fromRecord(outrec);
28-Jun-2019 15:56:23 @@ -1296,7 +1307,7 @@ table::iscelldefined(const std::string& columnname, const int rownr)
28-Jun-2019 15:56:23   Bool rstat(false);
28-Jun-2019 15:56:23   try {
28-Jun-2019 15:56:23          if(itsTable){
28-Jun-2019 15:56:23 -                 ROTableColumn tabColumn(itsTable->table(), columnname);
28-Jun-2019 15:56:23 +                 TableColumn tabColumn(itsTable->table(), columnname);
28-Jun-2019 15:56:23                  rstat = tabColumn.isDefined(rownr);
28-Jun-2019 15:56:23          } else {
28-Jun-2019 15:56:23                  *itsLog << LogIO::WARN << "No table specified, please open first" << LogIO::POST;
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/utils/utils.xml b/gcwrap/tools/utils/utils.xml
28-Jun-2019 15:56:23 index 62ba7ee..27d7b0f 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/utils/utils.xml
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/utils/utils.xml
28-Jun-2019 15:56:23 @@ -453,6 +453,16 @@ Returns a four element vector representing the version (major, minor, patch and
28-Jun-2019 15:56:23 </description>
28-Jun-2019 15:56:23 </method>
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 +<method type="function" name="version_variant">
28-Jun-2019 15:56:23 +<shortdescription>returns the target instrument f.e. ALMA or VLA</shortdescription>
28-Jun-2019 15:56:23 +<returns type="string"/>
28-Jun-2019 15:56:23 +<description>
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23 +Returns the target instrument. This helps distinguish versions that otherwise may have the same version number
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23 +</description>
28-Jun-2019 15:56:23 +</method>
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23 <method type="function" name="version_desc">
28-Jun-2019 15:56:23 <shortdescription>returns the descriptive version string, e.g. DEV or REL</shortdescription>
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/utils/utils_cmpt.cc b/gcwrap/tools/utils/utils_cmpt.cc
28-Jun-2019 15:56:23 index e24cd2f..961b209 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/utils/utils_cmpt.cc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/utils/utils_cmpt.cc
28-Jun-2019 15:56:23 @@ -16,7 +16,9 @@
28-Jun-2019 15:56:23 #include <stdcasa/version.h>
28-Jun-2019 15:56:23 #include <utils_cmpt.h>
28-Jun-2019 15:56:23 #include <tools/utils/stdBaseInterface.h>
28-Jun-2019 15:56:23 +#if ! defined(WITHOUT_DBUS)
28-Jun-2019 15:56:23 #include <tools/xerces/stdcasaXMLUtil.h>
28-Jun-2019 15:56:23 +#endif
28-Jun-2019 15:56:23 #include <casa/Logging/LogIO.h>
28-Jun-2019 15:56:23 #include <casa/BasicSL/String.h>
28-Jun-2019 15:56:23 #include <casa/OS/File.h>
28-Jun-2019 15:56:23 @@ -59,6 +61,10 @@ utils::~utils()
28-Jun-2019 15:56:23    delete itsLog;
28-Jun-2019 15:56:23 }
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 +#if ! defined(WITHOUT_DBUS)
28-Jun-2019 15:56:23 +// These parameter/XML processing routines are no longer needed with
28-Jun-2019 15:56:23 +// CASA 6 because Cereberus is used for type checking based upon
28-Jun-2019 15:56:23 +// generated JSON parameter descriptions...
28-Jun-2019 15:56:23 bool
28-Jun-2019 15:56:23 utils::verify(const ::casac::record& input, const ::casac::variant& xmldescriptor, bool throwexcept)
28-Jun-2019 15:56:23 {
28-Jun-2019 15:56:23 @@ -208,6 +214,7 @@ utils::toxml(const ::casac::record& input, const bool asfile, const std::string&
28-Jun-2019 15:56:23     }
28-Jun-2019 15:56:23     return rstat;
28-Jun-2019 15:56:23 }
28-Jun-2019 15:56:23 +#endif
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 std::string
28-Jun-2019 15:56:23 utils::getrc(const std::string& rcvar)
28-Jun-2019 15:56:23 @@ -457,8 +464,8 @@ std::string utils::resolve(const std::string &subdir) {
28-Jun-2019 15:56:23      for ( std::list<casatools::ServiceId>::const_iterator it=servs.begin( ); it != servs.end( ); ++it ) {
28-Jun-2019 15:56:23          casac::record *sub = new casac::record;
28-Jun-2019 15:56:23          sub->insert("id",it->id( ));
28-Jun-2019 15:56:23 -        sub->insert("type",it->type( ));
28-Jun-2019 15:56:23          sub->insert("uri",it->uri( ));
28-Jun-2019 15:56:23 +        sub->insert("types",std::vector<std::string>(it->types( ).begin( ),it->types( ).end( )));
28-Jun-2019 15:56:23          sub->insert("priority",it->priority( ));
28-Jun-2019 15:56:23          regrec->insert(std::to_string(count++),sub);
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23 @@ -488,6 +495,10 @@ std::string
28-Jun-2019 15:56:23 utils::version_desc( ) { return VersionInfo::desc( ); }
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 std::string
28-Jun-2019 15:56:23 +utils::version_variant( ) { return VersionInfo::variant( ); }
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23 +std::string
28-Jun-2019 15:56:23 utils::version_info( ) { return VersionInfo::info( ); }
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 std::string
28-Jun-2019 15:56:23 diff --git a/gcwrap/tools/xerces/stdcasaXMLUtil.cc b/gcwrap/tools/xerces/stdcasaXMLUtil.cc
28-Jun-2019 15:56:23 index b685ff1..56a2fa0 100644
28-Jun-2019 15:56:23 --- a/gcwrap/tools/xerces/stdcasaXMLUtil.cc
28-Jun-2019 15:56:23 +++ b/gcwrap/tools/xerces/stdcasaXMLUtil.cc
28-Jun-2019 15:56:23 @@ -8,6 +8,7 @@
28-Jun-2019 15:56:23 #include <stdcasa/xerces.h>
28-Jun-2019 15:56:23 #include <iostream>
28-Jun-2019 15:56:23 #include <fstream>
28-Jun-2019 15:56:23 +#include <memory>
28-Jun-2019 15:56:23 #include <stdcasa/record.h>
28-Jun-2019 15:56:23 #include <stdcasa/variant.h>
28-Jun-2019 15:56:23 #include <string.h>
28-Jun-2019 15:56:23 @@ -25,12 +26,12 @@ XERCES_CPP_NAMESPACE_USE;
28-Jun-2019 15:56:23 using namespace casa::xerces;
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 stdcasaXMLUtil::stdcasaXMLUtil() :
28-Jun-2019 15:56:23 -    rangeRec(0),
28-Jun-2019 15:56:23 -    whenRec(0),
28-Jun-2019 15:56:23 -    equalsRec(0),
28-Jun-2019 15:56:23 -    constraintsRec(0),
28-Jun-2019 15:56:23 -    defaultsRec(0),
28-Jun-2019 15:56:23 -    paramSet(0),
28-Jun-2019 15:56:23 +    rangeRec(nullptr),
28-Jun-2019 15:56:23 +    whenRec(nullptr),
28-Jun-2019 15:56:23 +    equalsRec(nullptr),
28-Jun-2019 15:56:23 +    constraintsRec(nullptr),
28-Jun-2019 15:56:23 +    defaultsRec(nullptr),
28-Jun-2019 15:56:23 +    paramSet(nullptr),
28-Jun-2019 15:56:23      ttName(""),
28-Jun-2019 15:56:23      parmName(""),
28-Jun-2019 15:56:23      lastParm("")
28-Jun-2019 15:56:23 @@ -230,6 +231,7 @@ bool stdcasaXMLUtil::readXMLFile(record &outRec, const string &fileName)
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlSource)
28-Jun-2019 15:56:23 {
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23      bool rstat(false);
28-Jun-2019 15:56:23      //const char* xmlFile = fileName.c_str();
28-Jun-2019 15:56:23      XMLCh tempStr[100];
28-Jun-2019 15:56:23 @@ -252,18 +254,20 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23              DOMElement *theMethod = doc->getDocumentElement();
28-Jun-2019 15:56:23              XMLCh *theTask = XMLString::transcode("task");
28-Jun-2019 15:56:23              DOMNodeList *allNodes = theMethod->getElementsByTagName(theTask);
28-Jun-2019 15:56:23 +            XMLString::release(&theTask);
28-Jun-2019 15:56:23              if(!allNodes->getLength()){
28-Jun-2019 15:56:23                  //cerr << "Not task" << endl;
28-Jun-2019 15:56:23                  XMLCh *theTool = XMLString::transcode("tool");
28-Jun-2019 15:56:23                  allNodes = theMethod->getElementsByTagName(theTool);
28-Jun-2019 15:56:23 +                XMLString::release(&theTool);
28-Jun-2019 15:56:23                  if(!allNodes->getLength()){
28-Jun-2019 15:56:23                      //cerr << "Not tools" << endl;
28-Jun-2019 15:56:23                      XMLCh *theParms = XMLString::transcode("casaparams");
28-Jun-2019 15:56:23                      allNodes = theMethod->getElementsByTagName(theParms);
28-Jun-2019 15:56:23 +                    XMLString::release(&theParms);
28-Jun-2019 15:56:23                  }
28-Jun-2019 15:56:23 -                //XMLString::release(&theTool);
28-Jun-2019 15:56:23              }
28-Jun-2019 15:56:23 -            //XMLString::release(&theTask);
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23              //
28-Jun-2019 15:56:23              // Loop through all the tasks and tools
28-Jun-2019 15:56:23              //
28-Jun-2019 15:56:23 @@ -279,18 +283,19 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                          char *aName = XMLString::transcode(myName);
28-Jun-2019 15:56:23                          DOMNode *typeNode = theAttributes->getNamedItem(type);
28-Jun-2019 15:56:23                          ttName = aName;
28-Jun-2019 15:56:23 -                        itsRecord.insert(ttName, *new record());
28-Jun-2019 15:56:23 -                        itsRecord[ttName].asRecord().insert("parameters", *new record());
28-Jun-2019 15:56:23 +                        XMLString::release(&aName);
28-Jun-2019 15:56:23 +                        itsRecord.insert(ttName, record());
28-Jun-2019 15:56:23 +                        itsRecord[ttName].asRecord().insert("parameters", record());
28-Jun-2019 15:56:23                          if(typeNode){
28-Jun-2019 15:56:23                              //const XMLCh *myType = typeNode->getNodeValue();
28-Jun-2019 15:56:23                              //char *aType = XMLString::transcode(myType);
28-Jun-2019 15:56:23                          }
28-Jun-2019 15:56:23                      }
28-Jun-2019 15:56:23 -                    //XMLString::release(&aName);
28-Jun-2019 15:56:23                  }
28-Jun-2019 15:56:23                  if(theNode->getNodeType() == DOMNode::ELEMENT_NODE){
28-Jun-2019 15:56:23                      XMLCh *input = XMLString::transcode("input");
28-Jun-2019 15:56:23                      DOMNodeList *inputNodes = dynamic_cast<DOMElement *>(theNode)->getElementsByTagName(input);
28-Jun-2019 15:56:23 +                    XMLString::release(&input);
28-Jun-2019 15:56:23                      //cerr << "Number of nodes is: " << inputNodes->getLength() << endl;
28-Jun-2019 15:56:23                      if(!inputNodes->getLength()){
28-Jun-2019 15:56:23                          //input = XMLString::transcode("casaparams");
28-Jun-2019 15:56:23 @@ -311,13 +316,15 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                  const XMLCh *myName = nameNode->getNodeValue();
28-Jun-2019 15:56:23                                  char *aName = XMLString::transcode(myName);
28-Jun-2019 15:56:23                                  parmName = aName;
28-Jun-2019 15:56:23 -                                itsRecord[ttName].asRecord()["parameters"].asRecord().insert(parmName, *new record());
28-Jun-2019 15:56:23 +                                XMLString::release(&aName);
28-Jun-2019 15:56:23 +                                itsRecord[ttName].asRecord()["parameters"].asRecord().insert(parmName, record());
28-Jun-2019 15:56:23                                  paramOrder.push_back(parmName);
28-Jun-2019 15:56:23                                  DOMNode *ignoreNode = theAttributes->getNamedItem(ignorecase);
28-Jun-2019 15:56:23                                  if(ignoreNode){
28-Jun-2019 15:56:23                                      const XMLCh *myType = ignoreNode->getNodeValue();
28-Jun-2019 15:56:23                                      char *aType = XMLString::transcode(myType);
28-Jun-2019 15:56:23                                      itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("ignorecase", aType);
28-Jun-2019 15:56:23 +                                    XMLString::release(&aType);
28-Jun-2019 15:56:23                                 }
28-Jun-2019 15:56:23                                  DOMNode *typeNode = theAttributes->getNamedItem(type);
28-Jun-2019 15:56:23                                  if(typeNode){
28-Jun-2019 15:56:23 @@ -326,6 +333,7 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("type", aType);
28-Jun-2019 15:56:23                                      paramType = setType(aType);
28-Jun-2019 15:56:23                                      typeIsAny = string(aType) == string("any");
28-Jun-2019 15:56:23 +                                    XMLString::release(&aType);
28-Jun-2019 15:56:23                                      // XMLString::release(&myType);
28-Jun-2019 15:56:23                                      //XMLString::release(&aType);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23 @@ -335,6 +343,7 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      const XMLCh *myUnits = unitsNode->getNodeValue();
28-Jun-2019 15:56:23                                      char *aUnit = XMLString::transcode(myUnits);
28-Jun-2019 15:56:23                                      itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("units", aUnit);
28-Jun-2019 15:56:23 +                                    XMLString::release(&aUnit);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23                                  DOMNode *extantNode = theAttributes->getNamedItem(mustexist);
28-Jun-2019 15:56:23                                  if(extantNode){
28-Jun-2019 15:56:23 @@ -345,7 +354,7 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      } else {
28-Jun-2019 15:56:23                                          itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("mustexist", false);
28-Jun-2019 15:56:23                                      }
28-Jun-2019 15:56:23 -                                    //XMLString::release(&aVal);
28-Jun-2019 15:56:23 +                                    XMLString::release(&aVal);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23                                  DOMNode *blankNode = theAttributes->getNamedItem(allowblank);
28-Jun-2019 15:56:23                                  if(blankNode){
28-Jun-2019 15:56:23 @@ -356,7 +365,7 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      } else {
28-Jun-2019 15:56:23                                          itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("allowblank", false);
28-Jun-2019 15:56:23                                      }
28-Jun-2019 15:56:23 -                                    //XMLString::release(&aVal);
28-Jun-2019 15:56:23 +                                    XMLString::release(&aVal);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23                                  // check for kind
28-Jun-2019 15:56:23 @@ -365,6 +374,7 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      const XMLCh *myKind = kindNode->getNodeValue();
28-Jun-2019 15:56:23                                      char *aKind = XMLString::transcode(myKind);
28-Jun-2019 15:56:23                                      itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("kind", aKind);
28-Jun-2019 15:56:23 +                                    XMLString::release(&aKind);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23                              }
28-Jun-2019 15:56:23                              //
28-Jun-2019 15:56:23 @@ -381,7 +391,7 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      char *aDesc = XMLString::transcode(myDesc);
28-Jun-2019 15:56:23                                      //cerr << "description value is: " << aDesc << endl;
28-Jun-2019 15:56:23                                      itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("description", string(aDesc));
28-Jun-2019 15:56:23 -                                    //XMLString::release(&aDesc);
28-Jun-2019 15:56:23 +                                    XMLString::release(&aDesc);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23                                  // element allowed, attributes: enum, range (values chan have attributes min, max)
28-Jun-2019 15:56:23                                  // element any, attributes: record, variant
28-Jun-2019 15:56:23 @@ -391,10 +401,14 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      if(kindNode){
28-Jun-2019 15:56:23                                          const XMLCh *kindType = kindNode->getNodeValue();
28-Jun-2019 15:56:23                                          if(XMLString::equals(kindType, ienum)){
28-Jun-2019 15:56:23 -                                            itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("allowed", *itsvalue(childNode, paramType));
28-Jun-2019 15:56:23 +                                            std::unique_ptr<variant> itsval(itsvalue(childNode, paramType));
28-Jun-2019 15:56:23 +                                            itsRecord[ttName].asRecord()["parameters"].asRecord()
28-Jun-2019 15:56:23 +                                                [parmName].asRecord().insert("allowed", *itsval);
28-Jun-2019 15:56:23                                          } else if(XMLString::equals(kindType, range)){
28-Jun-2019 15:56:23                                              // std::cerr << "Adding ranges" << std::endl;
28-Jun-2019 15:56:23 -                                            itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("range", *itsvalue(childNode, paramType));
28-Jun-2019 15:56:23 +                                            std::unique_ptr<variant> itsval(itsvalue(childNode, paramType));
28-Jun-2019 15:56:23 +                                            itsRecord[ttName].asRecord()["parameters"].asRecord()
28-Jun-2019 15:56:23 +                                                [parmName].asRecord().insert("range", *itsval);
28-Jun-2019 15:56:23                                          } else {
28-Jun-2019 15:56:23                                              std::cerr << "Unknown allowed attribute" << std::endl;
28-Jun-2019 15:56:23                                          }
28-Jun-2019 15:56:23 @@ -407,10 +421,13 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                          DOMNode *typeNode = theAttributes->getNamedItem(type);
28-Jun-2019 15:56:23                                          if(typeNode) {
28-Jun-2019 15:56:23                                              const XMLCh *aType = typeNode->getNodeValue();
28-Jun-2019 15:56:23 -                                            paramType = setType(XMLString::transcode(aType));
28-Jun-2019 15:56:23 +                                            char *type = XMLString::transcode(aType);
28-Jun-2019 15:56:23 +                                            paramType = setType(type);
28-Jun-2019 15:56:23 +                                            XMLString::release(&type);
28-Jun-2019 15:56:23                                          }
28-Jun-2019 15:56:23                                      }
28-Jun-2019 15:56:23 -                                    itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("value", *itsvalue(childNode, paramType));
28-Jun-2019 15:56:23 +                                    std::unique_ptr<variant> itsval(itsvalue(childNode, paramType));
28-Jun-2019 15:56:23 +                                    itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert("value", *itsval);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23                                  // examples
28-Jun-2019 15:56:23                                  if(XMLString::equals(example, childNode->getNodeName())) {
28-Jun-2019 15:56:23 @@ -419,10 +436,11 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      
28-Jun-2019 15:56:23                                      record& r = itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord();
28-Jun-2019 15:56:23                                      if(r.find("example") == r.end()) {
28-Jun-2019 15:56:23 -                                        r.insert("example", *new variant(vector<string>(1, aExample)));
28-Jun-2019 15:56:23 +                                        r.insert("example", variant(vector<string>(1, aExample)));
28-Jun-2019 15:56:23                                      } else {
28-Jun-2019 15:56:23                                          r["example"].push(string(aExample));
28-Jun-2019 15:56:23                                      }
28-Jun-2019 15:56:23 +                                    XMLString::release(&aExample);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23                                  // get limit types and put them in a string array
28-Jun-2019 15:56:23 @@ -437,7 +455,9 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                          else myTypes = ltNode2->getNodeValue();
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23                                          vector<string> v;
28-Jun-2019 15:56:23 -                                        stringstream ss(XMLString::transcode(myTypes));
28-Jun-2019 15:56:23 +                                        char *types = XMLString::transcode(myTypes);
28-Jun-2019 15:56:23 +                                        stringstream ss(types);
28-Jun-2019 15:56:23 +                                        XMLString::release(&types);
28-Jun-2019 15:56:23                                          string str;
28-Jun-2019 15:56:23                                         /*
28-Jun-2019 15:56:23                                         while(ss >> str){
28-Jun-2019 15:56:23 @@ -454,28 +474,31 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                         }
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23                                          itsRecord[ttName].asRecord()["parameters"].asRecord()[parmName].asRecord().insert(
28-Jun-2019 15:56:23 -                                                "limittypes", *(new variant(v)));
28-Jun-2019 15:56:23 +                                                "limittypes", variant(v));
28-Jun-2019 15:56:23                                      }
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23                              }
28-Jun-2019 15:56:23                          }
28-Jun-2019 15:56:23                          // insert the paramater order
28-Jun-2019 15:56:23 -                        itsRecord[ttName].asRecord().insert("parameterorder", *new variant(paramOrder));
28-Jun-2019 15:56:23 +                        variant tmpVarPO(paramOrder);
28-Jun-2019 15:56:23 +                        itsRecord[ttName].asRecord().insert("parameterorder", tmpVarPO);
28-Jun-2019 15:56:23                      }
28-Jun-2019 15:56:23                      //
28-Jun-2019 15:56:23                      // Following section deals with the constraints block
28-Jun-2019 15:56:23                      //
28-Jun-2019 15:56:23 -                    record *constraintsRec(0);
28-Jun-2019 15:56:23 +                    std::unique_ptr<record> constraintsRec(nullptr);
28-Jun-2019 15:56:23                      XMLCh *constraints = XMLString::transcode("constraints");
28-Jun-2019 15:56:23                      DOMNodeList *constraintsNodes = dynamic_cast<DOMElement *>(theNode)->getElementsByTagName(constraints);
28-Jun-2019 15:56:23 +                    XMLString::release(&constraints);
28-Jun-2019 15:56:23                      for(XMLSize_t j=0; j<constraintsNodes->getLength(); j++){
28-Jun-2019 15:56:23                          if(!constraintsRec)
28-Jun-2019 15:56:23 -                            constraintsRec = new record;
28-Jun-2019 15:56:23 +                            constraintsRec.reset(new record);
28-Jun-2019 15:56:23                          XMLCh *when = XMLString::transcode("when");
28-Jun-2019 15:56:23                          DOMNodeList *whenNodes = dynamic_cast<DOMElement *>(constraintsNodes->item(j))->getElementsByTagName(when);
28-Jun-2019 15:56:23 +                        XMLString::release(&when);
28-Jun-2019 15:56:23                          for(XMLSize_t k=0; k<whenNodes->getLength(); k++){
28-Jun-2019 15:56:23                              record whenRec;
28-Jun-2019 15:56:23 -                            char *whenName(0);
28-Jun-2019 15:56:23 +                            std::string whenName;
28-Jun-2019 15:56:23                              // cerr << endl << "when param ";
28-Jun-2019 15:56:23                              DOMNode *theNode = whenNodes->item(k);
28-Jun-2019 15:56:23                              DOMNamedNodeMap *theAttributes = theNode->getAttributes();
28-Jun-2019 15:56:23 @@ -485,14 +508,16 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                  char *aName = XMLString::transcode(myName);
28-Jun-2019 15:56:23                                  // cerr << aName;
28-Jun-2019 15:56:23                                  whenName = aName;
28-Jun-2019 15:56:23 +                                XMLString::release(&aName);
28-Jun-2019 15:56:23                              } else {
28-Jun-2019 15:56:23                                  // cerr << endl;
28-Jun-2019 15:56:23                              }
28-Jun-2019 15:56:23                              XMLCh *equals = XMLString::transcode("equals");
28-Jun-2019 15:56:23                              DOMNodeList *equalsNodes = dynamic_cast<DOMElement *>(whenNodes->item(k))->getElementsByTagName(equals);
28-Jun-2019 15:56:23 +                            XMLString::release(&equals);
28-Jun-2019 15:56:23                              for(XMLSize_t l=0; l<equalsNodes->getLength(); l++){
28-Jun-2019 15:56:23                                  record equalsRec;
28-Jun-2019 15:56:23 -                                char *equalsName(0);
28-Jun-2019 15:56:23 +                                std::string equalsName;
28-Jun-2019 15:56:23                                  DOMNode *theNode = equalsNodes->item(l);
28-Jun-2019 15:56:23                                  DOMNamedNodeMap *theAttributes = theNode->getAttributes();
28-Jun-2019 15:56:23                                  if(theAttributes){
28-Jun-2019 15:56:23 @@ -501,18 +526,20 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                      char *aName = XMLString::transcode(myName);
28-Jun-2019 15:56:23                                      // cerr << endl  << "\t is " << aName;
28-Jun-2019 15:56:23                                      equalsName = aName;
28-Jun-2019 15:56:23 +                                    XMLString::release(&aName);
28-Jun-2019 15:56:23                                  } else {
28-Jun-2019 15:56:23                                      // cerr << endl;
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23                                  XMLCh *idefault = XMLString::transcode("default");
28-Jun-2019 15:56:23                                  DOMNodeList *defaultNodes = dynamic_cast<DOMElement *>(equalsNodes->item(l))->getElementsByTagName(idefault);
28-Jun-2019 15:56:23 +                                XMLString::release(&idefault);
28-Jun-2019 15:56:23                                  if(defaultNodes->getLength() > 0){
28-Jun-2019 15:56:23                                      record defRecord;
28-Jun-2019 15:56:23                                      equalsRec.insert("defaults", defRecord);
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23                                  for(XMLSize_t m=0; m<defaultNodes->getLength(); m++){
28-Jun-2019 15:56:23                                      record defRec;
28-Jun-2019 15:56:23 -                                    char *defName(0);
28-Jun-2019 15:56:23 +                                    std::string defName;
28-Jun-2019 15:56:23                                      DOMNode *theNode = defaultNodes->item(m);
28-Jun-2019 15:56:23                                      DOMNamedNodeMap *theAttributes = theNode->getAttributes();
28-Jun-2019 15:56:23                                      if(theAttributes){
28-Jun-2019 15:56:23 @@ -520,12 +547,13 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                          const XMLCh *myName = nameNode->getNodeValue();
28-Jun-2019 15:56:23                                          char *aName = XMLString::transcode(myName);
28-Jun-2019 15:56:23                                          defName = aName;
28-Jun-2019 15:56:23 +                                        XMLString::release(&aName);
28-Jun-2019 15:56:23                                          // cerr << endl << "\t\tset " << aName;
28-Jun-2019 15:56:23                                      } else {
28-Jun-2019 15:56:23                                          // cerr << endl;
28-Jun-2019 15:56:23                                      }
28-Jun-2019 15:56:23                                      // Here fetch the type from the tool/task record for the name
28-Jun-2019 15:56:23 -                                    if(defName){                                       
28-Jun-2019 15:56:23 +                                    if(!defName.empty()){
28-Jun-2019 15:56:23                                          variant::TYPE eh(variant::STRING);
28-Jun-2019 15:56:23                                          // std::cerr << " default: " << defName << std::endl;
28-Jun-2019 15:56:23                                          DOMNodeList *descNode = dynamic_cast<DOMElement *>(theNode)->getElementsByTagName(description);
28-Jun-2019 15:56:23 @@ -538,6 +566,7 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                              } else {
28-Jun-2019 15:56:23                                                  defRec.insert("description", "");
28-Jun-2019 15:56:23                                              }
28-Jun-2019 15:56:23 +                                            XMLString::release(&theDescription);
28-Jun-2019 15:56:23                                          }
28-Jun-2019 15:56:23                                          // check that defName is defined..
28-Jun-2019 15:56:23                                          record& tempRec = itsRecord[ttName].asRecord()["parameters"].asRecord();
28-Jun-2019 15:56:23 @@ -552,11 +581,14 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                                      char *aType = XMLString::transcode(myType);
28-Jun-2019 15:56:23                                                      if(string(aType) != "vector" || tempRec[defName].asRecord()["type"].asString() == "any")
28-Jun-2019 15:56:23                                                          eh = setType(aType);
28-Jun-2019 15:56:23 -                                                    else eh = setType(tempRec[defName].asRecord()["type"].asString());
28-Jun-2019 15:56:23 +                                                    else
28-Jun-2019 15:56:23 +                                                        eh = setType(tempRec[defName].asRecord()["type"].asString());
28-Jun-2019 15:56:23 +                                                    XMLString::release(&aType);
28-Jun-2019 15:56:23                                                  } else
28-Jun-2019 15:56:23                                                      eh = setType(tempRec[defName].asRecord()["type"].asString());
28-Jun-2019 15:56:23 -                                               
28-Jun-2019 15:56:23 -                                                defRec.insert("value", *itsvalue(valNodes->item(0), eh));
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23 +                                                std::unique_ptr<variant> itsval(itsvalue(valNodes->item(0), eh));
28-Jun-2019 15:56:23 +                                                defRec.insert("value", *itsval);
28-Jun-2019 15:56:23                                                  equalsRec["defaults"].asRecord().insert(defName, defRec);
28-Jun-2019 15:56:23                                              }
28-Jun-2019 15:56:23                                              
28-Jun-2019 15:56:23 @@ -581,15 +613,15 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                                          }
28-Jun-2019 15:56:23                                      }
28-Jun-2019 15:56:23                                  }
28-Jun-2019 15:56:23 -                                if(equalsName)
28-Jun-2019 15:56:23 +                                if(!equalsName.empty())
28-Jun-2019 15:56:23                                      whenRec.insert(equalsName, equalsRec);
28-Jun-2019 15:56:23                              }
28-Jun-2019 15:56:23 -                            if(whenName)
28-Jun-2019 15:56:23 +                            if(!whenName.empty())
28-Jun-2019 15:56:23                                  constraintsRec->insert(whenName, whenRec);
28-Jun-2019 15:56:23                          }
28-Jun-2019 15:56:23                      }
28-Jun-2019 15:56:23                      if(constraintsRec)
28-Jun-2019 15:56:23 -                        itsRecord[ttName].asRecord().insert("constraints", constraintsRec);
28-Jun-2019 15:56:23 +                        itsRecord[ttName].asRecord().insert("constraints", *constraintsRec);
28-Jun-2019 15:56:23                      
28-Jun-2019 15:56:23                      // shortdescription, description, and example
28-Jun-2019 15:56:23                      DOMNodeList *descNodes = dynamic_cast<DOMElement*>(theNode)->getElementsByTagName(description);
28-Jun-2019 15:56:23 @@ -597,18 +629,21 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23                          const XMLCh *desc = descNodes->item(0)->getTextContent();
28-Jun-2019 15:56:23                          char *aDesc = XMLString::transcode(desc);
28-Jun-2019 15:56:23                          itsRecord[ttName].asRecord().insert("description", aDesc);
28-Jun-2019 15:56:23 +                        XMLString::release(&aDesc);
28-Jun-2019 15:56:23                      }
28-Jun-2019 15:56:23                      descNodes = dynamic_cast<DOMElement*>(theNode)->getElementsByTagName(shortdesc);
28-Jun-2019 15:56:23                      if(descNodes->getLength() > 0) {
28-Jun-2019 15:56:23                          const XMLCh *sdesc = descNodes->item(0)->getTextContent();
28-Jun-2019 15:56:23                          char *aSdesc = XMLString::transcode(sdesc);
28-Jun-2019 15:56:23                          itsRecord[ttName].asRecord().insert("shortdescription", aSdesc);
28-Jun-2019 15:56:23 +                        XMLString::release(&aSdesc);
28-Jun-2019 15:56:23                      }
28-Jun-2019 15:56:23                      descNodes = dynamic_cast<DOMElement*>(theNode)->getElementsByTagName(example);
28-Jun-2019 15:56:23                      if(descNodes->getLength() > 0) {
28-Jun-2019 15:56:23                          const XMLCh *ex = descNodes->item(0)->getTextContent();
28-Jun-2019 15:56:23                          char *aEx = XMLString::transcode(ex);
28-Jun-2019 15:56:23                          itsRecord[ttName].asRecord().insert("example", aEx);
28-Jun-2019 15:56:23 +                        XMLString::release(&aEx);
28-Jun-2019 15:56:23                      }
28-Jun-2019 15:56:23                  }
28-Jun-2019 15:56:23              }
28-Jun-2019 15:56:23 @@ -617,7 +652,7 @@ bool stdcasaXMLUtil::readXML(record &itsRecord,  const Wrapper4InputSource &xmlS
28-Jun-2019 15:56:23          }
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23      catch (const XMLException& toCatch) {
28-Jun-2019 15:56:23 -        char* message = XMLString::transcode(toCatch.getMessage());
28-Jun-2019 15:56:23 +        char *message = XMLString::transcode(toCatch.getMessage());
28-Jun-2019 15:56:23          cout << "Exception message is: \n"
28-Jun-2019 15:56:23          << message << "\n";
28-Jun-2019 15:56:23          XMLString::release(&message);
28-Jun-2019 15:56:23 @@ -649,7 +684,7 @@ bool stdcasaXMLUtil::writeXMLFile(const string &fileName, const record &inRec)
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 variant *stdcasaXMLUtil::tovariant(variant::TYPE theType, string &theInput, bool isVector)
28-Jun-2019 15:56:23 {
28-Jun-2019 15:56:23 -    variant *rstat(0);
28-Jun-2019 15:56:23 +    variant *rstat(nullptr);
28-Jun-2019 15:56:23      // Lump the VECs with the scalars as we only expect one
28-Jun-2019 15:56:23      // value element, which has on
28-Jun-2019 15:56:23      switch(theType){
28-Jun-2019 15:56:23 @@ -723,7 +758,7 @@ variant *stdcasaXMLUtil::tovariant(variant::TYPE theType, string &theInput, bool
28-Jun-2019 15:56:23          break;
28-Jun-2019 15:56:23      case variant::RECORD :
28-Jun-2019 15:56:23          // for now, don't bother parsing
28-Jun-2019 15:56:23 -        rstat = new variant(*new record());
28-Jun-2019 15:56:23 +        rstat = new variant(record());
28-Jun-2019 15:56:23          break;
28-Jun-2019 15:56:23      default :
28-Jun-2019 15:56:23          rstat = new variant;
28-Jun-2019 15:56:23 @@ -735,8 +770,8 @@ variant *stdcasaXMLUtil::tovariant(variant::TYPE theType, string &theInput, bool
28-Jun-2019 15:56:23 }
28-Jun-2019 15:56:23 // If there are no valueNodes then we must assign the current value!
28-Jun-2019 15:56:23 variant *stdcasaXMLUtil::itsvalue(DOMNode *theNode, variant::TYPE itsType){
28-Jun-2019 15:56:23 -    variant *rstatus(0);
28-Jun-2019 15:56:23 -    record *rangeRec(0);
28-Jun-2019 15:56:23 +    variant *rstatus(nullptr);
28-Jun-2019 15:56:23 +    std::unique_ptr<record> rangeRec(nullptr);
28-Jun-2019 15:56:23      bool isVector(false);
28-Jun-2019 15:56:23      DOMNodeList *valueNodes = dynamic_cast<DOMElement *>(theNode)->getElementsByTagName(value);
28-Jun-2019 15:56:23      if(valueNodes->getLength() > 1){
28-Jun-2019 15:56:23 @@ -747,9 +782,9 @@ variant *stdcasaXMLUtil::itsvalue(DOMNode *theNode, variant::TYPE itsType){
28-Jun-2019 15:56:23                     itsType == variant::DOUBLEVEC || itsType == variant::COMPLEXVEC ||
28-Jun-2019 15:56:23                     itsType == variant::INTVEC;
28-Jun-2019 15:56:23          const XMLCh *myValue = theNode->getTextContent();
28-Jun-2019 15:56:23 -        char *aValue = XMLString::transcode(myValue);       
28-Jun-2019 15:56:23 +        char *aValue = XMLString::transcode(myValue);
28-Jun-2019 15:56:23          string sValue(aValue);
28-Jun-2019 15:56:23 -       
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23          bool empty = true;
28-Jun-2019 15:56:23          for(unsigned int i = 0; i < sValue.size(); i++) {
28-Jun-2019 15:56:23              if(sValue[i] != ' ' && sValue[i] != '\t' && sValue[i] != '\n' &&
28-Jun-2019 15:56:23 @@ -768,6 +803,7 @@ variant *stdcasaXMLUtil::itsvalue(DOMNode *theNode, variant::TYPE itsType){
28-Jun-2019 15:56:23          } else if(aValue) {
28-Jun-2019 15:56:23              rstatus = tovariant(itsType, sValue, isVector);
28-Jun-2019 15:56:23          }
28-Jun-2019 15:56:23 +        XMLString::release(&aValue);
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23      for(XMLSize_t n=0; n<valueNodes->getLength(); n++){
28-Jun-2019 15:56:23          DOMNode *theNode = valueNodes->item(n);
28-Jun-2019 15:56:23 @@ -794,10 +830,14 @@ variant *stdcasaXMLUtil::itsvalue(DOMNode *theNode, variant::TYPE itsType){
28-Jun-2019 15:56:23                              char *aValue = XMLString::transcode(myValue);
28-Jun-2019 15:56:23                              if(aValue) {
28-Jun-2019 15:56:23                                  string tmp(aValue);
28-Jun-2019 15:56:23 -                                if(!o)
28-Jun-2019 15:56:23 +                                XMLString::release(&aValue);
28-Jun-2019 15:56:23 +                                if(!o) {
28-Jun-2019 15:56:23 +                                    if (rstatus)
28-Jun-2019 15:56:23 +                                        delete rstatus;
28-Jun-2019 15:56:23                                      rstatus = tovariant(itsType, tmp, isVector);
28-Jun-2019 15:56:23 -                                else
28-Jun-2019 15:56:23 +                                } else {
28-Jun-2019 15:56:23                                      addtovariant(rstatus, itsType, tmp);
28-Jun-2019 15:56:23 +                                }
28-Jun-2019 15:56:23                              }
28-Jun-2019 15:56:23                          }
28-Jun-2019 15:56:23                          break; // Now we've gotten all the vector
28-Jun-2019 15:56:23 @@ -806,16 +846,22 @@ variant *stdcasaXMLUtil::itsvalue(DOMNode *theNode, variant::TYPE itsType){
28-Jun-2019 15:56:23                      char *aValue = XMLString::transcode(myValue);
28-Jun-2019 15:56:23                      if(aValue){
28-Jun-2019 15:56:23                          string tmp = aValue;
28-Jun-2019 15:56:23 -                        if(!n)
28-Jun-2019 15:56:23 +                        XMLString::release(&aValue);
28-Jun-2019 15:56:23 +                        if(!n) {
28-Jun-2019 15:56:23 +                            if (rstatus)
28-Jun-2019 15:56:23 +                                delete rstatus;
28-Jun-2019 15:56:23                              rstatus = tovariant(itsType, tmp, isVector);
28-Jun-2019 15:56:23 -                        else
28-Jun-2019 15:56:23 +                        } else {
28-Jun-2019 15:56:23                              addtovariant(rstatus, itsType, tmp);
28-Jun-2019 15:56:23 +                        }
28-Jun-2019 15:56:23                      }
28-Jun-2019 15:56:23                  }
28-Jun-2019 15:56:23 +                XMLString::release(&aType);
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23              } else if(rangeNode){
28-Jun-2019 15:56:23                  char *rangeType = XMLString::transcode(rangeNode->getNodeValue());
28-Jun-2019 15:56:23                  if(!rangeRec){
28-Jun-2019 15:56:23 -                    rangeRec = new record;
28-Jun-2019 15:56:23 +                    rangeRec.reset(new record);
28-Jun-2019 15:56:23                  }
28-Jun-2019 15:56:23                  if(!rangeRec->count(rangeType)){
28-Jun-2019 15:56:23                      record rangeOps;
28-Jun-2019 15:56:23 @@ -825,7 +871,7 @@ variant *stdcasaXMLUtil::itsvalue(DOMNode *theNode, variant::TYPE itsType){
28-Jun-2019 15:56:23                      rangeOps.insert("inclusive", svec);
28-Jun-2019 15:56:23                      rangeRec->insert(rangeType, rangeOps);
28-Jun-2019 15:56:23                  }
28-Jun-2019 15:56:23 -                const XMLCh *inclusive = XMLString::transcode("inclusive");
28-Jun-2019 15:56:23 +                XMLCh *inclusive = XMLString::transcode("inclusive");
28-Jun-2019 15:56:23                  DOMNode *rangeNode = theAttributes->getNamedItem(inclusive);
28-Jun-2019 15:56:23                  char *rangeInclude(0);
28-Jun-2019 15:56:23                  if(rangeNode)
28-Jun-2019 15:56:23 @@ -834,25 +880,35 @@ variant *stdcasaXMLUtil::itsvalue(DOMNode *theNode, variant::TYPE itsType){
28-Jun-2019 15:56:23                      (*rangeRec)[rangeType].asRecord()["inclusive"].push(string(rangeInclude));
28-Jun-2019 15:56:23                  else
28-Jun-2019 15:56:23                      (*rangeRec)[rangeType].asRecord()["inclusive"].push(string());
28-Jun-2019 15:56:23 +                XMLString::release(&inclusive);
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23                  const XMLCh *myValue = theNode->getTextContent();
28-Jun-2019 15:56:23                  char *aValue = XMLString::transcode(myValue);
28-Jun-2019 15:56:23                  if(aValue) {
28-Jun-2019 15:56:23                      istringstream iss(aValue);
28-Jun-2019 15:56:23 +                    XMLString::release(&aValue);
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23                      double myval;
28-Jun-2019 15:56:23                      iss >> myval;
28-Jun-2019 15:56:23                      (*rangeRec)[rangeType].asRecord()["value"].asDoubleVec().push_back(myval);
28-Jun-2019 15:56:23                      (*rangeRec)[rangeType].asRecord()["value"].shape() = vector<int>(1,
28-Jun-2019 15:56:23                              (*rangeRec)[rangeType].asRecord()["value"].asDoubleVec().size());
28-Jun-2019 15:56:23                  }
28-Jun-2019 15:56:23 +                XMLString::release(&rangeType);
28-Jun-2019 15:56:23 +
28-Jun-2019 15:56:23              } else {
28-Jun-2019 15:56:23                  const XMLCh *myValue = theNode->getTextContent();
28-Jun-2019 15:56:23                  char *aValue = XMLString::transcode(myValue);
28-Jun-2019 15:56:23                  if(aValue) {
28-Jun-2019 15:56:23                      string tmp(aValue);
28-Jun-2019 15:56:23 -                    if(!n)
28-Jun-2019 15:56:23 +                    XMLString::release(&aValue);
28-Jun-2019 15:56:23 +                    if(!n) {
28-Jun-2019 15:56:23 +                        if (rstatus)
28-Jun-2019 15:56:23 +                            delete rstatus;
28-Jun-2019 15:56:23                          rstatus = tovariant(itsType, tmp, isVector);
28-Jun-2019 15:56:23 -                    else
28-Jun-2019 15:56:23 +                    } else {
28-Jun-2019 15:56:23                          addtovariant(rstatus, itsType, tmp);
28-Jun-2019 15:56:23 +                    }
28-Jun-2019 15:56:23                  }
28-Jun-2019 15:56:23              }
28-Jun-2019 15:56:23          } else {
28-Jun-2019 15:56:23 @@ -860,16 +916,24 @@ variant *stdcasaXMLUtil::itsvalue(DOMNode *theNode, variant::TYPE itsType){
28-Jun-2019 15:56:23              char *aValue = XMLString::transcode(myValue);
28-Jun-2019 15:56:23              if(aValue){
28-Jun-2019 15:56:23                  string tmp(aValue);
28-Jun-2019 15:56:23 -                if(!n)
28-Jun-2019 15:56:23 +                XMLString::release(&aValue);
28-Jun-2019 15:56:23 +                if(!n) {
28-Jun-2019 15:56:23 +                    if (rstatus)
28-Jun-2019 15:56:23 +                        delete rstatus;
28-Jun-2019 15:56:23                      rstatus = tovariant(itsType, tmp, isVector);
28-Jun-2019 15:56:23 -                else
28-Jun-2019 15:56:23 +                } else {
28-Jun-2019 15:56:23                      addtovariant(rstatus, itsType, tmp);
28-Jun-2019 15:56:23 +                }
28-Jun-2019 15:56:23              }
28-Jun-2019 15:56:23              // }
28-Jun-2019 15:56:23          }
28-Jun-2019 15:56:23      }
28-Jun-2019 15:56:23 -    if(rangeRec)
28-Jun-2019 15:56:23 -        rstatus = new variant(rangeRec);
28-Jun-2019 15:56:23 +    if(rangeRec) {
28-Jun-2019 15:56:23 +        if (rstatus) {
28-Jun-2019 15:56:23 +            delete rstatus;
28-Jun-2019 15:56:23 +        }
28-Jun-2019 15:56:23 +        rstatus = new variant(*rangeRec);
28-Jun-2019 15:56:23 +    }
28-Jun-2019 15:56:23      if(!rstatus)
28-Jun-2019 15:56:23          rstatus = new variant();
28-Jun-2019 15:56:23      return rstatus;
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 Comparison returned: 1
28-Jun-2019 15:56:23 Checkout: git checkout ARD-25
28-Jun-2019 15:56:23 Already on 'ARD-25'
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 [git, tag, -a, test-ARD-25-2, -m 'Automatic tag']
28-Jun-2019 15:56:23
28-Jun-2019 15:56:23 Done tagging test-ARD-25-2
28-Jun-2019 15:56:23 Pushing test-ARD-25-2 to origin
28-Jun-2019 15:56:24 To ssh://git@open-bitbucket.nrao.edu:7999/casa/casa.git
28-Jun-2019 15:56:24 * [new tag]         test-ARD-25-2 -> test-ARD-25-2
28-Jun-2019 15:56:24
28-Jun-2019 15:56:24 Pushed test-ARD-25-2 to origin
28-Jun-2019 15:56:24
28-Jun-2019 15:56:24 BUILD SUCCESSFUL
28-Jun-2019 15:56:24
28-Jun-2019 15:56:24 Total time: 12.438 secs
28-Jun-2019 15:56:24 Finished task 'Script' with result: Success
28-Jun-2019 15:56:24 Running post build plugin 'Docker Container Cleanup'
28-Jun-2019 15:56:24 Running post build plugin 'NCover Results Collector'
28-Jun-2019 15:56:24 Running post build plugin 'Clover Results Collector'
28-Jun-2019 15:56:24 Running post build plugin 'npm Cache Cleanup'
28-Jun-2019 15:56:24 Running post build plugin 'Artifact Copier'
28-Jun-2019 15:56:24 Finalising the build...
28-Jun-2019 15:56:24 Stopping timer.
28-Jun-2019 15:56:24 Build ARD-BPT21-TBFP-2 completed.
28-Jun-2019 15:56:24 Running on server: post build plugin 'NCover Results Collector'
28-Jun-2019 15:56:24 Running on server: post build plugin 'Build Hanging Detection Configuration'
28-Jun-2019 15:56:24 Running on server: post build plugin 'Clover Delta Calculator'
28-Jun-2019 15:56:24 Running on server: post build plugin 'Maven Dependencies Postprocessor'
28-Jun-2019 15:56:24 All post build plugins have finished
28-Jun-2019 15:56:24 Generating build results summary...
28-Jun-2019 15:56:24 Saving build results to disk...
28-Jun-2019 15:56:24 Logging substituted variables...
28-Jun-2019 15:56:24 Indexing build results...
28-Jun-2019 15:56:24 Finished building ARD-BPT21-TBFP-2.