GovernIB / rolsac

Gestor de continguts administratius
4 stars 1 forks source link

NullPointerException controlador FitxaInfBackController.arbreSeccions() #336

Closed kitanibaladmin closed 8 years ago

kitanibaladmin commented 8 years ago

Numero: 580 Creació: 2014-11-12 09:34:37.000 El mètode org.ibit.rol.sac.persistence.ejb.SeccionFacadeEJB.listarHijosSeccion(Long) recupera una llista de seccions filles que inclou nulls. Això provoca un NullPointerException al recorre aquesta llista en FitxaInfBackController.

Aquest error també passa sobre la branca 1.3. És sol·licita consolidar els canvis entre les branques una vegada solucionat.

2014-11-11 17:45:48,425 DEBUG [org.springframework.web.servlet.DispatcherServlet] Could not complete request java.lang.NullPointerException at es.caib.rolsac.back2.controller.FitxaInfBackController.arbreSeccions(FitxaInfBackController.java:999) 581

kitanibaladmin commented 8 years ago

A la branca 1.3 ja es controla aquest error, per Rolsac 1.2 es resol al commit http://sourceforge.net/p/rolsac/code/1176

kitanibaladmin commented 8 years ago

La solució que proposes és més bé un parche. El tema es veure perquè Hibernate produeix nulls dins la col·lecció. Pel que he pogut esbrinar es deu a "buids" en el camp d'ordenació.

He provat la següent definició de Seccion.hbm.xml i pareix que funciona:

    <bag name="hijos" cascade="all" inverse="true" lazy="true" order-by="SEC_ORDEN" >
        <key column="SEC_CODSEC" foreign-key="RSC_SECSEC_FK" />
        <one-to-many class="org.ibit.rol.sac.model.Seccion"/>
    </bag>
kitanibaladmin commented 8 years ago

Bones Salvador he provat el que comentes amb tot l'arbre de seccions i funciona correctament.

Al link pareix que tens raó en suposar que te que veure amb l'index: http://stackoverflow.com/questions/1916350/list-vs-set-vs-bag-in-nhibernate

Commits: Rolsac 1.3: http://sourceforge.net/p/rolsac/code/1177 Rolsac 1.2: http://sourceforge.net/p/rolsac/code/1178

P.D.: Et coment que crec que he vist aquest problema en altres EJBs, es a dir, filtrat posteriori.