Отсутствие классов при длительном запуске приложения
У меня есть забавная проблема - если мое приложение работает долго (& gt; 20h), то иногда я получаю ошибку NoClassDefFound - похоже, JVM решила, что класс все равно не будет использоваться, и GCd.
Чтобы быть более конкретным, вот пример случая:
object ErrorHandler extends PartialFunction[Throwable,Unit] {
def isDefinedAt(t: Throwable) = true
def apply(e: Throwable) =e match {
// ... handle errors
}
}
// somewhere else in the code...
try {
// ... long running code, can take more than 20 hours to complete
} catch (ErrorHandler)
И я получаю следующее исключение:
Exception in thread "main" java.lang.NoClassDefFoundError: org/rogach/avalanche/ErrorHandler$
Если этот блок try / catch выполняется в течение меньшего количества времени, все работает, как ожидалось.
Если кому-то интересно, вот эта кодовая база:лавина
Я должен отметить, что я видел эту и подобные проблемы только наCent OS 5
машины с использованием JRE 6u26 и Scala 2.9.1 / 2.9.2.
Что может быть причиной этой проблемы?