From 2f4cdbce252a934de59c5fc9a3cc7d0a499c6db2 Mon Sep 17 00:00:00 2001 From: chentao Date: Tue, 16 Feb 2016 10:05:43 +0800 Subject: [PATCH 1/2] Replace Future.onFailure with Future.onComplete --- src/main/scala/com/github/shadowsocks/package.scala | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/scala/com/github/shadowsocks/package.scala b/src/main/scala/com/github/shadowsocks/package.scala index a6db148d..0a55b2ef 100644 --- a/src/main/scala/com/github/shadowsocks/package.scala +++ b/src/main/scala/com/github/shadowsocks/package.scala @@ -2,12 +2,16 @@ package com.github import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.Future +import scala.util.{Failure, Try} /** * @author Mygod */ package object shadowsocks { - def ThrowableFuture[T](f: => T) = Future(f) onFailure { - case e: Throwable => e.printStackTrace() + + val handleFailure: PartialFunction[Try[_], Unit] = { + case Failure(e) => e.printStackTrace() } -} + + def ThrowableFuture[T](f: => T) = Future(f) onComplete handleFailure +} \ No newline at end of file From b76d089fb2e70b8035a58fc03d81778dfda10609 Mon Sep 17 00:00:00 2001 From: chentao Date: Wed, 17 Feb 2016 11:30:58 +0800 Subject: [PATCH 2/2] Avoid MatchError --- src/main/scala/com/github/shadowsocks/package.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/scala/com/github/shadowsocks/package.scala b/src/main/scala/com/github/shadowsocks/package.scala index 0a55b2ef..d0b75ee3 100644 --- a/src/main/scala/com/github/shadowsocks/package.scala +++ b/src/main/scala/com/github/shadowsocks/package.scala @@ -2,7 +2,7 @@ package com.github import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.Future -import scala.util.{Failure, Try} +import scala.util.{Success, Failure, Try} /** * @author Mygod @@ -10,6 +10,7 @@ import scala.util.{Failure, Try} package object shadowsocks { val handleFailure: PartialFunction[Try[_], Unit] = { + case Success(_) => case Failure(e) => e.printStackTrace() }