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@235641bb]
org.apache.shiro.web.servlet.ShiroHttpServletRequestREFERENCED_SESSION_ID_SOURCE = [cookie]
org.springframework.web.servlet.resource.ResourceUrlProvider = [org.springframework.web.servlet.resource.ResourceUrlProvider@4f2da508]
pageTitle = []
pageSize = [50]
REQUEST_URL = [https://luna.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@1e1cc292]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_REQUESTED_SESSION_ID = [36749ceb-1ea3-452a-8c93-107c87ae7abf]
org.springframework.web.servlet.HandlerMapping.bestMatchingPattern = [/media/book/showAllPagesThumbnail]
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@2090479b]
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 = [348aef6026d2e3a83d98737c36bb0f26b4d4bda3a08af5436e74db97890dc573]
rc = [org.springframework.web.servlet.support.RequestContext@1a83b276]
javax.servlet.include.servlet_path = [/WEB-INF/views/jsp/errors/error.jsp]
javax.servlet.forward.query_string = [mid=Man4MedievalVC~4~4~990849~149140]
quickSearch = [/WEB-INF/views/jsp/common/quickSearch.jsp]
org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping = [/media/book/showAllPagesThumbnail]
javax.servlet.error.exception = [java.lang.NullPointerException: Cannot invoke "com.lunaimaging.insight.core.domain.Media.getIdentity()" because "media" is null]
javax.servlet.forward.context_path = [/luna]
cors.isCorsRequest = [false]
org.springframework.web.util.UrlPathHelper.PATH = [/media/book/showAllPagesThumbnail]
org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER = [org.springframework.web.context.request.async.WebAsyncManager@14ee90f1]
org.springframework.web.servlet.HandlerMapping.bestMatchingHandler = [com.lunaimaging.insight.web.controller.MediaBookController#handleShowAllPagesThumbnailView(HttpServletRequest, HttpServletResponse)]
javax.servlet.error.status_code = [200]
org.springframework.web.servlet.DispatcherServlet.CONTEXT = [WebApplicationContext for namespace 'luna-servlet', started on Fri Aug 28 08:01:05 BST 2026, parent: Root WebApplicationContext]
javax.servlet.include.request_uri = [/luna/WEB-INF/views/jsp/errors/error.jsp]
thumbnailResolution = [2]
javax.servlet.include.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@4a533f30]
shiroFilter.FILTERED = [true]
javax.servlet.error.exception_type = [class java.lang.NullPointerException]
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@16f4d24a,@org.springframework.format.annotation.NumberFormat java.lang.Long -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.LocalDate -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@6085e7cb @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.LocalDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@76a94343 @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.LocalTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@29692e85 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.OffsetDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@42abd8b3 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.OffsetTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@7598707d @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.ZonedDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@b7b60ea @org.springframework.format.annotation.DateTimeFormat java.util.Calendar -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a @org.springframework.format.annotation.DateTimeFormat java.util.Date -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a @org.springframework.format.annotation.NumberFormat java.lang.Byte -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.lang.Double -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.lang.Float -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.lang.Integer -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.lang.Short -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.math.BigDecimal -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.math.BigInteger -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@15e5654d java.lang.Character -> java.lang.Number : org.springframework.core.convert.support.CharacterToNumberFactory@4feae61f java.lang.Character -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@33e48acb java.lang.Enum -> java.lang.Integer : org.springframework.core.convert.support.EnumToIntegerConverter@6d5b6128 java.lang.Enum -> java.lang.String : org.springframework.core.convert.support.EnumToStringConverter@1f414824 java.lang.Integer -> java.lang.Enum : org.springframework.core.convert.support.IntegerToEnumConverterFactory@7b945088 java.lang.Long -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$LongToInstantConverter@61c00cf2 java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@7cd69dcc,java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@3711d32 java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@28e8c5c7,java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@5211678a java.lang.Number -> java.lang.Character : org.springframework.core.convert.support.NumberToCharacterConverter@18f17042 java.lang.Number -> java.lang.Number : org.springframework.core.convert.support.NumberToNumberConverterFactory@2c82f07e java.lang.Number -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@5b56aa33 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.lang.Long: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a,java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Long: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.LocalDate: org.springframework.format.datetime.standard.TemporalAccessorParser@24fb4dc5 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.LocalDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@3425d79b java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.LocalTime: org.springframework.format.datetime.standard.TemporalAccessorParser@178bb5e2 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.OffsetDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@2ef29748 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.OffsetTime: org.springframework.format.datetime.standard.TemporalAccessorParser@2a730150 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.ZonedDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@25783dfd java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Calendar: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Date: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Byte: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Double: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Float: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Integer: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Short: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigDecimal: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigInteger: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> java.lang.Boolean : org.springframework.core.convert.support.StringToBooleanConverter@5eb4c2c7 java.lang.String -> java.lang.Character : org.springframework.core.convert.support.StringToCharacterConverter@dfe3a4c java.lang.String -> java.lang.Enum : org.springframework.core.convert.support.StringToEnumConverterFactory@84635fc java.lang.String -> java.lang.Number : org.springframework.core.convert.support.StringToNumberConverterFactory@65fbe68c java.lang.String -> java.nio.charset.Charset : org.springframework.core.convert.support.StringToCharsetConverter@4a427abc java.lang.String -> java.time.Duration: org.springframework.format.datetime.standard.DurationFormatter@5398c29f java.lang.String -> java.time.Instant: org.springframework.format.datetime.standard.InstantFormatter@e24e66d java.lang.String -> java.time.Month: org.springframework.format.datetime.standard.MonthFormatter@19c8120b java.lang.String -> java.time.MonthDay: org.springframework.format.datetime.standard.MonthDayFormatter@2e739456 java.lang.String -> java.time.Period: org.springframework.format.datetime.standard.PeriodFormatter@4a5d8444 java.lang.String -> java.time.Year: org.springframework.format.datetime.standard.YearFormatter@2977ee27 java.lang.String -> java.time.YearMonth: org.springframework.format.datetime.standard.YearMonthFormatter@78cb5ab0 java.lang.String -> java.util.Currency : org.springframework.core.convert.support.StringToCurrencyConverter@5d1a9067 java.lang.String -> java.util.Locale : org.springframework.core.convert.support.StringToLocaleConverter@5a2404f4 java.lang.String -> java.util.Properties : org.springframework.core.convert.support.StringToPropertiesConverter@9517cdd java.lang.String -> java.util.TimeZone : org.springframework.core.convert.support.StringToTimeZoneConverter@1e8cb51f java.lang.String -> java.util.UUID : org.springframework.core.convert.support.StringToUUIDConverter@aed2d71 java.nio.charset.Charset -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@4fa73ef java.time.Duration -> java.lang.String : org.springframework.format.datetime.standard.DurationFormatter@5398c29f java.time.Instant -> java.lang.Long : org.springframework.format.datetime.standard.DateTimeConverters$InstantToLongConverter@344800a9 java.time.Instant -> java.lang.String : org.springframework.format.datetime.standard.InstantFormatter@e24e66d java.time.LocalDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalDateConverter@3c6f0931 java.time.LocalDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalTimeConverter@13dcbb0c java.time.Month -> java.lang.String : org.springframework.format.datetime.standard.MonthFormatter@19c8120b java.time.MonthDay -> java.lang.String : org.springframework.format.datetime.standard.MonthDayFormatter@2e739456 java.time.OffsetDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToInstantConverter@619a9ee2 java.time.OffsetDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateConverter@1221983b java.time.OffsetDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateTimeConverter@4a59a8a3 java.time.OffsetDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalTimeConverter@70b72da0 java.time.OffsetDateTime -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToZonedDateTimeConverter@6bbbdf8d java.time.Period -> java.lang.String : org.springframework.format.datetime.standard.PeriodFormatter@4a5d8444 java.time.Year -> java.lang.String : org.springframework.format.datetime.standard.YearFormatter@2977ee27 java.time.YearMonth -> java.lang.String : org.springframework.format.datetime.standard.YearMonthFormatter@78cb5ab0 java.time.ZoneId -> java.util.TimeZone : org.springframework.core.convert.support.ZoneIdToTimeZoneConverter@79ae1468 java.time.ZonedDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToInstantConverter@67c529b1 java.time.ZonedDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateConverter@1fd05c9b java.time.ZonedDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateTimeConverter@53a42f42 java.time.ZonedDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalTimeConverter@2da2aebe java.time.ZonedDateTime -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToOffsetDateTimeConverter@7d46b08d java.time.ZonedDateTime -> java.util.Calendar : org.springframework.core.convert.support.ZonedDateTimeToCalendarConverter@51e787ae java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@75215f23,java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@5e28a678 java.util.Calendar -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToInstantConverter@6dc368fd java.util.Calendar -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateConverter@3ac79b39 java.util.Calendar -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateTimeConverter@585ff563 java.util.Calendar -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalTimeConverter@34d9ca55 java.util.Calendar -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToOffsetDateTimeConverter@1a2d8c0c java.util.Calendar -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToZonedDateTimeConverter@14e6a2ad java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@38778908,java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@2b978d24 java.util.Currency -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@2fdf69cd java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@1062523a,java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@76725713 java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@4bd7bd9,java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@538f05aa java.util.Locale -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@365a1f29 java.util.Properties -> java.lang.String : org.springframework.core.convert.support.PropertiesToStringConverter@4d904df7 java.util.UUID -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@5427125c org.springframework.core.convert.support.ArrayToArrayConverter@72de88ce org.springframework.core.convert.support.ArrayToCollectionConverter@58ea623b org.springframework.core.convert.support.ArrayToObjectConverter@3942cfb org.springframework.core.convert.support.ArrayToStringConverter@75109125 org.springframework.core.convert.support.ByteBufferConverter@6d3c07b3 org.springframework.core.convert.support.ByteBufferConverter@6d3c07b3 org.springframework.core.convert.support.ByteBufferConverter@6d3c07b3 org.springframework.core.convert.support.ByteBufferConverter@6d3c07b3 org.springframework.core.convert.support.CollectionToArrayConverter@fcd154 org.springframework.core.convert.support.CollectionToCollectionConverter@7cc8a2a3 org.springframework.core.convert.support.CollectionToObjectConverter@48241b32 org.springframework.core.convert.support.CollectionToStringConverter@39294f33 org.springframework.core.convert.support.FallbackObjectToStringConverter@1e0e18c2 org.springframework.core.convert.support.IdToEntityConverter@f9f7f0d,org.springframework.core.convert.support.ObjectToObjectConverter@670a0847 org.springframework.core.convert.support.MapToMapConverter@2b04589a org.springframework.core.convert.support.ObjectToArrayConverter@3d2a5863 org.springframework.core.convert.support.ObjectToCollectionConverter@2e9395a8 org.springframework.core.convert.support.ObjectToOptionalConverter@5aeadd21 org.springframework.core.convert.support.ObjectToOptionalConverter@5aeadd21 org.springframework.core.convert.support.ObjectToOptionalConverter@5aeadd21 org.springframework.core.convert.support.StreamConverter@183e054a org.springframework.core.convert.support.StreamConverter@183e054a org.springframework.core.convert.support.StreamConverter@183e054a org.springframework.core.convert.support.StreamConverter@183e054a org.springframework.core.convert.support.StringToArrayConverter@478dafaf org.springframework.core.convert.support.StringToCollectionConverter@64d355a8 ]
javax.servlet.forward.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@5b99f458]
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 = [Cannot invoke "com.lunaimaging.insight.core.domain.Media.getIdentity()" because "media" is null]
javax.servlet.request.cipher_suite = [TLS_AES_256_GCM_SHA384]
org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE = [WebApplicationContext for namespace 'luna-servlet', started on Fri Aug 28 08:01:05 BST 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]
org.springframework.web.servlet.HandlerMapping.uriTemplateVariables = [{}]
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@7ec35553]
javax.servlet.jsp.jstl.fmt.locale.request = [en_GB]
appConfig = [com.lunaimaging.insight.core.domain.ApplicationConfiguration@48b49cd3]
EXTENDED_COLLECTION_PROPERTIES = [ExtendedCollectionsProperties[All Collections] ]
displayHelpfulTips = [00000000000000000000000000]
CATEGORIZED_COLLECTIONS_COUNT = [0]
AUTHENTICATED_ENTITY = [IpRange[5][0.0.0.0-0] ]
LUNA_COLLECTIONS_IN_CONTEXT = [[MediaCollection[Manchester~4~4]Ahmed Iqbal Ullah Race Relations Collection, MediaCollection[Manchester~93~93]Brethren Collection, MediaCollection[Manchester~95~95]Coptic Limbo 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 com.lunaimaging.insight.web.controller.MediaBookController: getBookThumbnails() MediaBookController.java ( 344 )
at com.lunaimaging.insight.web.controller.MediaBookController: handleShowAllPagesThumbnailView() MediaBookController.java ( 163 )
at jdk.internal.reflect.GeneratedMethodAccessor1319: invoke() ( -1 )
at jdk.internal.reflect.DelegatingMethodAccessorImpl: invoke() DelegatingMethodAccessorImpl.java ( 43 )
at java.lang.reflect.Method: invoke() Method.java ( 569 )
at org.springframework.web.method.support.InvocableHandlerMethod: doInvoke() InvocableHandlerMethod.java ( 205 )
at org.springframework.web.method.support.InvocableHandlerMethod: invokeForRequest() InvocableHandlerMethod.java ( 150 )
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod: invokeAndHandle() ServletInvocableHandlerMethod.java ( 117 )
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter: invokeHandlerMethod() RequestMappingHandlerAdapter.java ( 903 )
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter: handleInternal() RequestMappingHandlerAdapter.java ( 809 )
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter: handle() AbstractHandlerMethodAdapter.java ( 87 )
at org.springframework.web.servlet.DispatcherServlet: doDispatch() DispatcherServlet.java ( 1072 )
at org.springframework.web.servlet.DispatcherServlet: doService() DispatcherServlet.java ( 965 )
at org.springframework.web.servlet.FrameworkServlet: processRequest() FrameworkServlet.java ( 1006 )
at org.springframework.web.servlet.FrameworkServlet: doGet() FrameworkServlet.java ( 898 )
at javax.servlet.http.HttpServlet: service() HttpServlet.java ( 529 )
at org.springframework.web.servlet.FrameworkServlet: service() FrameworkServlet.java ( 883 )
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.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 ( 201 )
at org.springframework.web.filter.OncePerRequestFilter: doFilter() OncePerRequestFilter.java ( 117 )
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 ( 354 )
at org.springframework.web.filter.DelegatingFilterProxy: doFilter() DelegatingFilterProxy.java ( 267 )
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.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.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 ( 840 )
Request URI
/luna/servlet/media/book/showAllPagesThumbnailParameters
mid = [Man4MedievalVC~4~4~990849~149140]Request Attributes
exception = [java.lang.NullPointerException: Cannot invoke "com.lunaimaging.insight.core.domain.Media.getIdentity()" because "media" is 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@235641bb]
org.apache.shiro.web.servlet.ShiroHttpServletRequestREFERENCED_SESSION_ID_SOURCE = [cookie]
org.springframework.web.servlet.resource.ResourceUrlProvider = [org.springframework.web.servlet.resource.ResourceUrlProvider@4f2da508]
pageTitle = []
pageSize = [50]
REQUEST_URL = [https://luna.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@1e1cc292]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_REQUESTED_SESSION_ID = [36749ceb-1ea3-452a-8c93-107c87ae7abf]
org.springframework.web.servlet.HandlerMapping.bestMatchingPattern = [/media/book/showAllPagesThumbnail]
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@2090479b]
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 = [348aef6026d2e3a83d98737c36bb0f26b4d4bda3a08af5436e74db97890dc573]
rc = [org.springframework.web.servlet.support.RequestContext@1a83b276]
javax.servlet.include.servlet_path = [/WEB-INF/views/jsp/errors/error.jsp]
javax.servlet.forward.query_string = [mid=Man4MedievalVC~4~4~990849~149140]
quickSearch = [/WEB-INF/views/jsp/common/quickSearch.jsp]
org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping = [/media/book/showAllPagesThumbnail]
javax.servlet.error.exception = [java.lang.NullPointerException: Cannot invoke "com.lunaimaging.insight.core.domain.Media.getIdentity()" because "media" is null]
javax.servlet.forward.context_path = [/luna]
cors.isCorsRequest = [false]
org.springframework.web.util.UrlPathHelper.PATH = [/media/book/showAllPagesThumbnail]
org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER = [org.springframework.web.context.request.async.WebAsyncManager@14ee90f1]
org.springframework.web.servlet.HandlerMapping.bestMatchingHandler = [com.lunaimaging.insight.web.controller.MediaBookController#handleShowAllPagesThumbnailView(HttpServletRequest, HttpServletResponse)]
javax.servlet.error.status_code = [200]
org.springframework.web.servlet.DispatcherServlet.CONTEXT = [WebApplicationContext for namespace 'luna-servlet', started on Fri Aug 28 08:01:05 BST 2026, parent: Root WebApplicationContext]
javax.servlet.include.request_uri = [/luna/WEB-INF/views/jsp/errors/error.jsp]
thumbnailResolution = [2]
javax.servlet.include.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@4a533f30]
shiroFilter.FILTERED = [true]
javax.servlet.error.exception_type = [class java.lang.NullPointerException]
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@16f4d24a,@org.springframework.format.annotation.NumberFormat java.lang.Long -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.LocalDate -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@6085e7cb @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.LocalDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@76a94343 @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.LocalTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@29692e85 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.OffsetDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@42abd8b3 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.OffsetTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@7598707d @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.time.ZonedDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@b7b60ea @org.springframework.format.annotation.DateTimeFormat java.util.Calendar -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a @org.springframework.format.annotation.DateTimeFormat java.util.Date -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a @org.springframework.format.annotation.NumberFormat java.lang.Byte -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.lang.Double -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.lang.Float -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.lang.Integer -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.lang.Short -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.math.BigDecimal -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 @org.springframework.format.annotation.NumberFormat java.math.BigInteger -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@15e5654d java.lang.Character -> java.lang.Number : org.springframework.core.convert.support.CharacterToNumberFactory@4feae61f java.lang.Character -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@33e48acb java.lang.Enum -> java.lang.Integer : org.springframework.core.convert.support.EnumToIntegerConverter@6d5b6128 java.lang.Enum -> java.lang.String : org.springframework.core.convert.support.EnumToStringConverter@1f414824 java.lang.Integer -> java.lang.Enum : org.springframework.core.convert.support.IntegerToEnumConverterFactory@7b945088 java.lang.Long -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$LongToInstantConverter@61c00cf2 java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@7cd69dcc,java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@3711d32 java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@28e8c5c7,java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@5211678a java.lang.Number -> java.lang.Character : org.springframework.core.convert.support.NumberToCharacterConverter@18f17042 java.lang.Number -> java.lang.Number : org.springframework.core.convert.support.NumberToNumberConverterFactory@2c82f07e java.lang.Number -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@5b56aa33 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.lang.Long: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a,java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Long: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.LocalDate: org.springframework.format.datetime.standard.TemporalAccessorParser@24fb4dc5 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.LocalDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@3425d79b java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.LocalTime: org.springframework.format.datetime.standard.TemporalAccessorParser@178bb5e2 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.OffsetDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@2ef29748 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.OffsetTime: org.springframework.format.datetime.standard.TemporalAccessorParser@2a730150 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@47c434f1,java.lang.String -> java.time.ZonedDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@25783dfd java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Calendar: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Date: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@16f4d24a java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Byte: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Double: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Float: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Integer: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Short: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigDecimal: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigInteger: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@33cfa284 java.lang.String -> java.lang.Boolean : org.springframework.core.convert.support.StringToBooleanConverter@5eb4c2c7 java.lang.String -> java.lang.Character : org.springframework.core.convert.support.StringToCharacterConverter@dfe3a4c java.lang.String -> java.lang.Enum : org.springframework.core.convert.support.StringToEnumConverterFactory@84635fc java.lang.String -> java.lang.Number : org.springframework.core.convert.support.StringToNumberConverterFactory@65fbe68c java.lang.String -> java.nio.charset.Charset : org.springframework.core.convert.support.StringToCharsetConverter@4a427abc java.lang.String -> java.time.Duration: org.springframework.format.datetime.standard.DurationFormatter@5398c29f java.lang.String -> java.time.Instant: org.springframework.format.datetime.standard.InstantFormatter@e24e66d java.lang.String -> java.time.Month: org.springframework.format.datetime.standard.MonthFormatter@19c8120b java.lang.String -> java.time.MonthDay: org.springframework.format.datetime.standard.MonthDayFormatter@2e739456 java.lang.String -> java.time.Period: org.springframework.format.datetime.standard.PeriodFormatter@4a5d8444 java.lang.String -> java.time.Year: org.springframework.format.datetime.standard.YearFormatter@2977ee27 java.lang.String -> java.time.YearMonth: org.springframework.format.datetime.standard.YearMonthFormatter@78cb5ab0 java.lang.String -> java.util.Currency : org.springframework.core.convert.support.StringToCurrencyConverter@5d1a9067 java.lang.String -> java.util.Locale : org.springframework.core.convert.support.StringToLocaleConverter@5a2404f4 java.lang.String -> java.util.Properties : org.springframework.core.convert.support.StringToPropertiesConverter@9517cdd java.lang.String -> java.util.TimeZone : org.springframework.core.convert.support.StringToTimeZoneConverter@1e8cb51f java.lang.String -> java.util.UUID : org.springframework.core.convert.support.StringToUUIDConverter@aed2d71 java.nio.charset.Charset -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@4fa73ef java.time.Duration -> java.lang.String : org.springframework.format.datetime.standard.DurationFormatter@5398c29f java.time.Instant -> java.lang.Long : org.springframework.format.datetime.standard.DateTimeConverters$InstantToLongConverter@344800a9 java.time.Instant -> java.lang.String : org.springframework.format.datetime.standard.InstantFormatter@e24e66d java.time.LocalDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalDateConverter@3c6f0931 java.time.LocalDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalTimeConverter@13dcbb0c java.time.Month -> java.lang.String : org.springframework.format.datetime.standard.MonthFormatter@19c8120b java.time.MonthDay -> java.lang.String : org.springframework.format.datetime.standard.MonthDayFormatter@2e739456 java.time.OffsetDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToInstantConverter@619a9ee2 java.time.OffsetDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateConverter@1221983b java.time.OffsetDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateTimeConverter@4a59a8a3 java.time.OffsetDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalTimeConverter@70b72da0 java.time.OffsetDateTime -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToZonedDateTimeConverter@6bbbdf8d java.time.Period -> java.lang.String : org.springframework.format.datetime.standard.PeriodFormatter@4a5d8444 java.time.Year -> java.lang.String : org.springframework.format.datetime.standard.YearFormatter@2977ee27 java.time.YearMonth -> java.lang.String : org.springframework.format.datetime.standard.YearMonthFormatter@78cb5ab0 java.time.ZoneId -> java.util.TimeZone : org.springframework.core.convert.support.ZoneIdToTimeZoneConverter@79ae1468 java.time.ZonedDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToInstantConverter@67c529b1 java.time.ZonedDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateConverter@1fd05c9b java.time.ZonedDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateTimeConverter@53a42f42 java.time.ZonedDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalTimeConverter@2da2aebe java.time.ZonedDateTime -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToOffsetDateTimeConverter@7d46b08d java.time.ZonedDateTime -> java.util.Calendar : org.springframework.core.convert.support.ZonedDateTimeToCalendarConverter@51e787ae java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@75215f23,java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@5e28a678 java.util.Calendar -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToInstantConverter@6dc368fd java.util.Calendar -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateConverter@3ac79b39 java.util.Calendar -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateTimeConverter@585ff563 java.util.Calendar -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalTimeConverter@34d9ca55 java.util.Calendar -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToOffsetDateTimeConverter@1a2d8c0c java.util.Calendar -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToZonedDateTimeConverter@14e6a2ad java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@38778908,java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@2b978d24 java.util.Currency -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@2fdf69cd java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@1062523a,java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@76725713 java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@4bd7bd9,java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@538f05aa java.util.Locale -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@365a1f29 java.util.Properties -> java.lang.String : org.springframework.core.convert.support.PropertiesToStringConverter@4d904df7 java.util.UUID -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@5427125c org.springframework.core.convert.support.ArrayToArrayConverter@72de88ce org.springframework.core.convert.support.ArrayToCollectionConverter@58ea623b org.springframework.core.convert.support.ArrayToObjectConverter@3942cfb org.springframework.core.convert.support.ArrayToStringConverter@75109125 org.springframework.core.convert.support.ByteBufferConverter@6d3c07b3 org.springframework.core.convert.support.ByteBufferConverter@6d3c07b3 org.springframework.core.convert.support.ByteBufferConverter@6d3c07b3 org.springframework.core.convert.support.ByteBufferConverter@6d3c07b3 org.springframework.core.convert.support.CollectionToArrayConverter@fcd154 org.springframework.core.convert.support.CollectionToCollectionConverter@7cc8a2a3 org.springframework.core.convert.support.CollectionToObjectConverter@48241b32 org.springframework.core.convert.support.CollectionToStringConverter@39294f33 org.springframework.core.convert.support.FallbackObjectToStringConverter@1e0e18c2 org.springframework.core.convert.support.IdToEntityConverter@f9f7f0d,org.springframework.core.convert.support.ObjectToObjectConverter@670a0847 org.springframework.core.convert.support.MapToMapConverter@2b04589a org.springframework.core.convert.support.ObjectToArrayConverter@3d2a5863 org.springframework.core.convert.support.ObjectToCollectionConverter@2e9395a8 org.springframework.core.convert.support.ObjectToOptionalConverter@5aeadd21 org.springframework.core.convert.support.ObjectToOptionalConverter@5aeadd21 org.springframework.core.convert.support.ObjectToOptionalConverter@5aeadd21 org.springframework.core.convert.support.StreamConverter@183e054a org.springframework.core.convert.support.StreamConverter@183e054a org.springframework.core.convert.support.StreamConverter@183e054a org.springframework.core.convert.support.StreamConverter@183e054a org.springframework.core.convert.support.StringToArrayConverter@478dafaf org.springframework.core.convert.support.StringToCollectionConverter@64d355a8 ]
javax.servlet.forward.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@5b99f458]
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 = [Cannot invoke "com.lunaimaging.insight.core.domain.Media.getIdentity()" because "media" is null]
javax.servlet.request.cipher_suite = [TLS_AES_256_GCM_SHA384]
org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE = [WebApplicationContext for namespace 'luna-servlet', started on Fri Aug 28 08:01:05 BST 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]
org.springframework.web.servlet.HandlerMapping.uriTemplateVariables = [{}]
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@7ec35553]
javax.servlet.jsp.jstl.fmt.locale.request = [en_GB]
Session Attributes
res = [2]appConfig = [com.lunaimaging.insight.core.domain.ApplicationConfiguration@48b49cd3]
EXTENDED_COLLECTION_PROPERTIES = [ExtendedCollectionsProperties[All Collections] ]
displayHelpfulTips = [00000000000000000000000000]
CATEGORIZED_COLLECTIONS_COUNT = [0]
AUTHENTICATED_ENTITY = [IpRange[5][0.0.0.0-0] ]
LUNA_COLLECTIONS_IN_CONTEXT = [[MediaCollection[Manchester~4~4]Ahmed Iqbal Ullah Race Relations Collection, MediaCollection[Manchester~93~93]Brethren Collection, MediaCollection[Manchester~95~95]Coptic Limbo 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.NullPointerException: Cannot invoke "com.lunaimaging.insight.core.domain.Media.getIdentity()" because "media" is nullat com.lunaimaging.insight.web.controller.MediaBookController: getBookThumbnails() MediaBookController.java ( 344 )
at com.lunaimaging.insight.web.controller.MediaBookController: handleShowAllPagesThumbnailView() MediaBookController.java ( 163 )
at jdk.internal.reflect.GeneratedMethodAccessor1319: invoke() ( -1 )
at jdk.internal.reflect.DelegatingMethodAccessorImpl: invoke() DelegatingMethodAccessorImpl.java ( 43 )
at java.lang.reflect.Method: invoke() Method.java ( 569 )
at org.springframework.web.method.support.InvocableHandlerMethod: doInvoke() InvocableHandlerMethod.java ( 205 )
at org.springframework.web.method.support.InvocableHandlerMethod: invokeForRequest() InvocableHandlerMethod.java ( 150 )
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod: invokeAndHandle() ServletInvocableHandlerMethod.java ( 117 )
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter: invokeHandlerMethod() RequestMappingHandlerAdapter.java ( 903 )
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter: handleInternal() RequestMappingHandlerAdapter.java ( 809 )
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter: handle() AbstractHandlerMethodAdapter.java ( 87 )
at org.springframework.web.servlet.DispatcherServlet: doDispatch() DispatcherServlet.java ( 1072 )
at org.springframework.web.servlet.DispatcherServlet: doService() DispatcherServlet.java ( 965 )
at org.springframework.web.servlet.FrameworkServlet: processRequest() FrameworkServlet.java ( 1006 )
at org.springframework.web.servlet.FrameworkServlet: doGet() FrameworkServlet.java ( 898 )
at javax.servlet.http.HttpServlet: service() HttpServlet.java ( 529 )
at org.springframework.web.servlet.FrameworkServlet: service() FrameworkServlet.java ( 883 )
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.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 ( 201 )
at org.springframework.web.filter.OncePerRequestFilter: doFilter() OncePerRequestFilter.java ( 117 )
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 ( 354 )
at org.springframework.web.filter.DelegatingFilterProxy: doFilter() DelegatingFilterProxy.java ( 267 )
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.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.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 ( 840 )