Ticket #472 (closed: fixed)

Opened 3 years ago

Last modified 3 years ago

Strange error message if no xtandem paramters selected

Reported by: fredrik Owned by: olle
Milestone: Proteios SE 2.5 Keywords:
Cc:

Description

If the 'use spectrum file(s) for X!Tandem search' extension is selected and no parameter set is selected before clicking on 'Create Search jobs', the error message is incomprehensive:

Message

Same action was put in the queue more than 4 times. Inspect the log for debug information. Last action in queue is org.proteios.action.file.UseSpectrumFileForXTandemSearchExtension

Stacktrace

se.lu.thep.waf.EventException?: Same action was put in the queue more than 4 times. Inspect the log for debug information. Last action in queue is org.proteios.action.file.UseSpectrumFileForXTandemSearchExtension

at se.lu.thep.waf.Event.go(Event.java:148) at se.lu.thep.waf.ActionServlet?.doGet(ActionServlet?.java:84) at se.lu.thep.waf.ActionServlet?.doPost(ActionServlet?.java:65) at javax.servlet.http.HttpServlet?.service(HttpServlet?.java:709) at javax.servlet.http.HttpServlet?.service(HttpServlet?.java:802) at org.apache.catalina.core.ApplicationFilterChain?.internalDoFilter(ApplicationFilterChain?.java:252) at org.apache.catalina.core.ApplicationFilterChain?.doFilter(ApplicationFilterChain?.java:173) at org.apache.catalina.core.StandardWrapperValve?.invoke(StandardWrapperValve?.java:213) at org.apache.catalina.core.StandardContextValve?.invoke(StandardContextValve?.java:178) at org.apache.catalina.core.StandardHostValve?.invoke(StandardHostValve?.java:126) at org.apache.catalina.valves.ErrorReportValve?.invoke(ErrorReportValve?.java:105) at org.apache.catalina.core.StandardEngineValve?.invoke(StandardEngineValve?.java:107) at org.apache.catalina.connector.CoyoteAdapter?.service(CoyoteAdapter?.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint?.processSocket(PoolTcpEndpoint?.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread?.runIt(LeaderFollowerWorkerThread?.java:80) at org.apache.tomcat.util.threads.ThreadPool?$ControlRunnable?.run(ThreadPool?.java:684) at java.lang.Thread.run(Thread.java:595)

Change History

comment:1 Changed 3 years ago by olle

  • Status changed from new to assigned

Ticket accepted.

comment:2 Changed 3 years ago by olle

  • severity changed from 1 to 2

Severity set to 2 by principle, since the solution is not included in the ticket description.

comment:3 Changed 3 years ago by olle

  • severity changed from 2 to 4

Severity adjusted to 4, as preliminary analysis revealed that the problem could not be resolved by simply adding a parameter value check in the action class where the error occurred.

comment:4 Changed 3 years ago by olle

Error analysis.

Sequence of events when the error appears for the normal use case:

  1. Extension class UseSpectrumFileForXTandemSearchExtension retrieves id values for spectrum files from valid parameter FormFactory.VID, and then shows a table for selection of an X!Tandem parameter set, after which the action is forwarded to class SearchXTandem or ViewActiveXTandemParameterSetStorage, depending on whether the user has chosen to start the X!Tandem search directly, or first edit the parameter values. Before forwarding the action, the list of spectrum file id values are transferred to valid parameter SearchXTandem.VSPECTRUMFILEID, since FormFactory.VID is reused.
  2. The chosen of the latter classes retrieves id value for the selected X!Tandem parameter set, and the error occurs if no set has been selected, when the parameter set item should be loaded. Currently no explicit error check is performed , but the action is returned to the previous action, class UseSpectrumFileForXTandemSearchExtension.
  3. When action UseSpectrumFileForXTandemSearchExtension is rerun, however, the search for id values from valid parameter FormFactory.VID now fails, as the values have been reset. An error is therefore triggered also for this class, but this just leads to the same action being rerun again, with the same result. The system automatically stops when the same action was put in the queue more than 4 times, resulting in the described error message.

Suggested solution:

  • To fix the major problem, class UseSpectrumFileForXTandemSearchExtension should not directly return with an error when no id values from valid parameter FormFactory.VID are found, but first check if id values can be retrieved from valid parameter SearchXTandem.VSPECTRUMFILEID, which indicates that the action is rerun after an error in the forward action. In this case the processing should continue, to allow an error message from the forward action to be displayed.
  • Without an explicit error check in the forward action classes, the described change in class UseSpectrumFileForXTandemSearchExtension will allow a generic error of the type "itemId : missing value", which is a vast improvement over the current message. However, explicit error checking would allow a much more specific error message like "Please select an X!Tandem parameter set". In addition, since only a single X!Tandem parameter set should be selected, a check should also be added to test if more than one item is selected, as this indicates a user error.

comment:5 Changed 3 years ago by olle

Design update:

The proposed check that only a single X!Tandem parameter set is selected will not be implemented at this stage, since this introduces complications when the action is returned to class UseSpectrumFileForXTandemSearchExtension, as FormFactory.VID values now exist (corresponding to the selected X!Tandem parameter files), which will be interpreted as id values for spectrum files, with disastrous consequences.

comment:6 Changed 3 years ago by olle

(In [2879]) Refs #472. Class/file action/file/UseSpectrumFileForXTandemSearchExtension.java in client/servlet/ updated to allow error messages from a forward action to be displayed, when the action is returned from the latter:

  1. Protected method void runMe() updated by not directly returning

with an error when no id values from valid parameter FormFactory.VID are found, but first check if id values can be retrieved from valid parameter SearchXTandem.VSPECTRUMFILEID, which indicates that the action is rerun after an error in the forward action. In this case the processing should continue, to allow an error message from the forward action to be displayed.

comment:7 Changed 3 years ago by olle

(In [2880]) Refs #472. Classes/files action/xTandemInput/SearchXTandem.java and action/xTandemInput/ViewActiveXTandemParameterSetStorage.java, both in client/servlet/, updated to check that an X!Tandem parameter set is selected:

  1. Protected method void runMe() updated by checking early if an id

for an X!Tandem parameter set can be retrieved from valid parameters ViewActiveXTandemParameterSetStorage.VXTANDEMPARAMETERSETSTORAGEID or FormFactory.VID, and return with an error message, if not X!Tandem parameter set has been selected.

comment:8 Changed 3 years ago by olle

  • Status changed from assigned to closed
  • Resolution set to fixed

Ticket closed as the problem (hopefully) is fixed.

Note: See TracTickets for help on using tickets.