Liberar recursos de un objeto

Hola,
Tengo una aplicación java en la que se crean instancias "com.archimed.dicom.DDict" (diccionario de datos dicom) pero me falla y me da el error al ejecutar más de una vez el siguiente código:
com.archimed.dicom.DDictEntry entrada1 = new com.archimed.dicom.
DDictEntry(0010, 4001, com.archimed.dicom.DDict.tST,
"Resumen enfermedad", "1");
diccionario.addEntry(entrada1);
El error dice:
(8,4001): Entry already present in DDict
Parece que hubiera que liberar recursos del objeto diccionario para poder crear objetos de esta clase recurrentemente. Había pensado en añadir un fizalizador a la clase desde donde se crea esta instancia, pero no se como hacerlo.
¿Hay otras alternativas?
Espero haberme explicado bien.
Un saludo,
M.Angel

1 Respuesta

Respuesta
1
Miguel Angel,
Disculpa el retraso, pero he estado de vacaciones y se me olvidó poner que no estaba disponible.
Respecto a tu pregunta,
El error no creo que ocurra al crear la entrada, sino al añadirla al diccionario que parece no soportar entradas duplicadas, luego si vas a añadir un objeto DDictEntry debes prever la posibilidad de que ya exista.
La forma de hacerlo depende de los métodos de la clase DDict.
Seguramente este error te llega en forma de excepción, con lo cual puedes protegerlo con un
com.archimed.dicom.DDictEntry entrada1 = new com.archimed.dicom.
DDictEntry(0010, 4001, com.archimed.dicom.DDict.tST,
"Resumen enfermedad", "1");
try{
diccionario.addEntry(entrada1);
}catch(TuException te){ System.out.println(te.getMessage());
}
De esta forma cuando ocurra el error se muestra el mensaje, pero la ejecución prosigue.
O bien, si la clase DDict tiene un metodo similar contains(), podrías preguntar por:
com.archimed.dicom.DDictEntry entrada1 = new com.archimed.dicom.
DDictEntry(0010, 4001, com.archimed.dicom.DDict.tST,
"Resumen enfermedad", "1");
if(!diccionario.contains(entrada1)){
diccionario.addEntry(entrada1);
}
Como no conozco ni la clase DDict ni lo que realmente quieres hacer, no puedo ayudarte más. Es probable que simplemente incrementando el índice 4001, 4002, 4003.. ya puedas añadir la entrada, pero no sé que significa ese parámetro, ni para que quieres llenar un diccionario de entradas iguales, si es eso lo que pretendes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas