Opened 6 years ago

Closed 5 years ago

#2585 closed defect (done)

Create experiment dialog throws an exception if more than one instance provider does not have any data descriptors

Reported by: mkommend Owned by: mkommend
Priority: low Milestone: HeuristicLab 3.3.14
Component: Optimizer Version: 3.3.13
Keywords: Cc:


The problem is an error in the progress calculation during the provider discovery. If multiple instance provider do not have any data descriptors a progress of > 100 is reported, that leads to an exception in the progress bar control (CreateExperimentDialog line 734).

Progress calculation (line 725-726)

 double progress = nodes.Count > 0 ? i / (double)nodes.Count : 0.0;
 instanceDiscoveryBackgroundWorker.ReportProgress((int)(100 * progress), provider.Name);

The issues is that i can be larger then nodes.Count due to excluded instance providers.

Change History (4)

comment:1 Changed 6 years ago by mkommend

  • Status changed from new to accepted

comment:2 Changed 6 years ago by mkommend

  • Owner changed from mkommend to abeham
  • Status changed from accepted to reviewing

r13671: Changed progress calculationd during instance provider discovery in CreateExperimentDialog.

comment:3 Changed 6 years ago by abeham

  • Owner changed from abeham to mkommend
  • Status changed from reviewing to readytorelease

Change r13671 is okay, there's a lot of formatting changes which obscures the real cange. As a consistent extension of how we treat if-else conditions, I would urge to treat catch/finally in a similar way:

if (Maximization.Value) {
  // largest values must be sorted first
  trainingQuality = Quality.Select(x => -x.Value).ToArray();
} else {
  // smallest values must be sorted first
  trainingQuality = Quality.Select(x => x.Value).ToArray();
try (...) {
} finally {

comment:4 Changed 5 years ago by mkommend

  • Resolution set to done
  • Status changed from readytorelease to closed

r13885: Merged r13671 into stable.

Note: See TracTickets for help on using tickets.