gvSIG bugs #529

Cast error

Added by Leticia Riestra about 12 years ago. Updated about 12 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent 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

Also available in: Atom PDF