Fixing the Scala error: java.lang.NoSuchMethodError: scala.Product.$init$

As a note to self, when you see a Scala error message that looks like this:

java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V

it probably means that you have a mismatch in the Scala versions you’re using in your project. For instance, I just tried to use a library I compiled with Scala 2.12 with Spark, which was compiled with Scala 2.11, and I got that error message. In this case I was able to resolve the problem by recompiling my library with Scala 2.11.

Scala 2.10 and Akka 2.0 and 2.1 import problems (Await, Future, Duration)

As a quick note, import statements that used to be like this with Akka 2.0:

import akka.dispatch.Await
import akka.dispatch.Future
import akka.util.duration._

are now like this with Akka 2.1 and Scala 2.10.x:

import scala.concurrent.{Await, Future}
import scala.concurrent.duration._

The Duration object in Akka 2.0 has also been moved, and it’s now included with the scala.concurrent.duration._ import statement.

Tips about an OpenSSO getting started tutorial

This OpenSSO tutorial is probably the best "getting started with OpenSSO" tutorial around, but I'll add one caveat to it: Until you know what you're doing, just follow this tutorial to the letter, and I mean to the letter. Specifically, when they say "use Glassfish", you want to use Glassfish, and not something else, like Tomcat.

Mon, July 26, 2004 (New LaTeX tips)

I've created several new LaTeX tips in the last 12 hours and posted them in my LaTeX blog area. This includes tips/tutorials/examples on how to create your own commands; how to use the "html" package; and how to use the "versions" package.

LaTeX versions - conditionally control your output

The "versions" package (versions.sty) can be very useful in conditionally controlling your output in LaTeX PDF and HTML documents.

LaTeX conditional output

Here's a very simple example of how you can use this package to conditionally control what is output by the LaTeX processor: