The only objects we are putting into the cache are CqtRFQEstimateCollector and CqtEstimateEvent (both are Serializable). The objects mentioned in these stacktraces (CqtRFQSpecQuote, CqtSupplierQuoteKey and ItcMoney) are objects
that are held within the CqtRFQEstimateCollector object, and are not
Serializable. These exceptions do not make sense to me, since JCS shouldn't
even be trying to serialize these objects. Before I go ahead and start
modifying more objects, I just wanted to make sure I'm doing things right.


If you declare an object as serializable, but it contains objects that are not serializable, you have to declare those objects transient. transient CqtRFQSpecQuote specQuote = new CqtRFQSpecQuote("that's a godawful class name!");

Then no attempt will be made to serialize those members of the CqtRFQEstimateCollector or CqtEstimateEvent classes, when they're serialized. Obviously, then, they'd be null, when they're pulled out of the cache. So, one way or another, you'll have to account for them: either make them (and any non-serializable objects *they* contain) serializable, or go through all the rest of your code making sure it won't NPE all over the place, when it uses an instance that's been cached.

Reply via email to