private def withStreams[A]()

in app/services/ZipReader.scala [23:44]


  private def withStreams[A](func:(ZipInputStream)=>Try[A]) = {
    Try {
      val byteStream = new ByteArrayInputStream(bytes)
      val zipStream = new ZipInputStream(byteStream)
      (byteStream, zipStream)
    } match {
      case Success((byteStream, zipStream))=>
        val finalResult = func(zipStream)
        (Try { zipStream.close() }, Try { byteStream.close() }) match {
          case (Failure(zipErr), _)=>
            logger.error(s"Could not close zip stream: ${zipErr.getMessage}", zipErr)
            finalResult
          case (_, Failure(byteErr))=>
            logger.error(s"Could not close byte stream: ${byteErr.getMessage}", byteErr)
            finalResult
          case (Success(_), Success(_))=>
            finalResult
        }
      case Failure(err)=>
        Failure(err)
    }
  }