I’m completely at a loss as to why this is occurring. I have a javascript file deployed to three test boxes. On two of them, I get the following error when I hit the page (below). As you can see, it says the stream header is a string of zeroes, and there are no zeroes in the file it’s reading. I assume this means that it’s trying to read the data but nothing’s coming through (hence all the unset bits…) but the fact that it works on one box but not the other two is baffling, since they all have the same code deployed to them.
I’ve looked through the Java service for any streams that aren’t closed or read properly, but the service doesn’t even open them. As you can see in the stack trace, it utilizes Ehcache which performs those operations (and are implemented correctly).
Any pointers in the right direction on what in the world this is doing?
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page/CacheHistory.jsp at line 6
3: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4:
5: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
6: <jsp:useBean id="cacheHistory" class="org.jpg.CacheHistory" />
7: <html>
8: <head>
9: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:428)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
net.sf.ehcache.CacheException: java.io.StreamCorruptedException: invalid stream header: 00000000
net.sf.ehcache.store.disk.DiskStorageFactory.retrieve(DiskStorageFactory.java:964)
net.sf.ehcache.store.disk.Segment.decodeHit(Segment.java:178)
net.sf.ehcache.store.disk.Segment.get(Segment.java:216)
net.sf.ehcache.store.disk.DiskStore.get(DiskStore.java:504)
net.sf.ehcache.store.disk.DiskStore.getQuiet(DiskStore.java:511)
net.sf.ehcache.store.FrontEndCacheTier.getQuiet(FrontEndCacheTier.java:196)
net.sf.ehcache.Cache.searchInStoreWithoutStats(Cache.java:2101)
net.sf.ehcache.Cache.get(Cache.java:1630)
net.sf.ehcache.Cache.get(Cache.java:1597)
root cause
java.io.StreamCorruptedException: invalid stream header: 00000000
java.io.ObjectInputStream.readStreamHeader(Unknown Source)
java.io.ObjectInputStream.<init>(Unknown Source)
net.sf.ehcache.util.PreferTCCLObjectInputStream.<init>(PreferTCCLObjectInputStream.java:39)
net.sf.ehcache.store.disk.DiskStorageFactory.read(DiskStorageFactory.java:375)
net.sf.ehcache.store.disk.DiskStorageFactory.retrieve(DiskStorageFactory.java:960)
net.sf.ehcache.store.disk.Segment.decodeHit(Segment.java:178)
net.sf.ehcache.store.disk.Segment.get(Segment.java:216)
net.sf.ehcache.store.disk.DiskStore.get(DiskStore.java:504)
net.sf.ehcache.store.disk.DiskStore.getQuiet(DiskStore.java:511)
net.sf.ehcache.store.FrontEndCacheTier.getQuiet(FrontEndCacheTier.java:196)
net.sf.ehcache.Cache.searchInStoreWithoutStats(Cache.java:2101)
net.sf.ehcache.Cache.get(Cache.java:1630)
net.sf.ehcache.Cache.get(Cache.java:1597)
The file being read is corrupt on the platforms that fail.