/** * Importa los archivos de una tarea solicitada y los guarda en forma volátil en la lista de * archivos. * * @throws ADMINExcepcion * @throws OIExcepcion * <li>Realiza los chequeos documentados por ejecutarInicio(). * <li>Cambia estados de los archivos: de "Ausente" a "Listo". * @deprecated Mejor utilizar importaArchivos, debido a que ahora se cuenta con un canal de * comunicacion dedicado a la transmisión de datos. */ protected void importaArchivosOld() throws OIExcepcion, ADMINGLOExcepcion { int medida = 0; byte[] contenidoI = null; PERSCoordinacion.Archivos archivo0, archivo00 = null; Iterator itr; itr = mpArchivos.values().iterator(); Map mpArchListos, mpArchPresentes, mpArchivosErroneos; mpArchListos = new TreeMap(String.CASE_INSENSITIVE_ORDER); mpArchPresentes = new TreeMap(String.CASE_INSENSITIVE_ORDER); mpArchivosErroneos = new TreeMap(String.CASE_INSENSITIVE_ORDER); tarea.loadArchivosListos(mpArchListos); tarea.loadArchivosPresentes(mpArchPresentes); try { /* * Solamente va a haber un archivo. */ if (itr.hasNext()) { archivo0 = (PERSCoordinacion.Archivos) itr.next(); archivo0.setTarea(this.tarea); if (mpArchListos.get(archivo0.getNombre()) != null) { // el archivo ya está listo, no se toca this.send( solicitante.getIdParcial() + tarea.getIdTarea() + SOLICITUD_SEPARADOR + SOLICITUD_NOENVIAR); } else { // el archivo no está listo if (mpArchPresentes.get(archivo0.getNombre()) != null) { // el archivo está sin descomprimir this.send( solicitante.getIdParcial() + tarea.getIdTarea() + SOLICITUD_SEPARADOR + SOLICITUD_NOENVIAR); } else { if (mpArchivosErroneos.get(archivo0.getNombre()) != null) { // TODO Archivo con error debe poderse enviar de nuevo. this.send( solicitante.getIdParcial() + tarea.getIdTarea() + SOLICITUD_SEPARADOR + SOLICITUD_NOENVIAR); } else { // el archivo no se encuentra y se necesita importar this.send( solicitante.getIdParcial() + tarea.getIdTarea() + SOLICITUD_SEPARADOR + SOLICITUD_ENVIAR); archivo0.setEstadoArchivo(ADMINAPPIArchivos.ARCHIVO_IMPORTANDO); /* * TODO Debe esperar el número de puerto para el enlace de datos * usado para el intercambio de archivos. */ archivo0.write(); try { contenidoI = new byte[10 * 1024]; // 10KB while ((medida = this.receiveb(contenidoI)) >= 0) { archivo0.setContenido(contenidoI, medida); archivo0.write(); System.err.println("\nSe han escrito " + medida + " bytes.\n"); } } catch (ADMINGLOExcepcion ex) { // no se pudo escribir archivo (¿?) // detiene la importación mpArchivosErroneos.put(archivo0.getNombre(), archivo0.getNombre()); archivo0.setContenido(null); archivo0.setEstadoArchivo(ADMINAPPIArchivos.ARCHIVO_IMPORTANDO); archivo0.write(); } } } } } this.info.getConex().dbCommit(); mpArchListos.clear(); mpArchListos = null; mpArchPresentes.clear(); mpArchPresentes = null; mpArchivosErroneos.clear(); mpArchivosErroneos = null; itr = null; archivo0 = null; archivo00 = null; this.closeComm(); } catch (OACTExcepcion ex) { // errores de envío y recepción, se asume que no se puede // establecer contacto. if (mpArchListos != null) { mpArchListos.clear(); mpArchListos = null; } if (mpArchPresentes != null) { mpArchPresentes.clear(); mpArchPresentes = null; } if (mpArchivosErroneos != null) { mpArchivosErroneos.clear(); mpArchivosErroneos = null; } itr = null; archivo0 = null; archivo00 = null; try { this.closeComm(); } catch (OACTExcepcion ex1) { } throw new ADMINGLOExcepcion("Error en importación de archivos.", ex); } catch (ACONExcArbitraria ex) { ex.printStackTrace(); } catch (ACONExcOmision ex) { ex.printStackTrace(); } catch (ACONExcTemporizacion ex) { } }