Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Individual merge error #999

Open
goddesswarship opened this issue Jan 29, 2025 · 1 comment
Open

Individual merge error #999

goddesswarship opened this issue Jan 29, 2025 · 1 comment
Assignees
Labels
bug something's broken! platform support needs to be addressed by staff

Comments

@goddesswarship
Copy link
Contributor

goddesswarship commented Jan 29, 2025

Expected behavior
Seeing a Success confirmation when merging (/merge.jsp) two individuals in Wildbook removes the ID of the individual that merged into the other.

Current behavior
This has only been reported in ACW so far.

A success message on the merge page did not actually merge the two individual IDs. Manually removing the Identity on the encounter page and reassigning to an existing ID resulted in the following error:

Execution of method "add" on field "encounters" caused an error : Add request failed : INSERT INTO "MARKEDINDIVIDUAL_ENCOUNTERS" ("INDIVIDUALID_OID","CATALOGNUMBER_EID","IDX") VALUES (?,?,?) Add request failed : INSERT INTO "MARKEDINDIVIDUAL_ENCOUNTERS" ("INDIVIDUALID_OID","CATALOGNUMBER_EID","IDX") VALUES (?,?,?) org.datanucleus.exceptions.NucleusDataStoreException: Add request failed : INSERT INTO "MARKEDINDIVIDUAL_ENCOUNTERS" ("INDIVIDUALID_OID","CATALOGNUMBER_EID","IDX") VALUES (?,?,?) at org.datanucleus.store.rdbms.scostore.JoinListStore.internalAdd(JoinListStore.java:317) at org.datanucleus.store.rdbms.scostore.AbstractListStore.add(AbstractListStore.java:114) at org.datanucleus.store.types.wrappers.backed.Vector.add(Vector.java:779) at org.datanucleus.state.RelationshipManagerImpl.processManyToOneBidirectionalRelation(RelationshipManagerImpl.java:880) at org.datanucleus.state.RelationshipManagerImpl.process(RelationshipManagerImpl.java:404) at org.datanucleus.ExecutionContextImpl.performManagedRelationships(ExecutionContextImpl.java:3934) at org.datanucleus.ExecutionContextImpl.flush(ExecutionContextImpl.java:3997) at org.datanucleus.ExecutionContextThreadedImpl.flush(ExecutionContextThreadedImpl.java:436) at org.datanucleus.ExecutionContextImpl.preCommit(ExecutionContextImpl.java:4165) at org.datanucleus.ExecutionContextImpl.transactionPreCommit(ExecutionContextImpl.java:770) at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:385) at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:275) at org.datanucleus.api.jdo.JDOTransaction.commit(JDOTransaction.java:107) at org.ecocean.Shepherd.commitDBTransaction(Shepherd.java:4168) at org.ecocean.Shepherd.updateDBTransaction(Shepherd.java:4216) at org.ecocean.servlet.IndividualAddEncounter.doPost(IndividualAddEncounter.java:109) at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:458) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:373) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:370) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.ecocean.servlet.StrutsUTF8Filter.doFilter(StrutsUTF8Filter.java:13) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "MARKEDINDIVIDUAL_ENCOUNTERS_pkey" Detail: Key ("INDIVIDUALID_OID", "IDX")=(4478c40e-084d-4fca-be81-b89611e30040, 26) already exists. at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2455) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2155) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:288) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:430) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:356) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:168) at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:135) at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) at org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:393) at org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:431) at org.datanucleus.store.rdbms.scostore.JoinListStore.internalAdd(JoinListStore.java:298) ... 64 more Nested Throwables StackTrace: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "MARKEDINDIVIDUAL_ENCOUNTERS_pkey" Detail: Key ("INDIVIDUALID_OID", "IDX")=(4478c40e-084d-4fca-be81-b89611e30040, 26) already exists. at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2455) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2155) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:288) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:430) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:356) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:168) at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:135) at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) at org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:393) at org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:431) at org.datanucleus.store.rdbms.scostore.JoinListStore.internalAdd(JoinListStore.java:298) at org.datanucleus.store.rdbms.scostore.AbstractListStore.add(AbstractListStore.java:114) at org.datanucleus.store.types.wrappers.backed.Vector.add(Vector.java:779) at org.datanucleus.state.RelationshipManagerImpl.processManyToOneBidirectionalRelation(RelationshipManagerImpl.java:880) at org.datanucleus.state.RelationshipManagerImpl.process(RelationshipManagerImpl.java:404) at org.datanucleus.ExecutionContextImpl.performManagedRelationships(ExecutionContextImpl.java:3934) at org.datanucleus.ExecutionContextImpl.flush(ExecutionContextImpl.java:3997) at org.datanucleus.ExecutionContextThreadedImpl.flush(ExecutionContextThreadedImpl.java:436) at org.datanucleus.ExecutionContextImpl.preCommit(ExecutionContextImpl.java:4165) at org.datanucleus.ExecutionContextImpl.transactionPreCommit(ExecutionContextImpl.java:770) at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:385) at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:275) at org.datanucleus.api.jdo.JDOTransaction.commit(JDOTransaction.java:107) at org.ecocean.Shepherd.commitDBTransaction(Shepherd.java:4168) at org.ecocean.Shepherd.updateDBTransaction(Shepherd.java:4216) at org.ecocean.servlet.IndividualAddEncounter.doPost(IndividualAddEncounter.java:109) at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:458) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:373) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:370) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.ecocean.servlet.StrutsUTF8Filter.doFilter(StrutsUTF8Filter.java:13) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:829)

While merge errors have also been reported in other Wildbook this week (1 | 2) they did not ultimately prevent two individuals from merging.

Community link
https://community.wildme.org/t/cannot-merge-ids/4641
https://community.wildme.org/t/cannot-add-id-to-an-encounter/4656

@goddesswarship goddesswarship added bug something's broken! platform support needs to be addressed by staff labels Jan 29, 2025
@goddesswarship
Copy link
Contributor Author

@naknomum Someone else reported not being able to set the identity on the encounter page in ACW. Should I make a separate ticket for that since the errors observed with merging and updating individual ID could be two separate bugs?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug something's broken! platform support needs to be addressed by staff
Projects
None yet
Development

No branches or pull requests

2 participants