2011-03-29 37 views
5

tengo un método gettor Java que tiene el siguiente aspecto:de error que suprime Java Findbugs (EI_EXPOSE_REP)

import java.util.Date; 
//... 
public Date getSomeDate() { 
    return someDate; 
} 

y Findbugs informa que esto expone un objeto mutable: "puede exponer representación interna mediante la devolución de referencia a objeto mutable ". he cambiado el código para esto:

import java.util.Date; 
//... 
public Date getSomeDate() { 
    return new Date(someDate.getTime()); 
} 

pero Findbug todavía divulga la misma vulnerabilidad. ¿Qué más puedo hacer para suprimir/corregir este problema? Estoy ejecutando Findbugs 1.3.9 en el complemento Intellj 10 Findbugs.

Respuesta

11

Me acabo de dar cuenta de que Findbugs analiza código compilado (.class), no el código fuente. Después de reconstruir y volver a ejecutar Findbugs, el problema desapareció.

+0

He sido víctima de la misma situación :) - gasto 15 minutos preguntándome por qué mi cambio no solucionó el error, y luego dándome cuenta de que no reconstruí. –

+0

@Rob Hruska: Me tomó casi la misma cantidad de tiempo :-). – Ralph

-1
No we must to clone that object using below code : 

public Date getSomeDate() { 
    return new Date(someDate.getTime()).clone(); 
} 
+0

Usar 'new Date' * y *' clone' es demasiado xD – SebastianH

Cuestiones relacionadas