gvSIG bugs #5002

Campo calculado que tiene como campo requerido a él mismo

Added by Óscar Martínez over 5 years ago. Updated over 5 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent time:-
Assignee:-
Category:-
Target version:2.5.0-2913 (rev. org.gvsig.desktop-2.0.241)
Severity:Minor Add-on version:
gvSIG version:2.5.0 Add-on build:
gvSIG build: Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

Un campo calculado llamado CAMPO1 entraría en bucle si tiene un campo calculado donde hasRequiredFields el mismo "CAMPO1*1"
En la preview no pasa.

Associated revisions

Revision 44154
Added by Joaquín del Cerro Murciano over 5 years ago

refs #5002. Añadidas comprovaciones para evitar expresiones recursivas en el interprete de expresiones y en el field manager para detectar que hayan campos calculados que se referencien directamente a si mismos.

History

#1 Updated by Joaquín del Cerro Murciano over 5 years ago

  • Status changed from New to Fixed

Uff, es mas complicado de lo que parece.
De momento si la expresion del campo calculado se referencia directamente a si misma, desde el adminitrador de campos, lo detecta y no deja hacerlo.
Ademas, el propio interprete detecta la recursion y por defecto solo deja 20 niveles de recursion, con lo que ya no deja frito a gvSIG cuando pasa esto. Va lento durante un poco pero se recupera.

Lo de que no pase en la preview, tiene mas tela. a ver:

  1. Entro en el administrador de campos
  2. Doy de alta un campo nuevo COSA1 y le digo que es un campo calculado cuya expression es COSA1, osea el mismo.
  3. Pido la preview.

Asi sin mas no falla, por que aun no forma parte el campo calculado de la feature.

Si en lugar de eso hago:

  1. Entro en el administrador de campos
  2. Doy de alta un campo nuevo COSA1 y le digo que es un campo calculado cuya expression es cualquier otro campos de la feature.
  3. Acepto los cambios.
  4. Vuelvo a entrar, y edito el campo COSA1.
  5. Le pongo como expresion COSA1.

Casca la preview.

Bueno, de momento la recursion simple, que un campo calculado se referencia a el mismo en la formula, se detecta.
Lo que no hace es detectar si un campo calculado referencia a otro y ese a su vez al anterior.Y en cualquier caso ya no deja tiesa a la aplicacion.

#2 Updated by Álvaro Anguix over 5 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF