[codeface] Re: [PATCH 19/26] Fix cycle extraction in ML analysis

  • From: Claus Hunsen <hunsen@xxxxxxxxxxxxxxxxx>
  • To: codeface@xxxxxxxxxxxxx
  • Date: Tue, 29 Nov 2016 10:28:12 +0100

Hi Wolfgang,

you have a good point here since I have not seen any more circumstances
where the problem occurs (as far I can remember, anyway). I am
completing a patch right now to get a single revision range into the DB.
That's indeed the better thing to do.
In the end, the new patch will replace this one.

-- Claus

On 24/11/16 12:09, Wolfgang Mauerer wrote:

Am 13/10/2016 um 17:29 schrieb Claus Hunsen:
If there are no cycles (i.e., release ranges) in the database for the
given project - which happens in the ML test, for example -, the
subsetting of the result throws an error.

did you encounter any other cases when there are no release ranges?
If explicit ranges are specified, there need to be at least two of
them, and when using the time-based analysis mode (i.e,, without
explicit specification of release ranges), there should be at
least one range.

Unless there's a non-test condition that allows to have no
ranges in the DB (and that I'm missing), we should better fix the test
and not the code to match the test.

Thanks, Wolfgang

By, returning an empty data.frame instead, everything is fine. The user
only needs to check for "nrow(res) > 0" if they rely on the result.

Signed-off-by: Claus Hunsen <hunsen@xxxxxxxxxxxxxxxxx>
 codeface/R/query.r | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/codeface/R/query.r b/codeface/R/query.r
index 4911136..72c8504 100644
--- a/codeface/R/query.r
+++ b/codeface/R/query.r
@@ -137,9 +137,11 @@ get.cycles.con <- function(con, pid, boundaries=FALSE, 
     column.selection <- c("range.id", "date.start", "date.end", "cycle")
-  res <- res[, column.selection]
-  res$date.start <- ymd_hms(res$date.start, quiet=TRUE)
-  res$date.end <- ymd_hms(res$date.end, quiet=TRUE)
+  if (nrow(res) > 0) {
+    res <- res[, column.selection]
+    res$date.start <- ymd_hms(res$date.start, quiet=TRUE)
+    res$date.end <- ymd_hms(res$date.end, quiet=TRUE)
+  }

Attachment: signature.asc
Description: OpenPGP digital signature

Other related posts: