I am not able to update an obsoleted gene to add
a 'replaced by' gene id. An example page is:
http://tesuque.stanford.edu:8080/pub/DisplayGene?
gene_id=46488
I tried to update this to be unobsoleted gene, and
got the following error.
HTTP Status 500 -
------------------------------------------------------
--------------------------
type Exception report
message
description The server encountered an internal error
() that prevented it from fulfilling this request.
exception
java.lang.RuntimeException: Illegal
parameter 'updated_by' with value '46488'.
at
pub.servlets.update.UpdateGeneHandler.obsoleteOrUnobso
leteGeneIfRequested(UpdateGeneHandler.java:266)
at
pub.servlets.update.UpdateGeneHandler.processGeneInfor
mation(UpdateGeneHandler.java:174)
at
pub.servlets.update.UpdateGeneHandler.updateTables
(UpdateGeneHandler.java:166)
at
pub.servlets.update.UpdateGeneHandler.handleRequest
(UpdateGeneHandler.java:80)
at pub.servlets.update.UpdateGene.doService
(UpdateGene.java:46)
at pub.servlets.PubServlet.doIt
(PubServlet.java:114)
at pub.servlets.PubServlet.doPost
(PubServlet.java:85)
at javax.servlet.http.HttpServlet.service
(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service
(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.intern
alDoFilter(ApplicationFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilt
er(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
at
org.apache.catalina.core.StandardPipeline$StandardPipe
lineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipe
lineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2416)
at
org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipe
lineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipe
lineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipe
lineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipe
lineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
at
org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:601)
at
org.apache.coyote.http11.Http11Protocol$Http11Connecti
onHandler.processConnection(Http11Protocol.java:392)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:565)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunna
ble.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)
Caused by: Illegal parameter 'updated_by' with
value '46488'.
at
pub.db.command.UnobsoleteGene.checkParameters
(UnobsoleteGene.java:70)
at pub.db.command.UnobsoleteGene.initialize
(UnobsoleteGene.java:56)
at
pub.servlets.update.UpdateGeneHandler.obsoleteOrUnobso
leteGeneIfRequested(UpdateGeneHandler.java:262)
... 37 more
------------------------------------------------------
--------------------------
Apache Tomcat/4.1.27
Logged In: YES
user_id=49843
Fixed in r3370:
http://aztec.stanford.edu/cgi-bin/pub-trac.cgi/changeset/3370
This fix should be in test:
http://tesuque.stanford.edu:9999/pubtest
Please tell me if it looks ok now. Hope this helps!
Logged In: YES
user_id=629839
It works fine on test. However, I noticed that if there is a
replaced-by entity, I get the following error:
Error!
We've run into a database constraint exception while
handling the update. Here is debugging information on the error:
pub.db.DatabaseConstraintException: Can't revive Gene which
has replaced_by field
Logged In: YES
user_id=49843
Ok, found this out. There was some check added at r2393
that causes this problem. The log message at that time was
that we didn't want to automatically clear the replaced_by
when unobsoleting a gene, and the error message is supposed
to indicate that the clearing of replaced_by had to be done
first.
I'm not sure if this is a feature we should still keep. I
can change this so that it just cleared out replaced_by, if
this is the behavior we want.
Logged In: YES
user_id=629839
It's fine if you want to keep a warning but currently it's
not working as a warning but rather is preventing the action
from happening.
Logged In: YES
user_id=49843
Hmm... I'll drop the test for replaced_by. It seems to be
causing more problems, and it's not really that helpful. If
one is trying to unobsolete a gene, then that should
automatically clear out the replaced_by.
Change committed, but I'll do some internal testing first
before closing this bug.
Logged In: YES
user_id=629839
OK sounds good. Thanks Danny
Logged In: YES
user_id=579762
Originator: NO
Also: cannot revive locus (from related, now closed SF item 1057073
http://tesuque.stanford.edu:8080/pub/Display?acc=locus:31804
Even when I remove the contents of the replaced_by
field I still get this error:
pub.db.DatabaseConstraintException: Can't revive an
entry from pub_locus which has replaced_by field