From 51b68ebbfe05a19d693a1dffc523472f3656d588 Mon Sep 17 00:00:00 2001 From: karan-batavia Date: Mon, 25 Nov 2024 12:33:58 +0530 Subject: [PATCH] use scala best practices --- .../utils/DependencyDownloader.scala | 85 ++++++++++--------- 1 file changed, 44 insertions(+), 41 deletions(-) diff --git a/joern-cli/frontends/csharpsrc2cpg/src/main/scala/io/joern/csharpsrc2cpg/utils/DependencyDownloader.scala b/joern-cli/frontends/csharpsrc2cpg/src/main/scala/io/joern/csharpsrc2cpg/utils/DependencyDownloader.scala index c3189f0cae0e..580da7a5beab 100644 --- a/joern-cli/frontends/csharpsrc2cpg/src/main/scala/io/joern/csharpsrc2cpg/utils/DependencyDownloader.scala +++ b/joern-cli/frontends/csharpsrc2cpg/src/main/scala/io/joern/csharpsrc2cpg/utils/DependencyDownloader.scala @@ -122,49 +122,52 @@ class DependencyDownloader( */ private def downloadPackage(targetDir: File, dependency: Dependency, url: Option[URL]): Unit = { var connection: Option[HttpURLConnection] = None - if (url.isEmpty) return - try { - connection = Option(url.get.openConnection()).collect { case x: HttpURLConnection => x } - // allow both GZip and Deflate (ZLib) encodings - connection.foreach(_.setRequestProperty("Accept-Encoding", "gzip, deflate")) - connection match { - case Some(conn: HttpURLConnection) if conn.getResponseCode == HttpURLConnection.HTTP_OK => - val ext = if url.toString.contains("/package/") then "nupkg" else "snupkg" - val fileName = targetDir / s"${dependency.name}.$ext" - - val inputStream = Option(conn.getContentEncoding) match { - case Some(encoding) if encoding.equalsIgnoreCase("gzip") => GZIPInputStream(conn.getInputStream) - case Some(encoding) if encoding.equalsIgnoreCase("deflate") => InflaterInputStream(conn.getInputStream) - case _ => conn.getInputStream + url.foreach { validUrl => + { + try { + connection = Option(validUrl.openConnection()).collect { case x: HttpURLConnection => x } + // allow both GZip and Deflate (ZLib) encodings + connection.foreach(_.setRequestProperty("Accept-Encoding", "gzip, deflate")) + connection match { + case Some(conn: HttpURLConnection) if conn.getResponseCode == HttpURLConnection.HTTP_OK => + val ext = if url.toString.contains("/package/") then "nupkg" else "snupkg" + val fileName = targetDir / s"${dependency.name}.$ext" + + val inputStream = Option(conn.getContentEncoding) match { + case Some(encoding) if encoding.equalsIgnoreCase("gzip") => GZIPInputStream(conn.getInputStream) + case Some(encoding) if encoding.equalsIgnoreCase("deflate") => InflaterInputStream(conn.getInputStream) + case _ => conn.getInputStream + } + + Try { + Using.resources(inputStream, new FileOutputStream(fileName.pathAsString)) { (is, fos) => + val buffer = new Array[Byte](4096) + Iterator + .continually(is.read(buffer)) + .takeWhile(_ != -1) + .foreach(bytesRead => fos.write(buffer, 0, bytesRead)) + } + } match { + case Failure(exception) => + logger.error( + s"Exception occurred while downloading $fileName (${dependency.name}:${dependency.version})", + exception + ) + case Success(_) => + logger.info(s"Successfully downloaded dependency ${dependency.name}:${dependency.version}") + } + case Some(conn: HttpURLConnection) => + logger.error(s"Connection to $url responded with non-200 code ${conn.getResponseCode}") + case _ => + logger.error(s"Unknown URL connection made, aborting") } - - Try { - Using.resources(inputStream, new FileOutputStream(fileName.pathAsString)) { (is, fos) => - val buffer = new Array[Byte](4096) - Iterator - .continually(is.read(buffer)) - .takeWhile(_ != -1) - .foreach(bytesRead => fos.write(buffer, 0, bytesRead)) - } - } match { - case Failure(exception) => - logger.error( - s"Exception occurred while downloading $fileName (${dependency.name}:${dependency.version})", - exception - ) - case Success(_) => - logger.info(s"Successfully downloaded dependency ${dependency.name}:${dependency.version}") - } - case Some(conn: HttpURLConnection) => - logger.error(s"Connection to $url responded with non-200 code ${conn.getResponseCode}") - case _ => - logger.error(s"Unknown URL connection made, aborting") + } catch { + case exception: Throwable => + logger.error(s"Unable to download dependency ${dependency.name}:${dependency.version}", exception) + } finally { + connection.foreach(_.disconnect()) + } } - } catch { - case exception: Throwable => - logger.error(s"Unable to download dependency ${dependency.name}:${dependency.version}", exception) - } finally { - connection.foreach(_.disconnect()) } }