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@568ab3b5]
pageTitle = []
pageSize = [50]
REQUEST_URL = [https://luna.library.wmich.edu/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@360df150]
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@66f47c5f]
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 = [fb6548c54c796affd822095478ff40fc0bae65df6cd6403c0222031c9c09ee19]
rc = [org.springframework.web.servlet.support.RequestContext@2e016502]
javax.servlet.include.servlet_path = [/WEB-INF/views/jsp/errors/error.jsp]
javax.servlet.forward.query_string = [mid=wmich~12~12~14~163294]
quickSearch = [/WEB-INF/views/jsp/common/quickSearch.jsp]
org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping = [showAllPagesThumbnail]
javax.servlet.error.exception = [java.lang.NullPointerException]
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@342cf376]
org.springframework.web.servlet.HandlerMapping.bestMatchingHandler = [com.lunaimaging.insight.web.controller.MediaBookController@24d3105f]
javax.servlet.error.status_code = [200]
org.springframework.web.servlet.DispatcherServlet.CONTEXT = [WebApplicationContext for namespace 'luna-servlet': startup date [Wed Feb 25 17:45:31 UTC 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@787e8eda]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_REFERENCED_SESSION_IS_NEW = [true]
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@75ea319,@org.springframework.format.annotation.NumberFormat java.lang.Long -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.LocalDate -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@7767785e @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.LocalDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@cc43fdd @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.LocalTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@304d1424 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.OffsetDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@43333432 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.OffsetTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@3da7432f @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.ZonedDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@46f14bc6 @org.springframework.format.annotation.DateTimeFormat java.util.Calendar -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319 @org.springframework.format.annotation.DateTimeFormat java.util.Date -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319 @org.springframework.format.annotation.NumberFormat java.lang.Byte -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.lang.Double -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.lang.Float -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.lang.Integer -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.lang.Short -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.math.BigDecimal -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.math.BigInteger -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@58ab272f java.lang.Character -> java.lang.Number : org.springframework.core.convert.support.CharacterToNumberFactory@6ac84b71 java.lang.Character -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@105b4f0c java.lang.Enum -> java.lang.Integer : org.springframework.core.convert.support.EnumToIntegerConverter@58c3e64e java.lang.Enum -> java.lang.String : org.springframework.core.convert.support.EnumToStringConverter@5a5baa82 java.lang.Integer -> java.lang.Enum : org.springframework.core.convert.support.IntegerToEnumConverterFactory@59d03004 java.lang.Long -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$LongToInstantConverter@36f26915 java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@220063cb,java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@aaa3402 java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@1190ea20,java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@60848601 java.lang.Number -> java.lang.Character : org.springframework.core.convert.support.NumberToCharacterConverter@7ceac17f java.lang.Number -> java.lang.Number : org.springframework.core.convert.support.NumberToNumberConverterFactory@11d62e98 java.lang.Number -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@5fb921a2 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.lang.Long: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319,java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Long: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.LocalDate: org.springframework.format.datetime.standard.TemporalAccessorParser@52781d66 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.LocalDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@1ec5900e java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.LocalTime: org.springframework.format.datetime.standard.TemporalAccessorParser@40ad1a1e java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.OffsetDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@714499ba java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.OffsetTime: org.springframework.format.datetime.standard.TemporalAccessorParser@75ec63d3 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.ZonedDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@6ea4c4ec java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Calendar: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Date: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Byte: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Double: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Float: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Integer: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Short: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigDecimal: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigInteger: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> java.lang.Boolean : org.springframework.core.convert.support.StringToBooleanConverter@12c23954 java.lang.String -> java.lang.Character : org.springframework.core.convert.support.StringToCharacterConverter@30d91561 java.lang.String -> java.lang.Enum : org.springframework.core.convert.support.StringToEnumConverterFactory@7260e47c java.lang.String -> java.lang.Number : org.springframework.core.convert.support.StringToNumberConverterFactory@6c1009b9 java.lang.String -> java.nio.charset.Charset : org.springframework.core.convert.support.StringToCharsetConverter@72f54ff3 java.lang.String -> java.time.Duration: org.springframework.format.datetime.standard.DurationFormatter@7dc104a4 java.lang.String -> java.time.Instant: org.springframework.format.datetime.standard.InstantFormatter@2fa44bf8 java.lang.String -> java.time.MonthDay: org.springframework.format.datetime.standard.MonthDayFormatter@66536f33 java.lang.String -> java.time.Period: org.springframework.format.datetime.standard.PeriodFormatter@7a788eff java.lang.String -> java.time.YearMonth: org.springframework.format.datetime.standard.YearMonthFormatter@6ba50234 java.lang.String -> java.util.Currency : org.springframework.core.convert.support.StringToCurrencyConverter@3567de29 java.lang.String -> java.util.Locale : org.springframework.core.convert.support.StringToLocaleConverter@2d75aa2e java.lang.String -> java.util.Properties : org.springframework.core.convert.support.StringToPropertiesConverter@2f5ff932 java.lang.String -> java.util.TimeZone : org.springframework.core.convert.support.StringToTimeZoneConverter@393e7d5b java.lang.String -> java.util.UUID : org.springframework.core.convert.support.StringToUUIDConverter@89e02fd java.nio.charset.Charset -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@35432675 java.time.Duration -> java.lang.String : org.springframework.format.datetime.standard.DurationFormatter@7dc104a4 java.time.Instant -> java.lang.Long : org.springframework.format.datetime.standard.DateTimeConverters$InstantToLongConverter@6a311cd9 java.time.Instant -> java.lang.String : org.springframework.format.datetime.standard.InstantFormatter@2fa44bf8 java.time.LocalDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalDateConverter@1c7d0e9d java.time.LocalDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalTimeConverter@588d279d java.time.MonthDay -> java.lang.String : org.springframework.format.datetime.standard.MonthDayFormatter@66536f33 java.time.OffsetDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToInstantConverter@63378071 java.time.OffsetDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateConverter@351542d9 java.time.OffsetDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateTimeConverter@7830e20 java.time.OffsetDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalTimeConverter@15b1db3b java.time.OffsetDateTime -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToZonedDateTimeConverter@7cab06b7 java.time.Period -> java.lang.String : org.springframework.format.datetime.standard.PeriodFormatter@7a788eff java.time.YearMonth -> java.lang.String : org.springframework.format.datetime.standard.YearMonthFormatter@6ba50234 java.time.ZoneId -> java.util.TimeZone : org.springframework.core.convert.support.ZoneIdToTimeZoneConverter@513d9f59 java.time.ZonedDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToInstantConverter@e8eabac java.time.ZonedDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateConverter@7932197c java.time.ZonedDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateTimeConverter@569ec35b java.time.ZonedDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalTimeConverter@22e3387c java.time.ZonedDateTime -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToOffsetDateTimeConverter@679ea7da java.time.ZonedDateTime -> java.util.Calendar : org.springframework.core.convert.support.ZonedDateTimeToCalendarConverter@1b51fc39 java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@2a7d0775,java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@6c888148 java.util.Calendar -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToInstantConverter@6c7ca06f java.util.Calendar -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateConverter@431338e5 java.util.Calendar -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateTimeConverter@435afdd1 java.util.Calendar -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalTimeConverter@1c781cfe java.util.Calendar -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToOffsetDateTimeConverter@67a90419 java.util.Calendar -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToZonedDateTimeConverter@78c4f72f java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@f7e537a,java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@3f39db88 java.util.Currency -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@770dbaf7 java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@51e23dab,java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@3740e6e3 java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@3d050a90,java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@4fb12042 java.util.Locale -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@2afd0ab8 java.util.Properties -> java.lang.String : org.springframework.core.convert.support.PropertiesToStringConverter@3030222 java.util.UUID -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@12dedb1b org.springframework.core.convert.support.ArrayToArrayConverter@21e0565d org.springframework.core.convert.support.ArrayToCollectionConverter@4298361b org.springframework.core.convert.support.ArrayToObjectConverter@6204c314 org.springframework.core.convert.support.ArrayToStringConverter@169b0d7f org.springframework.core.convert.support.ByteBufferConverter@6b45b73a org.springframework.core.convert.support.ByteBufferConverter@6b45b73a org.springframework.core.convert.support.ByteBufferConverter@6b45b73a org.springframework.core.convert.support.ByteBufferConverter@6b45b73a org.springframework.core.convert.support.CollectionToArrayConverter@59913e78 org.springframework.core.convert.support.CollectionToCollectionConverter@45824779 org.springframework.core.convert.support.CollectionToObjectConverter@1a5667 org.springframework.core.convert.support.CollectionToStringConverter@26505e86 org.springframework.core.convert.support.FallbackObjectToStringConverter@2a8f9cad org.springframework.core.convert.support.IdToEntityConverter@5deb740e,org.springframework.core.convert.support.ObjectToObjectConverter@17751e4d org.springframework.core.convert.support.MapToMapConverter@4629993c org.springframework.core.convert.support.ObjectToArrayConverter@68ee4611 org.springframework.core.convert.support.ObjectToCollectionConverter@1a5e46bb org.springframework.core.convert.support.ObjectToOptionalConverter@3e2b0df1 org.springframework.core.convert.support.ObjectToOptionalConverter@3e2b0df1 org.springframework.core.convert.support.ObjectToOptionalConverter@3e2b0df1 org.springframework.core.convert.support.StreamConverter@3ede9f18 org.springframework.core.convert.support.StreamConverter@3ede9f18 org.springframework.core.convert.support.StreamConverter@3ede9f18 org.springframework.core.convert.support.StreamConverter@3ede9f18 org.springframework.core.convert.support.StringToArrayConverter@356af34f org.springframework.core.convert.support.StringToCollectionConverter@44c23188 ]
javax.servlet.forward.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@7bea8d7b]
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.request.cipher_suite = [TLS_AES_256_GCM_SHA384]
org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE = [WebApplicationContext for namespace 'luna-servlet': startup date [Wed Feb 25 17:45:31 UTC 2026]; parent: Root WebApplicationContext]
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@3005876e]
javax.servlet.jsp.jstl.fmt.locale.request = [en]
appConfig = [com.lunaimaging.insight.core.domain.ApplicationConfiguration@8d3ecd9]
EXTENDED_COLLECTION_PROPERTIES = [ExtendedCollectionsProperties[All Collections] ]
displayHelpfulTips = [00000000000000000000000000]
CATEGORIZED_COLLECTIONS_COUNT = [0]
AUTHENTICATED_ENTITY = [IpRange[1][null-null] ]
LUNA_COLLECTIONS_IN_CONTEXT = [[MediaCollection[wmich~2~2]Beer, Food, and Home Comfort: Domestic Collections at WMU, MediaCollection[WMUwmu~85~85]Costume History, MediaCollection[WMUwmu~78~78]Digitization Portfolio Collection, MediaCollection[WMUwmu~81~81]Digitization Portfolio Collection: Display Color, MediaCollection[WMUwmu~80~80]Digitization Portfolio Collection: Selected Examples of Print Images, MediaCollection[wmich~7~7]Early Printed Works Collection, MediaCollection[wmich~6~6]Gilmore Car Museum, Walt Disney Collection, MediaCollection[WMUwmu~73~73]Index Map Collection, MediaCollection[wmich~9~9]Kalamazoo and the World's Columbian Exposition, MediaCollection[wmich~10~10]Kalamazoo County Records of the Poor, MediaCollection[WMUwmu~77~77]Medieval Document Collection, MediaCollection[wmich~11~11]Merze Tate Collection, MediaCollection[wmich~4~4]Pages from the Past, MediaCollection[wmich~13~13]Palm Leaf Manuscripts, MediaCollection[wmich~12~12]R. H. C. Davis Notebooks Collection, MediaCollection[wmich~8~8]Richland Community Library Local History Collection, MediaCollection[WMUwmu~84~84]South Asia Maps Collection, MediaCollection[WMUwmu~90~90]South Haven Michigan Lighthouse Logs, MediaCollection[WMUwmu~29~29]Ward Morgan Collection, MediaCollection[wmich~3~3]Western Michigan University Archives Photograph Collection, MediaCollection[wmich~14~14]WMU Department of Theatre Performance Archives, MediaCollection[wmich~5~5]WMU Regional History Photograph Collection, MediaCollection[wmich~1~1]World War I and World War II: Personal Narratives, MediaCollection[WMUwmu~82~82]World War II Propaganda Collections]]
ua = [Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)]
pgs = [50]
at com.lunaimaging.insight.web.controller.MediaBookController: getBookThumbnails() MediaBookController.java ( 329 )
at com.lunaimaging.insight.web.controller.MediaBookController: handleShowAllPagesThumbnailView() MediaBookController.java ( 150 )
at jdk.internal.reflect.GeneratedMethodAccessor2116: 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 = [wmich~12~12~14~163294]Request Attributes
exception = [java.lang.NullPointerException]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@568ab3b5]
pageTitle = []
pageSize = [50]
REQUEST_URL = [https://luna.library.wmich.edu/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@360df150]
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@66f47c5f]
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 = [fb6548c54c796affd822095478ff40fc0bae65df6cd6403c0222031c9c09ee19]
rc = [org.springframework.web.servlet.support.RequestContext@2e016502]
javax.servlet.include.servlet_path = [/WEB-INF/views/jsp/errors/error.jsp]
javax.servlet.forward.query_string = [mid=wmich~12~12~14~163294]
quickSearch = [/WEB-INF/views/jsp/common/quickSearch.jsp]
org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping = [showAllPagesThumbnail]
javax.servlet.error.exception = [java.lang.NullPointerException]
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@342cf376]
org.springframework.web.servlet.HandlerMapping.bestMatchingHandler = [com.lunaimaging.insight.web.controller.MediaBookController@24d3105f]
javax.servlet.error.status_code = [200]
org.springframework.web.servlet.DispatcherServlet.CONTEXT = [WebApplicationContext for namespace 'luna-servlet': startup date [Wed Feb 25 17:45:31 UTC 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@787e8eda]
org.apache.shiro.web.servlet.ShiroHttpServletRequest_REFERENCED_SESSION_IS_NEW = [true]
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@75ea319,@org.springframework.format.annotation.NumberFormat java.lang.Long -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.LocalDate -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@7767785e @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.LocalDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@cc43fdd @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.LocalTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@304d1424 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.OffsetDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@43333432 @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.OffsetTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@3da7432f @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime -> java.lang.String: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.time.ZonedDateTime -> java.lang.String : org.springframework.format.datetime.standard.TemporalAccessorPrinter@46f14bc6 @org.springframework.format.annotation.DateTimeFormat java.util.Calendar -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319 @org.springframework.format.annotation.DateTimeFormat java.util.Date -> java.lang.String: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319 @org.springframework.format.annotation.NumberFormat java.lang.Byte -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.lang.Double -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.lang.Float -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.lang.Integer -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.lang.Short -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.math.BigDecimal -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e @org.springframework.format.annotation.NumberFormat java.math.BigInteger -> java.lang.String: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@58ab272f java.lang.Character -> java.lang.Number : org.springframework.core.convert.support.CharacterToNumberFactory@6ac84b71 java.lang.Character -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@105b4f0c java.lang.Enum -> java.lang.Integer : org.springframework.core.convert.support.EnumToIntegerConverter@58c3e64e java.lang.Enum -> java.lang.String : org.springframework.core.convert.support.EnumToStringConverter@5a5baa82 java.lang.Integer -> java.lang.Enum : org.springframework.core.convert.support.IntegerToEnumConverterFactory@59d03004 java.lang.Long -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$LongToInstantConverter@36f26915 java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@220063cb,java.lang.Long -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$LongToCalendarConverter@aaa3402 java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@1190ea20,java.lang.Long -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$LongToDateConverter@60848601 java.lang.Number -> java.lang.Character : org.springframework.core.convert.support.NumberToCharacterConverter@7ceac17f java.lang.Number -> java.lang.Number : org.springframework.core.convert.support.NumberToNumberConverterFactory@11d62e98 java.lang.Number -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@5fb921a2 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.lang.Long: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319,java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Long: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDate: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.LocalDate: org.springframework.format.datetime.standard.TemporalAccessorParser@52781d66 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.LocalDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@1ec5900e java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.LocalTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.LocalTime: org.springframework.format.datetime.standard.TemporalAccessorParser@40ad1a1e java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.OffsetDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@714499ba java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.OffsetTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.OffsetTime: org.springframework.format.datetime.standard.TemporalAccessorParser@75ec63d3 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime: org.springframework.format.datetime.standard.Jsr310DateTimeFormatAnnotationFormatterFactory@7e91d03b,java.lang.String -> java.time.ZonedDateTime: org.springframework.format.datetime.standard.TemporalAccessorParser@6ea4c4ec java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Calendar: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319 java.lang.String -> @org.springframework.format.annotation.DateTimeFormat java.util.Date: org.springframework.format.datetime.DateTimeFormatAnnotationFormatterFactory@75ea319 java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Byte: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Double: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Float: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Integer: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.lang.Short: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigDecimal: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> @org.springframework.format.annotation.NumberFormat java.math.BigInteger: org.springframework.format.number.NumberFormatAnnotationFormatterFactory@38e6553e java.lang.String -> java.lang.Boolean : org.springframework.core.convert.support.StringToBooleanConverter@12c23954 java.lang.String -> java.lang.Character : org.springframework.core.convert.support.StringToCharacterConverter@30d91561 java.lang.String -> java.lang.Enum : org.springframework.core.convert.support.StringToEnumConverterFactory@7260e47c java.lang.String -> java.lang.Number : org.springframework.core.convert.support.StringToNumberConverterFactory@6c1009b9 java.lang.String -> java.nio.charset.Charset : org.springframework.core.convert.support.StringToCharsetConverter@72f54ff3 java.lang.String -> java.time.Duration: org.springframework.format.datetime.standard.DurationFormatter@7dc104a4 java.lang.String -> java.time.Instant: org.springframework.format.datetime.standard.InstantFormatter@2fa44bf8 java.lang.String -> java.time.MonthDay: org.springframework.format.datetime.standard.MonthDayFormatter@66536f33 java.lang.String -> java.time.Period: org.springframework.format.datetime.standard.PeriodFormatter@7a788eff java.lang.String -> java.time.YearMonth: org.springframework.format.datetime.standard.YearMonthFormatter@6ba50234 java.lang.String -> java.util.Currency : org.springframework.core.convert.support.StringToCurrencyConverter@3567de29 java.lang.String -> java.util.Locale : org.springframework.core.convert.support.StringToLocaleConverter@2d75aa2e java.lang.String -> java.util.Properties : org.springframework.core.convert.support.StringToPropertiesConverter@2f5ff932 java.lang.String -> java.util.TimeZone : org.springframework.core.convert.support.StringToTimeZoneConverter@393e7d5b java.lang.String -> java.util.UUID : org.springframework.core.convert.support.StringToUUIDConverter@89e02fd java.nio.charset.Charset -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@35432675 java.time.Duration -> java.lang.String : org.springframework.format.datetime.standard.DurationFormatter@7dc104a4 java.time.Instant -> java.lang.Long : org.springframework.format.datetime.standard.DateTimeConverters$InstantToLongConverter@6a311cd9 java.time.Instant -> java.lang.String : org.springframework.format.datetime.standard.InstantFormatter@2fa44bf8 java.time.LocalDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalDateConverter@1c7d0e9d java.time.LocalDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$LocalDateTimeToLocalTimeConverter@588d279d java.time.MonthDay -> java.lang.String : org.springframework.format.datetime.standard.MonthDayFormatter@66536f33 java.time.OffsetDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToInstantConverter@63378071 java.time.OffsetDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateConverter@351542d9 java.time.OffsetDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalDateTimeConverter@7830e20 java.time.OffsetDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToLocalTimeConverter@15b1db3b java.time.OffsetDateTime -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$OffsetDateTimeToZonedDateTimeConverter@7cab06b7 java.time.Period -> java.lang.String : org.springframework.format.datetime.standard.PeriodFormatter@7a788eff java.time.YearMonth -> java.lang.String : org.springframework.format.datetime.standard.YearMonthFormatter@6ba50234 java.time.ZoneId -> java.util.TimeZone : org.springframework.core.convert.support.ZoneIdToTimeZoneConverter@513d9f59 java.time.ZonedDateTime -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToInstantConverter@e8eabac java.time.ZonedDateTime -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateConverter@7932197c java.time.ZonedDateTime -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalDateTimeConverter@569ec35b java.time.ZonedDateTime -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToLocalTimeConverter@22e3387c java.time.ZonedDateTime -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$ZonedDateTimeToOffsetDateTimeConverter@679ea7da java.time.ZonedDateTime -> java.util.Calendar : org.springframework.core.convert.support.ZonedDateTimeToCalendarConverter@1b51fc39 java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@2a7d0775,java.util.Calendar -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToLongConverter@6c888148 java.util.Calendar -> java.time.Instant : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToInstantConverter@6c7ca06f java.util.Calendar -> java.time.LocalDate : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateConverter@431338e5 java.util.Calendar -> java.time.LocalDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalDateTimeConverter@435afdd1 java.util.Calendar -> java.time.LocalTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToLocalTimeConverter@1c781cfe java.util.Calendar -> java.time.OffsetDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToOffsetDateTimeConverter@67a90419 java.util.Calendar -> java.time.ZonedDateTime : org.springframework.format.datetime.standard.DateTimeConverters$CalendarToZonedDateTimeConverter@78c4f72f java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@f7e537a,java.util.Calendar -> java.util.Date : org.springframework.format.datetime.DateFormatterRegistrar$CalendarToDateConverter@3f39db88 java.util.Currency -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@770dbaf7 java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@51e23dab,java.util.Date -> java.lang.Long : org.springframework.format.datetime.DateFormatterRegistrar$DateToLongConverter@3740e6e3 java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@3d050a90,java.util.Date -> java.util.Calendar : org.springframework.format.datetime.DateFormatterRegistrar$DateToCalendarConverter@4fb12042 java.util.Locale -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@2afd0ab8 java.util.Properties -> java.lang.String : org.springframework.core.convert.support.PropertiesToStringConverter@3030222 java.util.UUID -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@12dedb1b org.springframework.core.convert.support.ArrayToArrayConverter@21e0565d org.springframework.core.convert.support.ArrayToCollectionConverter@4298361b org.springframework.core.convert.support.ArrayToObjectConverter@6204c314 org.springframework.core.convert.support.ArrayToStringConverter@169b0d7f org.springframework.core.convert.support.ByteBufferConverter@6b45b73a org.springframework.core.convert.support.ByteBufferConverter@6b45b73a org.springframework.core.convert.support.ByteBufferConverter@6b45b73a org.springframework.core.convert.support.ByteBufferConverter@6b45b73a org.springframework.core.convert.support.CollectionToArrayConverter@59913e78 org.springframework.core.convert.support.CollectionToCollectionConverter@45824779 org.springframework.core.convert.support.CollectionToObjectConverter@1a5667 org.springframework.core.convert.support.CollectionToStringConverter@26505e86 org.springframework.core.convert.support.FallbackObjectToStringConverter@2a8f9cad org.springframework.core.convert.support.IdToEntityConverter@5deb740e,org.springframework.core.convert.support.ObjectToObjectConverter@17751e4d org.springframework.core.convert.support.MapToMapConverter@4629993c org.springframework.core.convert.support.ObjectToArrayConverter@68ee4611 org.springframework.core.convert.support.ObjectToCollectionConverter@1a5e46bb org.springframework.core.convert.support.ObjectToOptionalConverter@3e2b0df1 org.springframework.core.convert.support.ObjectToOptionalConverter@3e2b0df1 org.springframework.core.convert.support.ObjectToOptionalConverter@3e2b0df1 org.springframework.core.convert.support.StreamConverter@3ede9f18 org.springframework.core.convert.support.StreamConverter@3ede9f18 org.springframework.core.convert.support.StreamConverter@3ede9f18 org.springframework.core.convert.support.StreamConverter@3ede9f18 org.springframework.core.convert.support.StringToArrayConverter@356af34f org.springframework.core.convert.support.StringToCollectionConverter@44c23188 ]
javax.servlet.forward.mapping = [org.apache.catalina.core.ApplicationMapping$MappingImpl@7bea8d7b]
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.request.cipher_suite = [TLS_AES_256_GCM_SHA384]
org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE = [WebApplicationContext for namespace 'luna-servlet': startup date [Wed Feb 25 17:45:31 UTC 2026]; parent: Root WebApplicationContext]
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@3005876e]
javax.servlet.jsp.jstl.fmt.locale.request = [en]
Session Attributes
res = [1]appConfig = [com.lunaimaging.insight.core.domain.ApplicationConfiguration@8d3ecd9]
EXTENDED_COLLECTION_PROPERTIES = [ExtendedCollectionsProperties[All Collections] ]
displayHelpfulTips = [00000000000000000000000000]
CATEGORIZED_COLLECTIONS_COUNT = [0]
AUTHENTICATED_ENTITY = [IpRange[1][null-null] ]
LUNA_COLLECTIONS_IN_CONTEXT = [[MediaCollection[wmich~2~2]Beer, Food, and Home Comfort: Domestic Collections at WMU, MediaCollection[WMUwmu~85~85]Costume History, MediaCollection[WMUwmu~78~78]Digitization Portfolio Collection, MediaCollection[WMUwmu~81~81]Digitization Portfolio Collection: Display Color, MediaCollection[WMUwmu~80~80]Digitization Portfolio Collection: Selected Examples of Print Images, MediaCollection[wmich~7~7]Early Printed Works Collection, MediaCollection[wmich~6~6]Gilmore Car Museum, Walt Disney Collection, MediaCollection[WMUwmu~73~73]Index Map Collection, MediaCollection[wmich~9~9]Kalamazoo and the World's Columbian Exposition, MediaCollection[wmich~10~10]Kalamazoo County Records of the Poor, MediaCollection[WMUwmu~77~77]Medieval Document Collection, MediaCollection[wmich~11~11]Merze Tate Collection, MediaCollection[wmich~4~4]Pages from the Past, MediaCollection[wmich~13~13]Palm Leaf Manuscripts, MediaCollection[wmich~12~12]R. H. C. Davis Notebooks Collection, MediaCollection[wmich~8~8]Richland Community Library Local History Collection, MediaCollection[WMUwmu~84~84]South Asia Maps Collection, MediaCollection[WMUwmu~90~90]South Haven Michigan Lighthouse Logs, MediaCollection[WMUwmu~29~29]Ward Morgan Collection, MediaCollection[wmich~3~3]Western Michigan University Archives Photograph Collection, MediaCollection[wmich~14~14]WMU Department of Theatre Performance Archives, MediaCollection[wmich~5~5]WMU Regional History Photograph Collection, MediaCollection[wmich~1~1]World War I and World War II: Personal Narratives, MediaCollection[WMUwmu~82~82]World War II Propaganda Collections]]
ua = [Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)]
pgs = [50]
StackTrace
java.lang.NullPointerExceptionat com.lunaimaging.insight.web.controller.MediaBookController: getBookThumbnails() MediaBookController.java ( 329 )
at com.lunaimaging.insight.web.controller.MediaBookController: handleShowAllPagesThumbnailView() MediaBookController.java ( 150 )
at jdk.internal.reflect.GeneratedMethodAccessor2116: 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 )