package gr.grnet.aquarium.processor.actor
-import gr.grnet.aquarium.util.{Lifecycle, Loggable}
+import gr.grnet.aquarium.util.{Lifecycle, Loggable, makeString}
import akka.actor._
import akka.actor.Actor._
case failed @ Failed(e, m) ⇒
persistUnparsed(payload)
- logger.error("Could not parse payload {}", new String(payload, "UTF-8"))
+ logger.error("Could not parse payload {}", makeString(payload))
throw e
case NoVal ⇒
persistUnparsed(payload)
- logger.error("Could not parse payload {}", new String(payload, "UTF-8"))
- throw new AquariumException("Unexpected NoVal")
+ val errMsg = "Unexpected NoVal. Could not parse payload %s".format(makeString(payload))
+ logger.error(errMsg)
+ throw new AquariumException(errMsg)
}
inFlightEvents.put(deliveryTag, event)
package gr.grnet.aquarium
import com.ckkloverdos.maybe.{Failed, MaybeOption, Just, NoVal, Maybe}
+import java.nio.charset.Charset
/**
* @author Christos KK Loverdos <loverdos@gmail.com>.
*/
package object util {
+ final val UTF_8_Charset = Charset.forName("UTF-8")
+
def tryOption[A](f: => A): Option[A] = {
try Some(f)
catch {
def justForSure[A](maybe: Maybe[A]): Just[A] = {
maybe.asInstanceOf[Just[A]]
}
+
+ def makeString(bytes: Array[Byte]): String = {
+ new String(bytes, UTF_8_Charset)
+ }
}
\ No newline at end of file