Hi

I've configured my cache using the default values from apache site. The
cache is being configured, I confirmed cuz it gets the name I speicifed in
cache.ccf.

Now, if I try to put a Long, String or other wrapper objects as keys,
everything works fine. But the moment I supply my own object as key, I get
CacheException (with no further cause or explanation below it) - Exception
trace attached at the end.

Also, from the empty cache if I try to get an object (I expect null) with my
key, I get a ClassCastException! - Again, if I try to get using Long, String
etc, it returns null all right.

The custom object which I am using as key contained a long field and an enum
field. I changed it to long and int as an experiment, but the result was the
same. Is there some place I need to also tell the cache about the type of
the keys I'll be storing? Is enum a problem? I gathered from the site and
from the signature of put() and get() that it can be any Object.

I am hoping there is some simple explanation for this behavior which I don't
know. Will be glad for any light.

PS: Classpath is not a problem, I confirmed by instantiating a key object
above the get and it happens all right.

Thanks
--- Pooja.
Exception Trace for CacheException while putting my own object as key:
org.apache.jcs.access.exception.CacheException:
com.anduril.ring.promos.PromotionKey
org.apache.jcs.access.exception.CacheException:
com.anduril.ring.promos.PromotionKey
   at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:300)
   at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:266)
..... no further causes given
+++++++++++++++++++++++++++++
Exception Trace for ClassCastException while getting with my own object as
key:
java.lang.ClassCastException: com.anduril.ring.promos.PromotionKey
   at org.apache.jcs.access.CacheAccess.get(CacheAccess.java:201)
   at com.anduril.ring.promocache.PromoCacheJCS.getPromoMessage(Unknown
Source)

Reply via email to