Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    vxws:should not send pipe symbol as separator b/w db key and request id

    • Article Type: General
    • Product: Voyager
    • Product Version: 8.1.1

    Description:
    Bug Report Form for Issue 16384-15601

    Module(s): VXWS
    Server platform(s) affected: Solaris/all
    PC OS (if applicable): n/a
    Browser & version (if applicable): n/a
    Release(s) replicated in: 7.2.5, 8.0

    Expected results:
    Vxws should not use a pipe character ( | ) to separate the db key of the requesting db from the hold_recall_id of a request.

    <BUG:ACTUAL>
    Actual results:
    Vxws does currently send a pipe as the separator between the db key of the requesting db and the hold_recall_id of a request; this can cause the cancellation of the request to fail.
    </BUG:ACTUAL>

    Workflow implications: If site uses OvP or another application that uses the web services, they may be unable to cancel requests. Note: as the pipe is sent in other URLs/functions as well, it should be corrected there, too.

    Replication steps:
    Locate a patron with a current hold request.
    Manually send the delete with the pipe (where the patron_id is 439 and the hold_recall_id is 242), and you’ll see the java errors:

    [VGER] voyager@supzv725 : logs/ => telnet localhost 7014
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    DELETE /vxws/patron/439/circulationActions/requests/holds/MAST20001DB20020910104124|242?patron_homedb=1@MAST20001DB20020910104124 HTTP/1.1
    Host: asdfa

    HTTP/1.1 500 Internal Server Error
    Server: Apache-Coyote/1.1
    Content-Type: text/html;charset=utf-8
    Content-Length: 2722
    Date: Tue, 28 Jun 2011 15:17:01 GMT
    Connection: close

    <html><head><title>Apache Tomcat/6.0.18 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>java.lang.IllegalArgumentException
    java.net.URI.create(URI.java:842)
    javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:95)
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:277)
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:239)
    com.endinfosys.util.HttpContextFilter.doFilter(HttpContextFilter.java:100)
    com.endinfosys.util.HttpFilter.doFilter(HttpFilter.java:83)
    com.endinfosys.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:103)
    com.endinfosys.util.HttpFilter.doFilter(HttpFilter.java:83)
    </pre></p><p><b>root cause</b> <pre>java.net.URISyntaxException: Illegal character in path at index 88: http://asdfs/vxws/patron/439/circulationActions/requests/holds/MAST20001DB20020910104124|242
    java.net.URI$Parser.fail(URI.java:2809)
    java.net.URI$Parser.checkChars(URI.java:2982)
    java.net.URI$Parser.parseHierarchical(URI.java:3066)
    java.net.URI$Parser.parse(URI.java:3014)
    java.net.URI.&lt;init&gt;(URI.java:578)
    java.net.URI.create(URI.java:840)
    javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:95)
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:277)
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:239)
    com.endinfosys.util.HttpContextFilter.doFilter(HttpContextFilter.java:100)
    com.endinfosys.util.HttpFilter.doFilter(HttpFilter.java:83)
    com.endinfosys.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:103)
    com.endinfosys.util.HttpFilter.doFilter(HttpFilter.java:83)
    </pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.18</h3></body></html>Connection to localhost closed by foreign host.

    Other information: There appears to be *some* level of configuration somewhere that impacts this, as locally and at a number of other sites on the same version the | does *not* prevent the cancellation of the request. Again, this example is for requests, but the pipe is used in other URLs/functions, and this should be changed there as well.

    Resolution:
    Fixed in VXWS for 8.1.1.


    • Article last edited: 3/16/2015