With the latest source from svn I get the following exception from the RemoteCacheServer: The server does have access to the same classpath as the application. The object is serializable as I can read and write the serialized object to disk. Any hints appreciated.
09:47:56,414 ERROR [IndexedDiskCache] Failure getting from disk, cacheName: ruleCache, key = 34800JR2OS12 java.lang.ClassCastException: org.apache.jcs.engine.CacheElementSerialized at org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.readElement( IndexedDiskCache.java:526) at org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.doGet( IndexedDiskCache.java:484) at org.apache.jcs.auxiliary.disk.AbstractDiskCache.get( AbstractDiskCache.java:298) at org.apache.jcs.engine.control.CompositeCache.get( CompositeCache.java:488) at org.apache.jcs.engine.control.CompositeCache.get( CompositeCache.java:391) at org.apache.jcs.auxiliary.remote.server.RemoteCacheServer.get( RemoteCacheServer.java:546) at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java :294) at sun.rmi.transport.Transport$1.run(Transport.java:153) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:149) at sun.rmi.transport.tcp.TCPTransport.handleMessages( TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run( TCPTransport.java:701) at java.lang.Thread.run(Thread.java:595) On 5/30/06, Alistair Forbes <[EMAIL PROTECTED]> wrote:
It took sometime to get back to this. I am using the latest version: Manifest-Version: 1.0 Ant-Version: Apache Ant 1.5.3 Created-By: Apache Maven Built-By: SG0894751 Package: org.apache.jcs Build-Jdk: 1.3.1_16 Extension-Name: jcs Specification-Title: Cache Specification-Vendor: Apache Software Foundation Implementation-Title: org.apache.jcs Implementation-Vendor: Apache Software Foundation Implementation-Version: 1.2.7.3 The message logged is identical for both the IOException and the Exception, which makes it difficult to see what causes the exception. 90% of the time I only get the text without the stack trace, which makes me think this is from two different exceptions. This only seems to happen when using a remote cache - and I suspect the problem is triggered by a restart of a client cache, but I am not 100% sure yet. "01:25:51,735 ERROR [IndexedDiskCache] Failure getting from disk, cacheName: testCache, key = KEY23145 java.lang.ClassCastException" Maybe you could change the exception so that I can see which exception is triggered. Index: org/apache/jcs/auxiliary/disk/indexed/IndexedDiskCache.java =================================================================== --- org/apache/jcs/auxiliary/disk/indexed/IndexedDiskCache.java (revision 410163) +++ org/apache/jcs/auxiliary/disk/indexed/IndexedDiskCache.java (working copy) @@ -490,7 +490,7 @@ } catch ( IOException ioe ) { - log.error( "Failure getting from disk, cacheName: " + cacheName + ", key = " + key, ioe ); + log.error( "IO Failure getting from disk, cacheName: " + cacheName + ", key = " + key, ioe ); reset(); } catch ( Exception e ) On 4/27/06, Aaron Smuts <[EMAIL PROTECTED]> wrote: > > Sorry if I missed it, but what version are you using. > > > --- Alistair Forbes <[EMAIL PROTECTED]> wrote: > > > Here's the full stack trace from the remote server: > > > > java.lang.ClassCastException: > > org.apache.jcs.engine.CacheElementSerialized > > at > > > org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.readElement( > > IndexedDiskCache.java :526) > > at > > > org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.doGet( > > IndexedDiskCache.java:484) > > at > > org.apache.jcs.auxiliary.disk.AbstractDiskCache.get( > > AbstractDiskCache.java:298) > > at > > org.apache.jcs.engine.control.CompositeCache.get( > > CompositeCache.java:495) > > at > > org.apache.jcs.engine.control.CompositeCache.get( > > CompositeCache.java:398) > > at > > > org.apache.jcs.auxiliary.remote.server.RemoteCacheServer.get( > > RemoteCacheServer.java:554) > > at > > sun.reflect.GeneratedMethodAccessor5.invoke (Unknown > > Source) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke( > > DelegatingMethodAccessorImpl.java:25) > > at > > java.lang.reflect.Method.invoke(Method.java:585) > > at > > > sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java > > :294) > > at > > > sun.rmi.transport.Transport$1.run(Transport.java:153) > > at > > java.security.AccessController.doPrivileged (Native > > Method) > > at > > > sun.rmi.transport.Transport.serviceCall(Transport.java:149) > > at > > sun.rmi.transport.tcp.TCPTransport.handleMessages( > > TCPTransport.java:460) > > at > > > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run( > > TCPTransport.java:701) > > at java.lang.Thread.run(Thread.java:595) > > > > > > On 4/26/06, Alistair Forbes > > <[EMAIL PROTECTED]> wrote: > > > > > > I could try the latest version - but I have not > > had time to check the last > > > changes to the RMI timeouts. But it's pretty > > recent. > > > > > > The remote server has access to all the > > application classes. > > > > > > What is strange is that this only happens on 2 out > > of 8 regions, and for > > > one of these the class is really simple. > > > > > > For the logging...strange, but only the one line > > is logged. I will check > > > the log4j pattern that I have. > > > > > > Let me try the latest of everything and see that > > happens. > > > > > > > > > > > > On 4/26/06, Smuts, Aaron > > <[EMAIL PROTECTED]> wrote: > > > > > > > > What version of JCS are you using? > > > > > > > > The error is happening on the remote server's > > disk cache? > > > > > > > > In the latest versions, the remote server is > > passed a byte array instead > > > > of your object. If passed the object, then the > > remote server would have > > > > > > > > to have your code. > > > > > > > > The full log message is only 3 lines? The > > commons logging api prints a > > > > stack trace when you pass in an exception as the > > second argument. > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Alistair Forbes > > [mailto:[EMAIL PROTECTED] > > > > > Sent: Wednesday, April 26, 2006 9:19 AM > > > > > To: JCS Users List > > > > > Subject: Remote cache class cast exception > > > > > > > > > > From the logs of the Remote server I get class > > cast excepetions. > > > > > > > > > > I have tried serializing the objects to disk, > > and these all seem to > > > > work. > > > > > Is > > > > > there a simple way to generate the fully stack > > trace? > > > > > > > > > > I log4j I thought the line below would > > generate a full stack trace, > > > > but > > > > > maybe this is different in Commons logging. > > > > > > > > > > catch ( IOException ioe ) > > > > > { > > > > > log.error( "Failure getting from > > disk, cacheName: " + > > > > > cacheName > > > > > + ", key = " + key, ioe ); > > > > > reset(); > > > > > } > > > > > > > > > > > > > > > 15:09:24,459 ERROR [IndexedDiskCache] Failure > > getting from disk, > > > > > cacheName: > > > > > textCache, key = XXXYYY > > > > > java.lang.ClassCastException > > > > > > > > > > > > > > > Any hints appreciated. > > > > > Al > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > [EMAIL PROTECTED] > > > > For additional commands, e-mail: > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >