Domanda

Recentemente ho riscontrato molti bug perché SimpleDateFormat non è thread-safe.

Il motivo per cui ho scoperto è che non era sincronizzato correttamente o che non venivano create nuove istanze per thread separati.

Quindi ho pensato di creare un PMD / stile di controllo in modo che in futuro se qualcuno utilizza SimpleDateFormat riceverà una sorta di avvertimento che non è thread-safe.

Sono nuovo in Checkstyle, qualcuno può descrivermi come posso ottenere questo risultato?

È stato utile?

Soluzione

FindBugs può generare avvisi quando un DateFormat è definito come un campo statico.Tuttavia, rilevare l'utilizzo non thread-safe di un DateFormat è molto difficile, perché sarebbe necessario comprendere come viene utilizzato un oggetto.Non credo che scrivere una regola CheckStyle per questo sia possibile.Almeno non senza rilevare un sacco di falsi positivi.

Forse dovresti semplicemente vietare l'uso diretto di DateFormat e racchiuderlo in una classe personalizzata, o imporre l'uso di Apache commons FastDateFormat, che è thread-safe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top