From d0f915ba26a921525737269aa7d8cdd0c6b4e5b0 Mon Sep 17 00:00:00 2001 From: Gisli Magnusson Date: Fri, 13 Jun 2025 16:03:21 +0000 Subject: [PATCH 1/3] fix(ENGKNOW-2382): Don't throw exception if driver class is not found. --- .../java/org/gorpipe/gor/model/DbConnectionCache.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/model/src/main/java/org/gorpipe/gor/model/DbConnectionCache.java b/model/src/main/java/org/gorpipe/gor/model/DbConnectionCache.java index 0727b0aa..7d9e2900 100644 --- a/model/src/main/java/org/gorpipe/gor/model/DbConnectionCache.java +++ b/model/src/main/java/org/gorpipe/gor/model/DbConnectionCache.java @@ -49,7 +49,7 @@ public DbConnection lookup(String source) { * @throws IOException */ @SuppressWarnings("WeakerAccess") // Used from gor-services - public void initializeDbSources(String credpath) throws ClassNotFoundException, IOException { + public void initializeDbSources(String credpath) throws IOException { clearDbSources(); if (credpath != null && credpath.trim().length() > 0) { final Path path = Paths.get(credpath); @@ -62,7 +62,12 @@ public void initializeDbSources(String credpath) throws ClassNotFoundException, List partsList = parseLinesForDbSourceInstallation(credpath, lines); for (String[] parts : partsList) { - installDbSourceFromParts(parts); + try { + installDbSourceFromParts(parts); + } catch (ClassNotFoundException e) { + log.error("Failed to load driver class {} for db source {}. Please ensure the driver is in the classpath.", + parts[1], parts[0], e); + } } } else { log.info("No db credential path specified"); From 482ef64370e2d8d90103893ad424ef14f9dab28a Mon Sep 17 00:00:00 2001 From: Gisli Magnusson Date: Mon, 16 Jun 2025 01:08:05 +0000 Subject: [PATCH 2/3] fix(ENGKNOW-2382): Write returns full header. --- gortools/src/main/scala/gorsat/Commands/Write.scala | 4 +--- gortools/src/test/java/gorsat/UTestGorWrite.java | 2 +- gortools/src/test/java/gorsat/monitors/StatsMonitorTest.java | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/gortools/src/main/scala/gorsat/Commands/Write.scala b/gortools/src/main/scala/gorsat/Commands/Write.scala index 205d47bb..7cd52383 100644 --- a/gortools/src/main/scala/gorsat/Commands/Write.scala +++ b/gortools/src/main/scala/gorsat/Commands/Write.scala @@ -118,8 +118,6 @@ class Write extends CommandInfo("WRITE", throw new GorParsingException("Option -noheader (skip header) is not valid with gor/gorz/nor/norz") } - val fixedHeader = forcedInputHeader.split("\t").slice(0, 2).mkString("\t") - CommandParsingResult( ForkWrite(forkCol, fileName, @@ -146,7 +144,7 @@ class Write extends CommandInfo("WRITE", maxseg = maxseg ) ), - fixedHeader + forcedInputHeader ) } } diff --git a/gortools/src/test/java/gorsat/UTestGorWrite.java b/gortools/src/test/java/gorsat/UTestGorWrite.java index db6551cc..c35629e8 100644 --- a/gortools/src/test/java/gorsat/UTestGorWrite.java +++ b/gortools/src/test/java/gorsat/UTestGorWrite.java @@ -198,7 +198,7 @@ public void testGorWriteColumnNumber() { tmpfile.toFile().deleteOnExit(); String query = "gor ../tests/data/gor/genes.gorz | write -m " + tmpfile.toAbsolutePath().normalize(); String headerRes = TestUtils.runGorPipe(query); - Assert.assertEquals("", "Chrom\tgene_start\n", headerRes); + Assert.assertEquals("", "Chrom\tgene_start\tgene_end\tGene_Symbol\n", headerRes); } @Test diff --git a/gortools/src/test/java/gorsat/monitors/StatsMonitorTest.java b/gortools/src/test/java/gorsat/monitors/StatsMonitorTest.java index 1eb19d9f..063a8396 100644 --- a/gortools/src/test/java/gorsat/monitors/StatsMonitorTest.java +++ b/gortools/src/test/java/gorsat/monitors/StatsMonitorTest.java @@ -71,7 +71,7 @@ public void testRowCountAndBytesCountForSelfWriting() { } } - assertEquals("", statsMonitor.getHeader()); + assertEquals("chrom\tpos\ta", statsMonitor.getHeader()); assertEquals(0, statsMonitor.rowCount()); assertEquals(0, statsMonitor.bytesCount()); } From f4457e8e874acbe66c78c88106d57ea000c2e7ca Mon Sep 17 00:00:00 2001 From: Gisli Magnusson Date: Mon, 16 Jun 2025 01:43:30 +0000 Subject: [PATCH 3/3] fix(ENGKNOW-2382): Write returns full header. --- gortools/src/main/scala/gorsat/Analysis/ForkWrite.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gortools/src/main/scala/gorsat/Analysis/ForkWrite.scala b/gortools/src/main/scala/gorsat/Analysis/ForkWrite.scala index 5edb9cb5..e3d7ebd4 100644 --- a/gortools/src/main/scala/gorsat/Analysis/ForkWrite.scala +++ b/gortools/src/main/scala/gorsat/Analysis/ForkWrite.scala @@ -149,6 +149,8 @@ case class ForkWrite(forkCol: Int, header = headerBuilder.toString } + override def isTypeInformationMaintained: Boolean = true + /** * Creates OutFile with given name * if the path is a directory save a file with generated md5 sum as name under directory