Opened 9 years ago
Closed 8 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: |
Description
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 9 years ago by mkommend
- Status changed from new to accepted
comment:2 Changed 9 years ago by mkommend
- Owner changed from mkommend to abeham
- Status changed from accepted to reviewing
comment:3 Changed 9 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 8 years ago by mkommend
- Resolution set to done
- Status changed from readytorelease to closed
r13671: Changed progress calculationd during instance provider discovery in CreateExperimentDialog.