Skip to content

Instantly share code, notes, and snippets.

View jilen's full-sized avatar

jilen jilen

View GitHub Profile
Exception in thread "pool-2-thread-3" Exception in thread "pool-2-thread-4" java.lang.AbstractMethodError: scala/tools/nsc/typechecker/Typers.scala$tools$nsc$typechecker$Typers$_setter_$scala$tools$nsc$typechecker$Typers$$superConstructorCalls_$eq(Lscala/collection/mutable/AnyRefMap;)Vjava.lang.AbstractMethodError: scala/tools/nsc/typechecker/Typers.scala$tools$nsc$typechecker$Typers$_setter_$scala$tools$nsc$typechecker$Typers$$superConstructorCalls_$eq(Lscala/collection/mutable/AnyRefMap;)V
at scala.tools.nsc.typechecker.Typers.$init$(Typers.scala:55)
at scala.meta.internal.pc.MetalsGlobal$$anon$1.<init>(MetalsGlobal.scala:40)
at scala.meta.internal.pc.MetalsGlobal.analyzer$lzycompute(MetalsGlobal.scala:38)
at scala.meta.internal.pc.MetalsGlobal.analyzer(MetalsGlobal.scala:38)
at scala.meta.internal.pc.MetalsGlobal.analyzer(MetalsGlobal.scala:22)
at scala.tools.nsc.Global.<init>(Global.scala:988)
at scala.tools.nsc.interactive.Global.<init>(Global.scala:119)
at scala.meta.internal.pc.MetalsGlobal.<i
@jilen
jilen / SafeMap.scala
Created February 15, 2019 10:35
A thread safe map using cats-effect
import cats._
import cats.effect._
import cats.effect.concurrent._
import cats.syntax.all._
class SafeMap[F[_], K, V](ref: Ref[F, Map[K, V]])(implicit F: Functor[F]) {
def putIfAbsent(k: K, v: V): F[Option[V]] = ref.modify { m =>
m.get(k) match {
case None =>
(m + (k -> v), None)
java.lang.StackOverflowError
at scala.reflect.internal.tpe.TypeMaps$TypeMap.mapOver(TypeMaps.scala:114)
at scala.reflect.internal.tpe.TypeMaps$SubstMap.apply(TypeMaps.scala:790)
at scala.reflect.internal.tpe.TypeMaps$SubstMap.apply(TypeMaps.scala:728)
at scala.reflect.internal.tpe.TypeMaps$TypeMap.mapOver(TypeMaps.scala:123)
at scala.reflect.internal.tpe.TypeMaps$SubstMap.apply(TypeMaps.scala:790)
at scala.reflect.internal.tpe.TypeMaps$SubstMap.apply(TypeMaps.scala:728)
at scala.reflect.internal.tpe.TypeMaps$TypeMap.mapOver(TypeMaps.scala:123)
at scala.reflect.internal.tpe.TypeMaps$SubstMap.apply(TypeMaps.scala:790)
at scala.reflect.internal.tpe.TypeMaps$TypeMap.applyToSymbolInfo(TypeMaps.scala:232)
@jilen
jilen / buffer.scala
Last active December 10, 2018 09:45
Fs2 Stream buffer with timeout
package libs
import _root_.fs2._
import cats.effect._
import cats.effect.concurrent._
import cats.effect.syntax.all._
import cats.syntax.all._
import scala.concurrent.duration._
import scala.language.higherKinds
@jilen
jilen / fs2.scala
Last active October 23, 2018 04:37
implicit class StreamSyntax[F[_], A](s: Stream[F, A])(
implicit F: Concurrent[F]) {
def groupedPipe(
lastQRef: Ref[F, Queue[F, Option[Chunk[A]]]],
n: Int): Pipe[F, A, Stream[F, A]] = { in =>
val initQs =
Queue.unbounded[F, Option[Queue[F, Option[Chunk[A]]]]].flatMap { qq =>
Queue.bounded[F, Option[Chunk[A]]](1).flatMap { q =>
lastQRef.set(q) *> qq.enqueue1(Some(q)).as(qq -> q)
package io.getquill.context.async
import com.github.mauricio.async.db.Connection
import com.github.mauricio.async.db.{ QueryResult => DBQueryResult }
import com.github.mauricio.async.db.RowData
import com.github.mauricio.async.db.pool.PartitionedConnectionPool
import scala.concurrent.Await
import scala.concurrent.ExecutionContext
import scala.concurrent.Future
import scala.concurrent.duration.Duration
import cats.syntax.all._
import cats.effect._
import scala.concurrent.duration._
import scala.language.higherKinds
object Foo {
def setInterval[F[_]](duration: FiniteDuration)(
fa: F[Unit]
)(implicit F: ConcurrentEffect[F], T: Timer[F]): F[IO[Unit]] = {
def run: F[Unit] = {
@jilen
jilen / Queue.scala
Last active October 18, 2019 06:02
Functional queue, similar to fs2 Queue, without Stream
import cats.effect.concurrent._
import cats.effect._
import cats.syntax.all._
import scala.language.higherKinds
import scala.concurrent.duration._
trait Queue[F[_], A] {
def timedDequeue1(duration: FiniteDuration, timer: Timer[F]): F[Option[A]]
def enqueue1(a: A): F[Unit]
}
case class Alarm(id: Option[Long] = None,
weixinId: String,
`type`: Int,
active: Boolean)
01-25 12:12:54.199 29565 29565 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.replaceAll(java.lang.String, java.lang.String)' on a null object reference
01-25 12:12:54.199 29565 29565 E AndroidRuntime: at com.a.a.a.b.l(SourceFile:86)
01-25 12:12:54.199 29565 29565 E AndroidRuntime: at com.a.a.a.b.bJ(SourceFile:81)
01-25 12:12:54.199 29565 29565 E AndroidRuntime: at com.android.messaging.ui.conversationlist.ConversationListItemView.a(SourceFile:405)
01-25 12:12:54.199 29565 29565 E AndroidRuntime: at com.android.messaging.ui.conversationlist.g.a(SourceFile:32)
01-25 12:12:54.199 29565 29565 E AndroidRuntime: at com.android.messaging.ui.C.onBindViewHolder(SourceFile:201)
01-25 12:12:54.199 29565 29565 E AndroidRuntime: at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(SourceFile:5277)
01-25 12:12:54.199 29565 29565 E AndroidRuntime: at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(SourceFile:5310)
01-2