lunedì 28 maggio 2012

File .class con costanti

Mi è capitato di dover intervenire in fretta e furia su una applicazione deployata  e cercare di fixare un bug senza rilasciare tutto il war ma soltanto i .class necessari.
In particolare in quest'ultimo caso si trattava di modificare una  query che era stata inserita in modo statico su una interfaccia come Stringa.
Ho quindi inviato soltanto il .class con l'interfaccia ricompilata ma ovviamente non ha funzionato.
Questo perchè a compile time Java esplode i valori delle costanti direttamente dentro i .class creati, quindi tutte le classi che utilizzavano quella query continuavano tranquillamente a leggersi il vecchio valore, cablato in fase di compilazione al loro interno.
Beh ammetto di essere stato poco accorto, comunque questa è una riprova di quanto sia più pulito e corretto inserire i valori costanti mutabili spesso nel corso di  vita di una applicazione (le query) in file xml esterni piuttosto che dentro costanti scolpite nel codice.

Nessun commento:

Posta un commento