Unexpected Error
Sorry, an unexpected error occurred. Please try again.
Report Error
javax.servlet.forward.servlet_path = [/servlet]
headerLogo = [/WEB-INF/views/jsp/common/headerLogo.jsp]
javax.servlet.jsp.jstl.fmt.localizationContext.request = [org.springframework.web.servlet.support.JstlUtils$SpringLocalizationContext@428d0d19]
org.apache.shiro.web.servlet.ShiroHttpServletRequestREFERENCED_SESSION_ID_SOURCE = [cookie]
pageTitle = []
pageSize = [50]
REQUEST_URL = [https://lunatest.library.manchester.ac.uk/luna/servlet/media/book/showAllPagesThumbnail]
adsContent = [/WEB-INF/views/jsp/common/adsContent.jsp]
menuBar = [/WEB-INF/views/jsp/common/menuBar.jsp]
org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER = [org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver@36c515b4]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_REQUESTED_SESSION_ID = [3903b848-47f6-4768-8b62-f7843bc2ac8f]
org.springframework.web.servlet.HandlerMapping.bestMatchingPattern = [/media/book/**]
javax.servlet.include.context_path = [/luna]
org.springframework.web.servlet.DispatcherServlet.OUTPUT_FLASH_MAP = [FlashMap [attributes={}, targetRequestPath=null, targetRequestParams={}]]
org.springframework.web.servlet.DispatcherServlet.FLASH_MAP_MANAGER = [org.springframework.web.servlet.support.SessionFlashMapManager@6b20dbb]
mainNav = [/WEB-INF/views/jsp/common/mainNav.jsp]
javax.servlet.request.key_size = [256]
javax.servlet.error.servlet_name = [luna]
javax.servlet.request.ssl_session_id = [7fca76d91bc428bfa57d2d98d989675588128a084f586a17b6ca382478c94b21]
rc = [org.springframework.web.servlet.support.RequestContext@9471ab0]
javax.servlet.include.servlet_path = [/WEB-INF/views/jsp/errors/error.jsp]
javax.servlet.forward.query_string = [mid=Manchester~18~18~74~224449]
quickSearch = [/WEB-INF/views/jsp/common/quickSearch.jsp]
org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping = [showAllPagesThumbnail]
javax.servlet.error.exception = [java.lang.NumberFormatException: null]
javax.servlet.forward.context_path = [/luna]
cors.isCorsRequest = [false]
org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER = [org.springframework.web.context.request.async.WebAsyncManager@55b81759]
org.springframework.web.servlet.HandlerMapping.bestMatchingHandler = [com.lunaimaging.insight.web.controller.MediaBookController@6c3ac2e5]
javax.servlet.error.status_code = [200]
org.springframework.web.servlet.DispatcherServlet.CONTEXT = [WebApplicationContext for namespace 'luna-servlet': startup date [Wed Mar 11 07:01:24 GMT 2026]; parent: Root WebApplicationContext]
org.springframework.web.servlet.HandlerMapping.introspectTypeLevelMapping = [false]
javax.servlet.include.request_uri = [/luna/WEB-INF/views/jsp/errors/error.jsp]
thumbnailResolution = [1]
javax.servlet.include.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@214bafef]
shiroFilter.FILTERED = [true]
javax.servlet.error.exception_type = [class java.lang.NumberFormatException]
org.apache.logging.log4j.web.Log4jServletFilter.FILTERED = [true]
org.springframework.core.convert.ConversionService = [ConversionService converters = @org.springframework.format.annotation.DateTimeFormat java.lang.Long -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf,@org.springframework.format.annotation.NumberFormat java.lang.Long -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.LocalDate -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@4adf1aeb @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.LocalDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@789ff945 @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.LocalTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@658d43d0 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.OffsetDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@4bde7922 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.OffsetTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@260b0e51 @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.ZonedDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@2b1bfb96 @org.springframework.format.annotation.DateTimeFormat java.util.Calendar -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf @org.springframework.format.annotation.DateTimeFormat java.util.Date -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf @org.springframework.format.annotation.NumberFormat java.lang.Byte -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.lang.Double -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.lang.Float -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.lang.Integer -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.lang.Short -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.math.BigDecimal -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.math.BigInteger -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@2bf8a1b7 java.lang.Character -> java.lang.Number : org.springframework.core.convert.support.CharacterToNumberFactory@660541bd java.lang.Character -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@4d5370d8 java.lang.Enum -> java.lang.Integer : org.springframework.core.convert.support.EnumToIntegerConverter@78951e4b java.lang.Enum -> java.lang.String : org.springframework.core.convert.support.EnumToStringConverter@350d8dae java.lang.Integer -> java.lang.Enum : org.springframework.core.convert.support.IntegerToEnumConverterFactory@168ee034 java.lang.Long -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$LongToInstantConverter@6a657a24 java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@67fb52c7,java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@57ebef46 java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@27f04b28,java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@525a69df java.lang.Number -> java.lang.Character : org.springframework.core.convert.support.NumberToCharacterConverter@46828c3f java.lang.Number -> java.lang.Number : org.springframework.core.convert.support.NumberToNumberConverterFactory@3782b1a8 java.lang.Number -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@13367220 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.lang.Long: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf,java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Long: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.LocalDate: org.springframework.format.datetime.standard.TemporalAccessorParser@baaedce java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.LocalDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@2407af05 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.LocalTime: org.springframework.format.datetime.standard.TemporalAccessorParser@4aa5bab8 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.OffsetDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@52b888db java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.OffsetTime: org.springframework.format.datetime.standard.TemporalAccessorParser@d8d7bfb java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.ZonedDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@4c0ce437 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Calendar: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Date: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Byte: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Double: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Float: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Integer: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Short: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigDecimal: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigInteger: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> java.lang.Boolean : org.springframework.core.convert.support.StringToBooleanConverter@7d7bcb70 java.lang.String -> java.lang.Character : org.springframework.core.convert.support.StringToCharacterConverter@6ffe837e java.lang.String -> java.lang.Enum : org.springframework.core.convert.support.StringToEnumConverterFactory@79c93383 java.lang.String -> java.lang.Number : org.springframework.core.convert.support.StringToNumberConverterFactory@6a1af72 java.lang.String -> java.nio.charset.Charset : org.springframework.core.convert.support.StringToCharsetConverter@702736f1 java.lang.String -> java.time.Duration: org.springframework.format.datetime.standard.DurationFormatter@5d4d5790 java.lang.String -> java.time.Instant: org.springframework.format.datetime.standard.InstantFormatter@35221401 java.lang.String -> java.time.MonthDay: org.springframework.format.datetime.standard.MonthDayFormatter@1e5e2403 java.lang.String -> java.time.Period: org.springframework.format.datetime.standard.PeriodFormatter@234abc2e java.lang.String -> java.time.YearMonth: org.springframework.format.datetime.standard.YearMonthFormatter@3bf9bd61 java.lang.String -> java.util.Currency : org.springframework.core.convert.support.StringToCurrencyConverter@6bd4e5fc java.lang.String -> java.util.Locale : org.springframework.core.convert.support.StringToLocaleConverter@48706ff1 java.lang.String -> java.util.Properties : org.springframework.core.convert.support.StringToPropertiesConverter@7cc74f4d java.lang.String -> java.util.TimeZone : org.springframework.core.convert.support.StringToTimeZoneConverter@77799f92 java.lang.String -> java.util.UUID : org.springframework.core.convert.support.StringToUUIDConverter@100f339a java.nio.charset.Charset -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@209019f8 java.time.Duration -> java.lang.String : org.springframework.format.datetime.standard.DurationFormatter@5d4d5790 java.time.Instant -> java.lang.Long : org.springframework.format.datetime.standard.DateTimeConverters$InstantToLongConverter@26b90e0d java.time.Instant -> java.lang.String : org.springframework.format.datetime.standard.InstantFormatter@35221401 java.time.LocalDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalDateConverter@72674798 java.time.LocalDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalTimeConverter@7372cc9a java.time.MonthDay -> java.lang.String : org.springframework.format.datetime.standard.MonthDayFormatter@1e5e2403 java.time.OffsetDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToInstantConverter@423398f4 java.time.OffsetDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateConverter@293a4af7 java.time.OffsetDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateTimeConverter@546e793d java.time.OffsetDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalTimeConverter@6568f72a java.time.OffsetDateTime -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToZonedDateTimeConverter@392500d5 java.time.Period -> java.lang.String : org.springframework.format.datetime.standard.PeriodFormatter@234abc2e java.time.YearMonth -> java.lang.String : org.springframework.format.datetime.standard.YearMonthFormatter@3bf9bd61 java.time.ZoneId -> java.util.TimeZone : org.springframework.core.convert.support.ZoneIdToTimeZoneConverter@43f06dc8 java.time.ZonedDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToInstantConverter@338bc5a0 java.time.ZonedDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateConverter@4ea2c559 java.time.ZonedDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateTimeConverter@e2856cc java.time.ZonedDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalTimeConverter@463b9214 java.time.ZonedDateTime -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToOffsetDateTimeConverter@6bdb4d8f java.time.ZonedDateTime -> java.util.Calendar : org.springframework.core.convert.support.ZonedDateTimeToCalendarConverter@198da2e3 java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@4d3f0566,java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@4f6fe9ef java.util.Calendar -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToInstantConverter@2eabdac0 java.util.Calendar -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateConverter@56f24f0e java.util.Calendar -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateTimeConverter@6f4e7726 java.util.Calendar -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalTimeConverter@8d8991c java.util.Calendar -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToOffsetDateTimeConverter@47c0dc8b java.util.Calendar -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToZonedDateTimeConverter@60c0e63f java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@6b106cf6,java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@7290e9e0 java.util.Currency -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@351e67a1 java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@47aba1e3,java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@2cd6b9e5 java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@35815236,java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@71ae7f99 java.util.Locale -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@1149ebac java.util.Properties -> java.lang.String : org.springframework.core.convert.support.PropertiesToStringConverter@5cb8c6f4 java.util.UUID -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@56ea7d55 org.springframework.core.convert.support.ArrayToArrayConverter@63fe774b org.springframework.core.convert.support.ArrayToCollectionConverter@1011fde2 org.springframework.core.convert.support.ArrayToObjectConverter@78666667 org.springframework.core.convert.support.ArrayToStringConverter@53871fa3 org.springframework.core.convert.support.ByteBufferConverter@8df09b1 org.springframework.core.convert.support.ByteBufferConverter@8df09b1 org.springframework.core.convert.support.ByteBufferConverter@8df09b1 org.springframework.core.convert.support.ByteBufferConverter@8df09b1 org.springframework.core.convert.support.CollectionToArrayConverter@a040672 org.springframework.core.convert.support.CollectionToCollectionConverter@667baeb4 org.springframework.core.convert.support.CollectionToObjectConverter@2caa6e66 org.springframework.core.convert.support.CollectionToStringConverter@3f4a8e21 org.springframework.core.convert.support.FallbackObjectToStringConverter@120f9ced org.springframework.core.convert.support.IdToEntityConverter@696fa2e2,org.springframework.core.convert.support.ObjectToObjectConverter@52d13552 org.springframework.core.convert.support.MapToMapConverter@799aa174 org.springframework.core.convert.support.ObjectToArrayConverter@54dbf91e org.springframework.core.convert.support.ObjectToCollectionConverter@273271e4 org.springframework.core.convert.support.ObjectToOptionalConverter@6661aef5 org.springframework.core.convert.support.ObjectToOptionalConverter@6661aef5 org.springframework.core.convert.support.ObjectToOptionalConverter@6661aef5 org.springframework.core.convert.support.StreamConverter@4ce2d8a5 org.springframework.core.convert.support.StreamConverter@4ce2d8a5 org.springframework.core.convert.support.StreamConverter@4ce2d8a5 org.springframework.core.convert.support.StreamConverter@4ce2d8a5 org.springframework.core.convert.support.StringToArrayConverter@43536eb7 org.springframework.core.convert.support.StringToCollectionConverter@67b469a9 ]
javax.servlet.forward.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@6803402a]
org.apache.tomcat.util.net.secure_protocol_version = [TLSv1.3]
javax.servlet.forward.request_uri = [/luna/servlet/media/book/showAllPagesThumbnail]
javax.servlet.forward.path_info = [/media/book/showAllPagesThumbnail]
javax.servlet.error.message = [null]
javax.servlet.request.cipher_suite = [TLS_AES_256_GCM_SHA384]
org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE = [WebApplicationContext for namespace 'luna-servlet': startup date [Wed Mar 11 07:01:24 GMT 2026]; parent: Root WebApplicationContext]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_REQUESTED_SESSION_ID_VALID = [true]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_SESSION_ID_URL_REWRITING_ENABLED = [false]
mainContent = [/WEB-INF/views/jsp/errors/error.jsp]
encodingFilter.FILTERED = [true]
invalidRequest.FILTERED = [true]
javax.servlet.error.request_uri = [/luna/servlet/media/book/showAllPagesThumbnail]
htitle = [error.htitle]
org.springframework.web.servlet.DispatcherServlet.THEME_RESOLVER = [com.lunaimaging.insight.web.servlet.theme.CollectionThemeResolver@79868909]
javax.servlet.jsp.jstl.fmt.locale.request = [en_GB]
appConfig = [com.lunaimaging.insight.core.domain.ApplicationConfiguration@1e5cb476]
EXTENDED_COLLECTION_PROPERTIES = [ExtendedCollectionsProperties[Manchester~18~18] ]
displayHelpfulTips = [00000000000000000000000000]
CATEGORIZED_COLLECTIONS_COUNT = [0]
AUTHENTICATED_ENTITY = [IpRange[5][130.88.0.0-130.88.255.255] ]
LUNA_COLLECTIONS_IN_CONTEXT = [[MediaCollection[Manchester~4~4]Ahmed Iqbal Ullah Race Relations Collection, MediaCollection[Manchester~93~93]Brethren Collection, MediaCollection[Manchester~26~26]Dante Collection, MediaCollection[Manchester~20~20]Early Printing Collection, MediaCollection[Gaskell2~91~1]Elizabeth Gaskell Collection, MediaCollection[ManchesterDev~95~2]Genizah Collection, MediaCollection[Manchester~12~12]Guardian Collection, MediaCollection[Manchester~10~10]Hebraica Collection, MediaCollection[Manchester~25~25]Library Publications Collection, MediaCollection[maps002~1~1]Maps Collection, MediaCollection[Manchester~11~11]Mary Hamilton Papers, MediaCollection[Man4MedievalVC~4~4]Medieval Collection, MediaCollection[Manchester~19~19]Methodist Collection, MediaCollection[Manchester~18~18]Nashriyah: digital Iranian history آرشیو آنلاین نشریات دانشگاه منچستر, MediaCollection[nonconform~91~1]Non-conformist Collection, MediaCollection[ManchesterDev~93~3]Papyri Collection, MediaCollection[Manchester~24~24]Peterloo Collection, MediaCollection[Manchester~15~15]Photography Collection, MediaCollection[Manchester~91~1]Rylands Collection, MediaCollection[lib1~1~1]The John Rylands Library, MediaCollection[Manchester~14~14]University of Manchester History & Heritage]]
ua = [Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)]
pgs = [50]
IPRANGE_DEFAULT_CREDENTIAL_ID = [12]
at java.lang.Integer: parseInt() Integer.java ( 614 )
at java.lang.Integer: parseInt() Integer.java ( 770 )
at com.lunaimaging.insight.web.controller.MediaBookController: getBookThumbnails() MediaBookController.java ( 341 )
at com.lunaimaging.insight.web.controller.MediaBookController: handleShowAllPagesThumbnailView() MediaBookController.java ( 150 )
at jdk.internal.reflect.GeneratedMethodAccessor1066: invoke() ( -1 )
at jdk.internal.reflect.DelegatingMethodAccessorImpl: invoke() DelegatingMethodAccessorImpl.java ( 43 )
at java.lang.reflect.Method: invoke() Method.java ( 566 )
at org.springframework.web.servlet.mvc.multiaction.MultiActionController: invokeNamedMethod() MultiActionController.java ( 473 )
at org.springframework.web.servlet.mvc.multiaction.MultiActionController: handleRequestInternal() MultiActionController.java ( 411 )
at org.springframework.web.servlet.mvc.AbstractController: handleRequest() AbstractController.java ( 174 )
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter: handle() SimpleControllerHandlerAdapter.java ( 50 )
at org.springframework.web.servlet.DispatcherServlet: doDispatch() DispatcherServlet.java ( 967 )
at org.springframework.web.servlet.DispatcherServlet: doService() DispatcherServlet.java ( 901 )
at org.springframework.web.servlet.FrameworkServlet: processRequest() FrameworkServlet.java ( 970 )
at org.springframework.web.servlet.FrameworkServlet: doGet() FrameworkServlet.java ( 861 )
at javax.servlet.http.HttpServlet: service() HttpServlet.java ( 529 )
at org.springframework.web.servlet.FrameworkServlet: service() FrameworkServlet.java ( 846 )
at javax.servlet.http.HttpServlet: service() HttpServlet.java ( 623 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 199 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.tomcat.websocket.server.WsFilter: doFilter() WsFilter.java ( 51 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.catalina.filters.HttpHeaderSecurityFilter: doFilter() HttpHeaderSecurityFilter.java ( 129 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.logging.log4j.web.Log4jServletFilter: doFilter() Log4jServletFilter.java ( 71 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.catalina.filters.CorsFilter: handleNonCORS() CorsFilter.java ( 333 )
at org.apache.catalina.filters.CorsFilter: doFilter() CorsFilter.java ( 160 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.springframework.web.filter.CharacterEncodingFilter: doFilterInternal() CharacterEncodingFilter.java ( 197 )
at org.springframework.web.filter.OncePerRequestFilter: doFilter() OncePerRequestFilter.java ( 107 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.shiro.web.servlet.ProxiedFilterChain: doFilter() ProxiedFilterChain.java ( 61 )
at org.apache.shiro.web.servlet.AdviceFilter: executeChain() AdviceFilter.java ( 108 )
at org.apache.shiro.web.servlet.AdviceFilter: doFilterInternal() AdviceFilter.java ( 137 )
at org.apache.shiro.web.servlet.OncePerRequestFilter: doFilter() OncePerRequestFilter.java ( 154 )
at org.apache.shiro.web.servlet.ProxiedFilterChain: doFilter() ProxiedFilterChain.java ( 66 )
at org.apache.shiro.web.servlet.AbstractShiroFilter: executeChain() AbstractShiroFilter.java ( 458 )
at org.apache.shiro.web.servlet.AbstractShiroFilter$1: call() AbstractShiroFilter.java ( 373 )
at org.apache.shiro.subject.support.SubjectCallable: doCall() SubjectCallable.java ( 90 )
at org.apache.shiro.subject.support.SubjectCallable: call() SubjectCallable.java ( 83 )
at org.apache.shiro.subject.support.DelegatingSubject: execute() DelegatingSubject.java ( 387 )
at org.apache.shiro.web.servlet.AbstractShiroFilter: doFilterInternal() AbstractShiroFilter.java ( 370 )
at org.apache.shiro.web.servlet.OncePerRequestFilter: doFilter() OncePerRequestFilter.java ( 154 )
at org.springframework.web.filter.DelegatingFilterProxy: invokeDelegate() DelegatingFilterProxy.java ( 347 )
at org.springframework.web.filter.DelegatingFilterProxy: doFilter() DelegatingFilterProxy.java ( 263 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at com.lunaimaging.security.client.filter.HttpsFilter: doFilter() HttpsFilter.java ( 120 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at com.lunaimaging.insight.web.filter.TrackingFilter: doFilter() TrackingFilter.java ( 140 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.catalina.core.StandardWrapperValve: invoke() StandardWrapperValve.java ( 168 )
at org.apache.catalina.core.StandardContextValve: invoke() StandardContextValve.java ( 90 )
at org.apache.catalina.authenticator.AuthenticatorBase: invoke() AuthenticatorBase.java ( 482 )
at org.apache.catalina.core.StandardHostValve: invoke() StandardHostValve.java ( 130 )
at org.apache.catalina.valves.ErrorReportValve: invoke() ErrorReportValve.java ( 93 )
at org.apache.catalina.core.StandardEngineValve: invoke() StandardEngineValve.java ( 74 )
at org.apache.catalina.connector.CoyoteAdapter: service() CoyoteAdapter.java ( 346 )
at org.apache.coyote.ajp.AjpProcessor: service() AjpProcessor.java ( 428 )
at org.apache.coyote.AbstractProcessorLight: process() AbstractProcessorLight.java ( 63 )
at org.apache.coyote.AbstractProtocol$ConnectionHandler: process() AbstractProtocol.java ( 935 )
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor: doRun() NioEndpoint.java ( 1833 )
at org.apache.tomcat.util.net.SocketProcessorBase: run() SocketProcessorBase.java ( 52 )
at org.apache.tomcat.util.threads.ThreadPoolExecutor: runWorker() ThreadPoolExecutor.java ( 975 )
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker: run() ThreadPoolExecutor.java ( 493 )
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable: run() TaskThread.java ( 63 )
at java.lang.Thread: run() Thread.java ( 829 )
Request URI
/luna/servlet/media/book/showAllPagesThumbnailParameters
mid = [Manchester~18~18~74~224449]Request Attributes
exception = [java.lang.NumberFormatException: null]javax.servlet.forward.servlet_path = [/servlet]
headerLogo = [/WEB-INF/views/jsp/common/headerLogo.jsp]
javax.servlet.jsp.jstl.fmt.localizationContext.request = [org.springframework.web.servlet.support.JstlUtils$SpringLocalizationContext@428d0d19]
org.apache.shiro.web.servlet.ShiroHttpServletRequestREFERENCED_SESSION_ID_SOURCE = [cookie]
pageTitle = []
pageSize = [50]
REQUEST_URL = [https://lunatest.library.manchester.ac.uk/luna/servlet/media/book/showAllPagesThumbnail]
adsContent = [/WEB-INF/views/jsp/common/adsContent.jsp]
menuBar = [/WEB-INF/views/jsp/common/menuBar.jsp]
org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER = [org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver@36c515b4]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_REQUESTED_SESSION_ID = [3903b848-47f6-4768-8b62-f7843bc2ac8f]
org.springframework.web.servlet.HandlerMapping.bestMatchingPattern = [/media/book/**]
javax.servlet.include.context_path = [/luna]
org.springframework.web.servlet.DispatcherServlet.OUTPUT_FLASH_MAP = [FlashMap [attributes={}, targetRequestPath=null, targetRequestParams={}]]
org.springframework.web.servlet.DispatcherServlet.FLASH_MAP_MANAGER = [org.springframework.web.servlet.support.SessionFlashMapManager@6b20dbb]
mainNav = [/WEB-INF/views/jsp/common/mainNav.jsp]
javax.servlet.request.key_size = [256]
javax.servlet.error.servlet_name = [luna]
javax.servlet.request.ssl_session_id = [7fca76d91bc428bfa57d2d98d989675588128a084f586a17b6ca382478c94b21]
rc = [org.springframework.web.servlet.support.RequestContext@9471ab0]
javax.servlet.include.servlet_path = [/WEB-INF/views/jsp/errors/error.jsp]
javax.servlet.forward.query_string = [mid=Manchester~18~18~74~224449]
quickSearch = [/WEB-INF/views/jsp/common/quickSearch.jsp]
org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping = [showAllPagesThumbnail]
javax.servlet.error.exception = [java.lang.NumberFormatException: null]
javax.servlet.forward.context_path = [/luna]
cors.isCorsRequest = [false]
org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER = [org.springframework.web.context.request.async.WebAsyncManager@55b81759]
org.springframework.web.servlet.HandlerMapping.bestMatchingHandler = [com.lunaimaging.insight.web.controller.MediaBookController@6c3ac2e5]
javax.servlet.error.status_code = [200]
org.springframework.web.servlet.DispatcherServlet.CONTEXT = [WebApplicationContext for namespace 'luna-servlet': startup date [Wed Mar 11 07:01:24 GMT 2026]; parent: Root WebApplicationContext]
org.springframework.web.servlet.HandlerMapping.introspectTypeLevelMapping = [false]
javax.servlet.include.request_uri = [/luna/WEB-INF/views/jsp/errors/error.jsp]
thumbnailResolution = [1]
javax.servlet.include.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@214bafef]
shiroFilter.FILTERED = [true]
javax.servlet.error.exception_type = [class java.lang.NumberFormatException]
org.apache.logging.log4j.web.Log4jServletFilter.FILTERED = [true]
org.springframework.core.convert.ConversionService = [ConversionService converters = @org.springframework.format.annotation.DateTimeFormat java.lang.Long -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf,@org.springframework.format.annotation.NumberFormat java.lang.Long -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.LocalDate -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@4adf1aeb @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.LocalDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@789ff945 @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.LocalTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@658d43d0 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.OffsetDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@4bde7922 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.OffsetTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@260b0e51 @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.time.ZonedDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@2b1bfb96 @org.springframework.format.annotation.DateTimeFormat java.util.Calendar -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf @org.springframework.format.annotation.DateTimeFormat java.util.Date -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf @org.springframework.format.annotation.NumberFormat java.lang.Byte -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.lang.Double -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.lang.Float -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.lang.Integer -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.lang.Short -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.math.BigDecimal -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 @org.springframework.format.annotation.NumberFormat java.math.BigInteger -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@2bf8a1b7 java.lang.Character -> java.lang.Number : org.springframework.core.convert.support.CharacterToNumberFactory@660541bd java.lang.Character -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@4d5370d8 java.lang.Enum -> java.lang.Integer : org.springframework.core.convert.support.EnumToIntegerConverter@78951e4b java.lang.Enum -> java.lang.String : org.springframework.core.convert.support.EnumToStringConverter@350d8dae java.lang.Integer -> java.lang.Enum : org.springframework.core.convert.support.IntegerToEnumConverterFactory@168ee034 java.lang.Long -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$LongToInstantConverter@6a657a24 java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@67fb52c7,java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@57ebef46 java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@27f04b28,java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@525a69df java.lang.Number -> java.lang.Character : org.springframework.core.convert.support.NumberToCharacterConverter@46828c3f java.lang.Number -> java.lang.Number : org.springframework.core.convert.support.NumberToNumberConverterFactory@3782b1a8 java.lang.Number -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@13367220 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.lang.Long: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf,java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Long: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.LocalDate: org.springframework.format.datetime.standard.TemporalAccessorParser@baaedce java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.LocalDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@2407af05 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.LocalTime: org.springframework.format.datetime.standard.TemporalAccessorParser@4aa5bab8 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.OffsetDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@52b888db java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.OffsetTime: org.springframework.format.datetime.standard.TemporalAccessorParser@d8d7bfb java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@3a52babb,java.lang.String -> java.time.ZonedDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@4c0ce437 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Calendar: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Date: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@29ada8cf java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Byte: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Double: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Float: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Integer: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Short: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigDecimal: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigInteger: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@728d6869 java.lang.String -> java.lang.Boolean : org.springframework.core.convert.support.StringToBooleanConverter@7d7bcb70 java.lang.String -> java.lang.Character : org.springframework.core.convert.support.StringToCharacterConverter@6ffe837e java.lang.String -> java.lang.Enum : org.springframework.core.convert.support.StringToEnumConverterFactory@79c93383 java.lang.String -> java.lang.Number : org.springframework.core.convert.support.StringToNumberConverterFactory@6a1af72 java.lang.String -> java.nio.charset.Charset : org.springframework.core.convert.support.StringToCharsetConverter@702736f1 java.lang.String -> java.time.Duration: org.springframework.format.datetime.standard.DurationFormatter@5d4d5790 java.lang.String -> java.time.Instant: org.springframework.format.datetime.standard.InstantFormatter@35221401 java.lang.String -> java.time.MonthDay: org.springframework.format.datetime.standard.MonthDayFormatter@1e5e2403 java.lang.String -> java.time.Period: org.springframework.format.datetime.standard.PeriodFormatter@234abc2e java.lang.String -> java.time.YearMonth: org.springframework.format.datetime.standard.YearMonthFormatter@3bf9bd61 java.lang.String -> java.util.Currency : org.springframework.core.convert.support.StringToCurrencyConverter@6bd4e5fc java.lang.String -> java.util.Locale : org.springframework.core.convert.support.StringToLocaleConverter@48706ff1 java.lang.String -> java.util.Properties : org.springframework.core.convert.support.StringToPropertiesConverter@7cc74f4d java.lang.String -> java.util.TimeZone : org.springframework.core.convert.support.StringToTimeZoneConverter@77799f92 java.lang.String -> java.util.UUID : org.springframework.core.convert.support.StringToUUIDConverter@100f339a java.nio.charset.Charset -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@209019f8 java.time.Duration -> java.lang.String : org.springframework.format.datetime.standard.DurationFormatter@5d4d5790 java.time.Instant -> java.lang.Long : org.springframework.format.datetime.standard.DateTimeConverters$InstantToLongConverter@26b90e0d java.time.Instant -> java.lang.String : org.springframework.format.datetime.standard.InstantFormatter@35221401 java.time.LocalDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalDateConverter@72674798 java.time.LocalDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalTimeConverter@7372cc9a java.time.MonthDay -> java.lang.String : org.springframework.format.datetime.standard.MonthDayFormatter@1e5e2403 java.time.OffsetDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToInstantConverter@423398f4 java.time.OffsetDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateConverter@293a4af7 java.time.OffsetDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateTimeConverter@546e793d java.time.OffsetDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalTimeConverter@6568f72a java.time.OffsetDateTime -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToZonedDateTimeConverter@392500d5 java.time.Period -> java.lang.String : org.springframework.format.datetime.standard.PeriodFormatter@234abc2e java.time.YearMonth -> java.lang.String : org.springframework.format.datetime.standard.YearMonthFormatter@3bf9bd61 java.time.ZoneId -> java.util.TimeZone : org.springframework.core.convert.support.ZoneIdToTimeZoneConverter@43f06dc8 java.time.ZonedDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToInstantConverter@338bc5a0 java.time.ZonedDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateConverter@4ea2c559 java.time.ZonedDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateTimeConverter@e2856cc java.time.ZonedDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalTimeConverter@463b9214 java.time.ZonedDateTime -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToOffsetDateTimeConverter@6bdb4d8f java.time.ZonedDateTime -> java.util.Calendar : org.springframework.core.convert.support.ZonedDateTimeToCalendarConverter@198da2e3 java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@4d3f0566,java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@4f6fe9ef java.util.Calendar -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToInstantConverter@2eabdac0 java.util.Calendar -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateConverter@56f24f0e java.util.Calendar -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateTimeConverter@6f4e7726 java.util.Calendar -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalTimeConverter@8d8991c java.util.Calendar -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToOffsetDateTimeConverter@47c0dc8b java.util.Calendar -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToZonedDateTimeConverter@60c0e63f java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@6b106cf6,java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@7290e9e0 java.util.Currency -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@351e67a1 java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@47aba1e3,java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@2cd6b9e5 java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@35815236,java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@71ae7f99 java.util.Locale -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@1149ebac java.util.Properties -> java.lang.String : org.springframework.core.convert.support.PropertiesToStringConverter@5cb8c6f4 java.util.UUID -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@56ea7d55 org.springframework.core.convert.support.ArrayToArrayConverter@63fe774b org.springframework.core.convert.support.ArrayToCollectionConverter@1011fde2 org.springframework.core.convert.support.ArrayToObjectConverter@78666667 org.springframework.core.convert.support.ArrayToStringConverter@53871fa3 org.springframework.core.convert.support.ByteBufferConverter@8df09b1 org.springframework.core.convert.support.ByteBufferConverter@8df09b1 org.springframework.core.convert.support.ByteBufferConverter@8df09b1 org.springframework.core.convert.support.ByteBufferConverter@8df09b1 org.springframework.core.convert.support.CollectionToArrayConverter@a040672 org.springframework.core.convert.support.CollectionToCollectionConverter@667baeb4 org.springframework.core.convert.support.CollectionToObjectConverter@2caa6e66 org.springframework.core.convert.support.CollectionToStringConverter@3f4a8e21 org.springframework.core.convert.support.FallbackObjectToStringConverter@120f9ced org.springframework.core.convert.support.IdToEntityConverter@696fa2e2,org.springframework.core.convert.support.ObjectToObjectConverter@52d13552 org.springframework.core.convert.support.MapToMapConverter@799aa174 org.springframework.core.convert.support.ObjectToArrayConverter@54dbf91e org.springframework.core.convert.support.ObjectToCollectionConverter@273271e4 org.springframework.core.convert.support.ObjectToOptionalConverter@6661aef5 org.springframework.core.convert.support.ObjectToOptionalConverter@6661aef5 org.springframework.core.convert.support.ObjectToOptionalConverter@6661aef5 org.springframework.core.convert.support.StreamConverter@4ce2d8a5 org.springframework.core.convert.support.StreamConverter@4ce2d8a5 org.springframework.core.convert.support.StreamConverter@4ce2d8a5 org.springframework.core.convert.support.StreamConverter@4ce2d8a5 org.springframework.core.convert.support.StringToArrayConverter@43536eb7 org.springframework.core.convert.support.StringToCollectionConverter@67b469a9 ]
javax.servlet.forward.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@6803402a]
org.apache.tomcat.util.net.secure_protocol_version = [TLSv1.3]
javax.servlet.forward.request_uri = [/luna/servlet/media/book/showAllPagesThumbnail]
javax.servlet.forward.path_info = [/media/book/showAllPagesThumbnail]
javax.servlet.error.message = [null]
javax.servlet.request.cipher_suite = [TLS_AES_256_GCM_SHA384]
org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE = [WebApplicationContext for namespace 'luna-servlet': startup date [Wed Mar 11 07:01:24 GMT 2026]; parent: Root WebApplicationContext]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_REQUESTED_SESSION_ID_VALID = [true]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_SESSION_ID_URL_REWRITING_ENABLED = [false]
mainContent = [/WEB-INF/views/jsp/errors/error.jsp]
encodingFilter.FILTERED = [true]
invalidRequest.FILTERED = [true]
javax.servlet.error.request_uri = [/luna/servlet/media/book/showAllPagesThumbnail]
htitle = [error.htitle]
org.springframework.web.servlet.DispatcherServlet.THEME_RESOLVER = [com.lunaimaging.insight.web.servlet.theme.CollectionThemeResolver@79868909]
javax.servlet.jsp.jstl.fmt.locale.request = [en_GB]
Session Attributes
res = [1]appConfig = [com.lunaimaging.insight.core.domain.ApplicationConfiguration@1e5cb476]
EXTENDED_COLLECTION_PROPERTIES = [ExtendedCollectionsProperties[Manchester~18~18] ]
displayHelpfulTips = [00000000000000000000000000]
CATEGORIZED_COLLECTIONS_COUNT = [0]
AUTHENTICATED_ENTITY = [IpRange[5][130.88.0.0-130.88.255.255] ]
LUNA_COLLECTIONS_IN_CONTEXT = [[MediaCollection[Manchester~4~4]Ahmed Iqbal Ullah Race Relations Collection, MediaCollection[Manchester~93~93]Brethren Collection, MediaCollection[Manchester~26~26]Dante Collection, MediaCollection[Manchester~20~20]Early Printing Collection, MediaCollection[Gaskell2~91~1]Elizabeth Gaskell Collection, MediaCollection[ManchesterDev~95~2]Genizah Collection, MediaCollection[Manchester~12~12]Guardian Collection, MediaCollection[Manchester~10~10]Hebraica Collection, MediaCollection[Manchester~25~25]Library Publications Collection, MediaCollection[maps002~1~1]Maps Collection, MediaCollection[Manchester~11~11]Mary Hamilton Papers, MediaCollection[Man4MedievalVC~4~4]Medieval Collection, MediaCollection[Manchester~19~19]Methodist Collection, MediaCollection[Manchester~18~18]Nashriyah: digital Iranian history آرشیو آنلاین نشریات دانشگاه منچستر, MediaCollection[nonconform~91~1]Non-conformist Collection, MediaCollection[ManchesterDev~93~3]Papyri Collection, MediaCollection[Manchester~24~24]Peterloo Collection, MediaCollection[Manchester~15~15]Photography Collection, MediaCollection[Manchester~91~1]Rylands Collection, MediaCollection[lib1~1~1]The John Rylands Library, MediaCollection[Manchester~14~14]University of Manchester History & Heritage]]
ua = [Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)]
pgs = [50]
IPRANGE_DEFAULT_CREDENTIAL_ID = [12]
StackTrace
java.lang.NumberFormatException: nullat java.lang.Integer: parseInt() Integer.java ( 614 )
at java.lang.Integer: parseInt() Integer.java ( 770 )
at com.lunaimaging.insight.web.controller.MediaBookController: getBookThumbnails() MediaBookController.java ( 341 )
at com.lunaimaging.insight.web.controller.MediaBookController: handleShowAllPagesThumbnailView() MediaBookController.java ( 150 )
at jdk.internal.reflect.GeneratedMethodAccessor1066: invoke() ( -1 )
at jdk.internal.reflect.DelegatingMethodAccessorImpl: invoke() DelegatingMethodAccessorImpl.java ( 43 )
at java.lang.reflect.Method: invoke() Method.java ( 566 )
at org.springframework.web.servlet.mvc.multiaction.MultiActionController: invokeNamedMethod() MultiActionController.java ( 473 )
at org.springframework.web.servlet.mvc.multiaction.MultiActionController: handleRequestInternal() MultiActionController.java ( 411 )
at org.springframework.web.servlet.mvc.AbstractController: handleRequest() AbstractController.java ( 174 )
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter: handle() SimpleControllerHandlerAdapter.java ( 50 )
at org.springframework.web.servlet.DispatcherServlet: doDispatch() DispatcherServlet.java ( 967 )
at org.springframework.web.servlet.DispatcherServlet: doService() DispatcherServlet.java ( 901 )
at org.springframework.web.servlet.FrameworkServlet: processRequest() FrameworkServlet.java ( 970 )
at org.springframework.web.servlet.FrameworkServlet: doGet() FrameworkServlet.java ( 861 )
at javax.servlet.http.HttpServlet: service() HttpServlet.java ( 529 )
at org.springframework.web.servlet.FrameworkServlet: service() FrameworkServlet.java ( 846 )
at javax.servlet.http.HttpServlet: service() HttpServlet.java ( 623 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 199 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.tomcat.websocket.server.WsFilter: doFilter() WsFilter.java ( 51 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.catalina.filters.HttpHeaderSecurityFilter: doFilter() HttpHeaderSecurityFilter.java ( 129 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.logging.log4j.web.Log4jServletFilter: doFilter() Log4jServletFilter.java ( 71 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.catalina.filters.CorsFilter: handleNonCORS() CorsFilter.java ( 333 )
at org.apache.catalina.filters.CorsFilter: doFilter() CorsFilter.java ( 160 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.springframework.web.filter.CharacterEncodingFilter: doFilterInternal() CharacterEncodingFilter.java ( 197 )
at org.springframework.web.filter.OncePerRequestFilter: doFilter() OncePerRequestFilter.java ( 107 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.shiro.web.servlet.ProxiedFilterChain: doFilter() ProxiedFilterChain.java ( 61 )
at org.apache.shiro.web.servlet.AdviceFilter: executeChain() AdviceFilter.java ( 108 )
at org.apache.shiro.web.servlet.AdviceFilter: doFilterInternal() AdviceFilter.java ( 137 )
at org.apache.shiro.web.servlet.OncePerRequestFilter: doFilter() OncePerRequestFilter.java ( 154 )
at org.apache.shiro.web.servlet.ProxiedFilterChain: doFilter() ProxiedFilterChain.java ( 66 )
at org.apache.shiro.web.servlet.AbstractShiroFilter: executeChain() AbstractShiroFilter.java ( 458 )
at org.apache.shiro.web.servlet.AbstractShiroFilter$1: call() AbstractShiroFilter.java ( 373 )
at org.apache.shiro.subject.support.SubjectCallable: doCall() SubjectCallable.java ( 90 )
at org.apache.shiro.subject.support.SubjectCallable: call() SubjectCallable.java ( 83 )
at org.apache.shiro.subject.support.DelegatingSubject: execute() DelegatingSubject.java ( 387 )
at org.apache.shiro.web.servlet.AbstractShiroFilter: doFilterInternal() AbstractShiroFilter.java ( 370 )
at org.apache.shiro.web.servlet.OncePerRequestFilter: doFilter() OncePerRequestFilter.java ( 154 )
at org.springframework.web.filter.DelegatingFilterProxy: invokeDelegate() DelegatingFilterProxy.java ( 347 )
at org.springframework.web.filter.DelegatingFilterProxy: doFilter() DelegatingFilterProxy.java ( 263 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at com.lunaimaging.security.client.filter.HttpsFilter: doFilter() HttpsFilter.java ( 120 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at com.lunaimaging.insight.web.filter.TrackingFilter: doFilter() TrackingFilter.java ( 140 )
at org.apache.catalina.core.ApplicationFilterChain: internalDoFilter() ApplicationFilterChain.java ( 168 )
at org.apache.catalina.core.ApplicationFilterChain: doFilter() ApplicationFilterChain.java ( 144 )
at org.apache.catalina.core.StandardWrapperValve: invoke() StandardWrapperValve.java ( 168 )
at org.apache.catalina.core.StandardContextValve: invoke() StandardContextValve.java ( 90 )
at org.apache.catalina.authenticator.AuthenticatorBase: invoke() AuthenticatorBase.java ( 482 )
at org.apache.catalina.core.StandardHostValve: invoke() StandardHostValve.java ( 130 )
at org.apache.catalina.valves.ErrorReportValve: invoke() ErrorReportValve.java ( 93 )
at org.apache.catalina.core.StandardEngineValve: invoke() StandardEngineValve.java ( 74 )
at org.apache.catalina.connector.CoyoteAdapter: service() CoyoteAdapter.java ( 346 )
at org.apache.coyote.ajp.AjpProcessor: service() AjpProcessor.java ( 428 )
at org.apache.coyote.AbstractProcessorLight: process() AbstractProcessorLight.java ( 63 )
at org.apache.coyote.AbstractProtocol$ConnectionHandler: process() AbstractProtocol.java ( 935 )
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor: doRun() NioEndpoint.java ( 1833 )
at org.apache.tomcat.util.net.SocketProcessorBase: run() SocketProcessorBase.java ( 52 )
at org.apache.tomcat.util.threads.ThreadPoolExecutor: runWorker() ThreadPoolExecutor.java ( 975 )
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker: run() ThreadPoolExecutor.java ( 493 )
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable: run() TaskThread.java ( 63 )
at java.lang.Thread: run() Thread.java ( 829 )