AtlasOfLivingAustralia / collectory

Metadata registry for the Atlas
https://collections.ala.org.au
Other
0 stars 15 forks source link

gbif repatriation service error 500 #234

Open peggynewman opened 8 months ago

peggynewman commented 8 months ago

Attempting to run a repatriation from GBIF for Australian data, selected 233 out of 236 data resources, clicked go, got an error:

https://collections-test.ala.org.au/manage/updateFromExternalSources

image
adam-collins commented 8 months ago

The page posts a list of resources for processing. There is pagination. Only visible rows are included. When there are >1 pages it will show this error.

The removal of pagination is recommended as the solution. Is this acceptable? Note that the max number of rows is a parameter in an earlier page.

peggynewman commented 8 months ago

My goal is to download data resources from GBIF. I have to review them first. I'm not sure what I'm agreeing to if I say that it's ok if I see 236 on the page at once. That's not a problem for me.

Or are you saying that I should do them one page at at time by specifying say 10 as the max number of rows? Or, should I set the max number of rows to 250? It's not clear to me what the parameters are.

adam-collins commented 8 months ago

By removing the pagination it means that the page size combobox at the top of the page is removed, the pagination controls under the table are removed, and all records appear on the page potentially requiring scrolling to view all rows.

A workaround is to select a page size that exceeds or is equal to the rows. Some control is available with the prior page's max value

image

This problem is caused by DataTable removing items within a form. In addition to applying this change to repatriteReview, externalLoadReview was also changed as it has the same structure.

I have only tested locally.

Please test on collections-test.

peggynewman commented 8 months ago

Will have to wait till I return from leave, but will do

peggynewman commented 7 months ago

Exactly the same error on test

java.lang.NullPointerException: Cannot set property 'phase' on null object 
at au.org.ala.collectory.ExternalDataService$_updateFromExternalSources_closure2.doCall(ExternalDataService.groovy:83)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at au.org.ala.collectory.ExternalDataService.updateFromExternalSources(ExternalDataService.groovy:82)
    at au.org.ala.collectory.ManageController.updateFromExternalSources(ManageController.groovy:150)
    at org.grails.core.DefaultGrailsControllerClass$MethodHandleInvoker.invoke(DefaultGrailsControllerClass.java:223)
    at org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:188)
    at org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
    at au.org.ala.ws.security.Pac4jProfileManagerHttpRequestWrapperFilter.doFilter(Pac4jProfileManagerHttpRequestWrapperFilter.java:51)
    at au.org.ala.web.Pac4jHttpServletRequestWrapperFilter.internalFilter(Pac4jHttpServletRequestWrapperFilter.groovy:46)
    at org.pac4j.jee.config.AbstractConfigFilter.doFilter(AbstractConfigFilter.java:72)
    at org.pac4j.jee.filter.SecurityFilter.lambda$internalFilter$0(SecurityFilter.java:94)
    at org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:141)
    at org.pac4j.jee.filter.SecurityFilter.internalFilter(SecurityFilter.java:92)
    at au.org.ala.web.CooperatingFilterWrapper.doFilter(CooperatingFilterWrapper.groovy:31)
    at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126)
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64)
    at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101)
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
adam-collins commented 7 months ago

The test failed because this branch was not merged. The page size drop down was still on the repatriation list. It was on hold for a few weeks and I got mixed up as to where it was up to. I gave up and just merged everything into the develop branch. It can be again tested now.

peggynewman commented 4 months ago

Tested and getting a bit further now; we end up on a screen with a list of the datasets, all marked with a red "error". The data resources are created but no connection parameters are populated. @adam-collins @CamSlatyer