Snow Leopard, Java y Invalid memory access of location

Estoy de reenganche con mis proyectos tras venirme de vacaciones (la primera vez que descanso un mes entero, se hace duro). Además, me he actualizado la versión de OSX a Snow Leopard ...

Oh, sorpresa, las pruebas de uno de los proyectos fallan con un místico Invalid memory access for location.

Mi conclusión, después de buscar mucho en google, es que se trata de algún tipo de bug en la gestión de memoria que ocurre al combinar la nueva versión de Java en Snow Leopard con las clases compiladas por el compilador de JDT (yo uso Eclipse 3.5 todavía... quizá con el nuevo Eclipse 3.6 esto no pase...).

Yo lo he solucionado haciendo que -Xms y -Xmx coincidan y poniendo suficiente PermGenSpace (aunque eso es otra guerra), tanto para Eclipse como para el lanzador de Junit.

Lo "bueno" de todo esto es que desde línea de comandos todo funciona (ya que no se usa el compilador de JDT).

Otras solución que he leído (pero no probado) es ejecutar java en modo interpretado (bastante más lento).

2 comentarios

No soy experto en eclipse, pero igual puedes hacerte un ant script que use eclipse? (y que lanzaria javac y todo tal y como lo harias desde cli)

Si, eso es posible, pero un par de parámetros para la máquina virtual me parece mejor solución.

De hecho, es parecido a lo que hacía hasta encontrar la solución... lanzar las pruebas unitarias desde ant (recompilando todo). Esto es muy lento y el resultado de las pruebas (sobre todo los fallos) es menos manejable que la presentación que hace Eclipse.

Escribir un comentario

Cerrar