Invalid MARC Tags in the Tomcat OPAC
- Article Type: General
- Product: Voyager
- Product Version: 7.1.0
Problem Symptoms:
? Bib or MFHD records that have a non-standard MARC Tag (e.g. ?z49?) will not display any bib, MFHD, or item
information in the OPAC.
? Also, if the end of a tag in there is a hanging subfield delimiter.
Cause:
This behavior is the result of Known Issue 16384-8561.
Resolution:
Issue 16384-8561 is fixed in 8.2.0.
Additional Information
Replication steps:
1. Add a new MARC tag to any bib record in the database, but use a tag that?s not a number (e.g. ?z49?). The data in the two indicators and subfields is irrelevant for this test.
2. Search for this record in the OPAC, and attempt to view the detailed record information on the record display page.
3. When trying to view this record in detail, all you?ll see is a page saying ?No holdings available -- check at the Circulation Desk."
Note: Creating a <displayTag/> in displaycfg.xml and/or displayHoldings.xml is not required to replicate this problem.
Also happens with a trailing subfield delimiter in either bib or mfhd (e.g. 852 |b main |h PR 18823 |i .M56 |).
Other information: The VXWS catalina.out log shows the following error when this record is loaded:
Oct 19, 2009 3:16:46 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet GetHoldingsService threw exception
java.lang.NumberFormatException: For input string: "z49"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at com.endinfosys.marc.Marc.parseDirectory(Marc.java:1145)
at com.endinfosys.marc.Marc.initRec(Marc.java:291)
at com.endinfosys.marc.Marc.getXMLBean(Marc.java:2754)
at com.endinfosys.voyager.holdingsinfo.HoldingsInfoImpl.getSingleMarcRecord(HoldingsInfoImpl.java:937)
at com.endinfosys.voyager.holdingsinfo.HoldingsInfoImpl.getBibData(HoldingsInfoImpl.java:261)
at com.endinfosys.voyager.holdingsinfo.HoldingsInfoImpl.getHoldings(HoldingsInfoImpl.java:199)
at com.endinfosys.voyager.holdingsinfo.HoldingsInfoImpl.getHoldingsInfo(HoldingsInfoImpl.java:165)
at com.endinfosys.voyager.websvc.HoldingsInformationService.getHoldings(HoldingsInformationService.java:127)
at com.endinfosys.voyager.websvc.HoldingsInformationService.doService(HoldingsInformationService.java:110)
at com.endinfosys.voyager.websvc.AbstractParameterService.doPost(AbstractParameterService.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.endinfosys.voyager.search.filter.SearchSessionFilter.doFilter(SearchSessionFilter.java:65)
at com.endinfosys.util.HttpFilter.doFilter(HttpFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.endinfosys.util.HttpContextFilter.doFilter(HttpContextFilter.java:100)
at com.endinfosys.util.HttpFilter.doFilter(HttpFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.endinfosys.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:103)
at com.endinfosys.util.HttpFilter.doFilter(HttpFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:595)
Workaround: Clean up the bad data in the Cataloging client
Category: Opac
- Article last edited: 10/8/2013