gvSIG bugs #529
Cast error
Status: | Closed | % Done: | 0% | |
---|---|---|---|---|
Priority: | Normal | Spent time: | - | |
Assignee: | - | |||
Category: | - | |||
Target version: | - | |||
Severity: | Add-on version: | |||
gvSIG version: | 2.0.0 | Add-on build: | ||
gvSIG build: | 2045 | Add-on resolve version: | ||
Operative System: | Add-on resolve build: | |||
Keywords: | Proyecto: | |||
Has patch: | No | Hito: | ||
Add-on name: | Unknown |
Description
In package org.gvsig.fmap.dal.store.dxf.DXFStoreProvider I think there is a little cast error because is written "File file = (File) resource.get();" and it would be "_File file = new File((String) resource.get());_"
The method is performChanges and the line number is 331
History
#1 Updated by Joaquín del Cerro Murciano about 12 years ago
- Status changed from New to Awaiting response
Hola,
hasta donde he podido seguir parece que el cast a File es correcto.
File file = (File) resource.get();
El "resource" se crea en el contronstructor y aparentemente
se crea del tipo FileResource.
resource = this.createResource( FileResource.NAME, new Object[] { file.getAbsolutePath() } );
No se si hay algun caso que en lugar de ser de tipo FileResource
sea de otro que provoque el error. Si puedes describir los pasos
que sigues para que podamos reproducir el error te lo agradeceria.
#2 Updated by Leticia Riestra about 12 years ago
Hola
El chico que detectó este fallo ya no trabaja aquí y no tengo manera de descubrir como llegó a esta conclusión
Seguramente tenéis razón y no es necesario hacerlo porque yo he probado a quitarlo y funciona sin problemas
Así si queréis, olvidaros de este error. Si en algún momento falla ya sabéis porqué es :D
Saludos y perdonad
#3 Updated by Joaquín del Cerro Murciano about 12 years ago
- Status changed from Awaiting response to Closed
Es posible que te suene lo del casting a String por que hasta hace un año aproximadamente el get del FileResource devolvia un String.
Hasta entonces cada proveedor hacia lo que podia con los parametros y no estaba unificado el tratamiento de un parametro que fuese un fichero. Unos lo trataban como un String y otros como un File, y el FileResource trabajaba como String.
Hara mas o menos un año unificamos que todos los parametros de los proveedores que fuesen un fichero sean de tipo File, sustituyendo los String por File en donde procedia, y como resultado de ello, el get del FileResource paso a devolver un File.
Si has visto codigo anterior a mayo del 2011 es facil que vieses que se hacia casting a String, siendo la construccion normal en el DXFStoreProvider para acceder al fihero esta:
new File((String) resource.get())
Cierro el ticket, y si obserbas que hay alguna circunstancia que provoca un problema con ese cast por que no es un File, ya abres un ticket nuevo comentando como reproducirlo.
Un saludo
Joaquin