Opened 7 years ago

Closed 7 years ago

#2089 closed defect (fixed)

Can't select bioplate in sample edit dialog

Reported by: Nicklas Nordborg Owned by: everyone
Priority: critical Milestone: BASE 3.11.1
Component: web Version:
Keywords: Cc:

Description

The dialog is opened but remains blank. The debug console in firefox shows "Status 400" in the Network tab. On the server side there is a log entry in the stderr file:

01-Jun-2017 10:32:12.502 INFO [http-nio-9080-exec-3] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
  at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:472)
...

Initial investigations seems to indicate that it is a problem with the pipe (|) character in the URL that used to work, but newer Tomcat versions seems to be more picky: https://stackoverflow.com/questions/41053653/tomcat-8-is-not-able-to-handle-get-request-with-in-query-parameters

The solutions seems to be to escape the pipe character. The hard part is to find all places where we have used this. Similar constructs may have been used in plug-ins and extensions as well. For example, the "Manual select" function in the "Create mRNA plate" wizard in Reggie has this problem.

Change History (1)

comment:1 by Nicklas Nordborg, 7 years ago

Resolution: fixed
Status: newclosed

(In [7383]) Fixes #2089: Can't select bioplate in sample edit dialog

I hope I have found all places that create URLs with '|' in them. The should now be escaped to '%7C'

Note: See TracTickets for help on using tickets.