Tengo un problema raro: si mi aplicación se ejecuta durante un tiempo prolongado (> 20 h), entonces a veces obtengo el error NoClassDefFound, parece que JVM decidió que la clase no iba a ser utilizado de todos modos y GCD.Faltan clases si la aplicación se ejecuta durante mucho tiempo
a ser un poco más específico, aquí es un caso de ejemplo:
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)
y me da la siguiente excepción:
Exception in thread "main" java.lang.NoClassDefFoundError: org/rogach/avalanche/ErrorHandler$
Si ese try/carreras de bloque de captura de pequeñas cantidades de tiempo, todo funciona como se espera
Si alguien está interesado, aquí está el código base de que se trate: Avalanche
necesito señalar que vi este problema y otros similares sólo en Cent OS 5
máquinas, utilizando 6u26 JRE y Scala 2.9.1/2.9.2.
¿Cuál podría ser la causa de este problema?
Intenta ejecutarlo con '-XX: -TraceClassUnloading'. ¿Cuáles son los resultados? http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html – ron
@ron - Lo estoy intentando en este momento, pero llevará algo de tiempo :) Y el archivo de registro es bastante largo y verboso, ¿para qué palabras debo grep para obtener la salida de rastreo? – Rogach
no se puede adivinar con los ojos vendados, pero el nombre de la clase bajo sospecha es un candidato seguro :) – ron