2009-06-16 11 views
6

estoy recibiendo el avisoAdvertencia: modificada en el futuro

Warning: sendmailpm.jsp modified in the future. 

¿Qué significa esto?

+6

Que el LHC está en funcionamiento, y estamos a punto de morir :( – cwap

+0

.. perdón por el juego de palabras: P – cwap

+3

Mejor. Error. Alguna vez. –

Respuesta

33

No tiene permitido modificar nada en el pasado si hacerlo puede cambiar el futuro. Puede causar una paradoja temporal, que podría corromper el flujo de tiempo y hacer que toda nuestra realidad deje de existir.

No modifique ese archivo.

+25

+1 gracioso. -1 inútil. –

+3

Estoy teniendo el mismo error. De verdad. Esta respuesta no sirve para nada ... Por cierto, si esto les parece divertido, tendrán un día de campo con la clase [Duration] (http://docs.oracle.com/javase/8/docs/api/java/time/Duration.html) de Java 8. [negativo] (http://docs.oracle.com/javase/8/docs/api/java/time/Duration.html#isNegative--)! Entonces publicaré th es un comentario en menos 5 segundos. –

3

Alguien probablemente modificó el archivo, luego cambió la hora en el servidor. Intente verificar a qué hora está configurada su caja y asegúrese de que sea correcta. Si es así, probablemente puedas ignorar esa advertencia sin ningún efecto secundario.

15

Se compilan los archivos JSP. Muchos servidores también le permiten reemplazar los archivos en un servidor en ejecución. A continuación, compara la marca de tiempo de la fuente compilada y la marca de tiempo del archivo jsp para determinar si necesita volver a compilar.

Si el archivo está fechado en el futuro, el archivo jsp siempre será más nuevo que la clase. Esto te da una advertencia.

Compruebe la marca de tiempo en el archivo. Tal vez alguien lo creó en una computadora con un reloj incorrecto, y ahora parece ser "creado en el futuro". O tal vez el servidor tiene la fecha incorrecta (compruebe la configuración de la zona horaria).

¿Hay servidores de archivos remotos involucrados? La deriva del reloj entre un servidor web y un servidor de archivos también puede causar este error.

Para diagnosticar esto más, tendrías que darnos algunas pistas: ¿qué servidor jsp, qué sistema operativo, qué sistema de archivos?

2

Los JSP se compilan sobre la marcha a servlets. El contenedor de servlets compara las fechas de "última modificación" de ambos para ver si el JSP se ha cambiado y el servlet necesita actualizarse. Una fecha de "última modificación" en el futuro indica que algo está mal con el reloj del sistema, que es relevante porque podría interrumpir el mecanismo mencionado anteriormente, lo que lleva a los servlets que no se actualizan.

6

Durante una compilación Ant, esta advertencia se puede mostrar durante una tarea.

[copy] Warning: foo\bar.txt modified in the future. 

de hormiga <copy> tarea por defecto no copiar archivos si los archivos de destino son más recientes que la fuente. Esto ahorra mucho tiempo y E/S de disco. Sin embargo, puede anular este comportamiento con la opción <copy overwrite="true">. Esto le dice a Ant que sabes lo que estás haciendo; sobrescribir los archivos de destino independientemente de su fecha de modificación. Esto también suprimirá la advertencia.

+1

Problemas como este con Ant pueden deberse a problemas con la precisión de la indicación de fecha y hora del sistema de archivos FAT/FAT32, en Windows usa NTFS, ver detalles en mi respuesta. – FelixD

1

Esto se debe, La hora del sistema no es actual en la que está ejecutando el fichero de construcción

6

Si el código está residiendo en un archivo/partición FAT o FAT32 postal, esto puede ser causado por la falta de precisión en el sello de tiempo del sistema de archivos FAT/ZIP, que es de 2 segundos (afaik). Esto puede hacer que la salida de compilación/herramienta de compilación se guarde con un tiempo levemente en el futuro, de modo que cuando se ejecute el próximo paso de compilación/despliegue (puede ser interno a un contenedor JSP), el archivo aparecerá desde el futuro y la advertencia es producida Intente utilizar un sistema de archivos diferente, p. NTFS en cajas DOS/Windows.

Tuve el mismo mensaje de advertencia de Apache Ant al intentar hacer una compilación Java en una partición FAT32 TrueCrypt.Después de descartar otras causas (diferencia de zona horaria, reloj apagado, etc.) finalmente encontré una pista sobre esto, cambié a una partición NTFS TrueCrypt y la advertencia desapareció.

+0

Gracias, me doy cuenta de que este es un mensaje de error extraño y la mayoría de la gente no pudo ayudarse a sí misma, pero esto es lo que necesitaba. – cgp

+0

De nada y gracias por su comentario @altCognito :) – FelixD

+1

No olvide que los archivos ZIP usan internamente la misma precisión que FAT, que es de donde también puede venir la advertencia. –

0

Tengo el mismo problema. La solución fue: cambié la fecha y la hora en la máquina de compilación, de modo que estaba sincronizada con la fecha y la hora en la máquina en la que se copiaron los archivos.

0

Si tiene un archivo jar que está tratando de instalar en el servidor remoto. Puede suceder que la marca de tiempo del servidor remoto no coincida con su zona horaria. Si su zona horaria tiene un par de horas de adelanto que el servidor remoto, es posible que tenga este problema. También probé un truco más. Cuando crea un archivo JAR, luego va a la hora del sistema y establece una fecha de hace unos meses e intenta instalar el JAR, obtiene este error.

2

Compruebe si la hora del sistema es correcta o no. Si no lo sincronizas con la hora estándar para tu zona. Luego ejecuta tu archivo de compilación.

0

Si el archivo java que está compilando tiene una marca de tiempo que está más allá de la hora actual del sistema en el que está compilando ... verá esta advertencia. Modifiqué el archivo en una máquina y lo puse en otra, intenté compilar y me encontré con este problema.

0

Tuve este error también, pero después de leer algunas respuestas más arriba me di cuenta de que esto se debía al cambio que había hecho en la computadora algunos días antes debido a la prueba de una funcionalidad que requiere manipulación de fecha.

Esto es lo que sucedió:

1 - Para realizar la prueba unitaria de una nueva funcionalidad implementada tuve que fijar la fecha del ordenador a 4 días en el futuro.

2 - Cuando realicé la prueba, el compilador compiló la clase automáticamente, como se esperaba.

3 - Por lo tanto, cuando estaba intentando reconstruir el proyecto, el IDE detectó que el archivo se había creado (irónicamente) en el futuro. (LoL: por eso me encanta Java, incluso puedes codificar en el futuro).

So +1 @ jmanning2k.

Espero que pueda ayudar a alguien a enfrentar este problema.