GReaper / MadridLive

Madrid Live repository
0 stars 0 forks source link

Traza de los errores del nuevo fichero de plantillas #143

Closed GReaper closed 10 years ago

GReaper commented 10 years ago
java.lang.NullPointerException
at ucm.ssii.turismo.recomendador.RecomendadorPlantillasAbstractas.recomendar(Unknown Source)
at ucm.ssii.turismo.recomendador.RecomendadorPlantillasConcretas.recomendar(Unknown Source)
at RecomendadorServlet.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

Nota: el log4j está integrado pero por el momento no loggea nada. No convendría perder demasiado tiempo con él (ya perdí más de 2 horas).

GReaper commented 10 years ago

Como se puede ver falla en la llamada a recomendar, no falla en la carga del fichero de plantillas. Por ello, debemos suponer que este fichero está bien y empezar a centrarnos en el método recomendar completo.

La otra opción es que la base de casos se genere mal en el conector y se esté cargando algo mal que se arrastre posteriormente. Esta base de casos se carga en RecomendadorPlantillasAbstractas.configure (que se llama en la constructora).

GReaper commented 10 years ago

Para @rMarinf https://www.assembla.com/code/sistemas-informaticos/subversion/nodes/1099/Proyecto/src/ucm/ssii/turismo/recomendador/actividad/RecomendadorCines.java , función cogerTipoCine. ¿No faltan tipos? Ìdem en el recomendador.

Esto no es la causa del fallo (o no deberia).

GReaper commented 10 years ago

Importante He hecho que el recomendador de plantillas abstractas use el recomendador de paseos en vez de cines para los cines. Es decir, se llama al recom. concreto de paseos cuando se pide un cine. Con este cambio y un fichero de plantillas que incluye cines recomienda sin problemas. Voy a subir una nueva versión justo ahora con la versión anterior. Si no funciona, el fallo podría estar, casi seguro, en el recom. de cines.

GReaper commented 10 years ago

Actualizo Con la versión antigua, recomendando cines, el sistema vuelve a fallar. Yo creo que lo mejor es centrarse en el recomendador de cines a ver qué puede fallar.

GReaper commented 10 years ago

Justificación ¿Por qué falla si yo pido, por ejemplo, un museo? Una opción es que, aunque yo pida museos o restaurantes o similares, el recom. de plantillas abstractas coja una plantilla que tenga (a) un horario diferente al esperado y (b) actividades diferentes. P. ej.: un museo de 21 a 23. No hay plantillas que lo contengan, por lo que, el sistema, posiblemente, me devuelva un cine de 21 a 23 (se ajusta el horario de forma perfecta aunque no cuadre la actividad). Ahí se entra al recom. de cines y falla.

Sobre las pruebas locales: deben hacerse en igualdad de condiciones. Es decir, con una base de datos replicada de la actual en Madrid Live, mismo usuario de recomendación, etc.

GReaper commented 10 years ago

Importante En CineDescription.xml he visto que falta el género comedia_negra. Hay que agregarlo y revisar si falta en algún lado más.

GReaper commented 10 years ago

Posible error Necesidad de tratar el atributo genero como un campo compuesto. Ahora se declara un Average como método de similitud, pero, ¿qué significa en este caso una media de un objeto? ¿Jcolibrí sabe tratarlo ya con eso?

GReaper commented 10 years ago

Actualizo La implementación de los casos anidados es correcta.

GReaper commented 10 years ago

Cierro Ya funcionan los cines.