Java comportamiento de operación de multiplicación

Escribí un método para convertir un número dado de días a milisegundos:

private long expireTimeInMilliseconds;
...
public void setExpireTimeInDays(int expireTimeInDays)
{
   expireTimeInMilliseconds = expireTimeInDays * 24 * 60 * 60 * 1000;
}

Tuve dificultades para descubrir qué hice mal. Ahora mi pregunta: ¿Es ese error tan obvio?

El método corregido:

private long expireTimeInMilliseconds;
...
public void setExpireTimeInDays(int expireTimeInDays)
{
   expireTimeInMilliseconds = ((long) expireTimeInDays) * 24 * 60 * 60 * 1000;
}

Si no convierto el entero en mucho antes de calcular, obtengo un resultado completamente incorrecto.

Respuestas a la pregunta(10)

Su respuesta a la pregunta