Hi Mike,
In Shiro's SimpleSessionTest, I created the following test case (the
session is instantiated via the default, no arg constructor -
additional attributes are not modified):
@Test
public void testDefaultSerialization() throws Exception {
SimpleSession session = new SimpleSession();
long timeout = session.getTimeout();
Date start = session.getStartTimestamp();
Date lastAccess = session.getLastAccessTime();
SimpleSession deserialized = serializeAndDeserialize(session);
assertEquals(timeout, deserialized.getTimeout());
assertEquals(start, deserialized.getStartTimestamp());
assertEquals(lastAccess, deserialized.getLastAccessTime());
}
It passes without error.
I also changed the serializeAndDeserialize method to use the exact
code that you pasted:
@Test
public void testDefaultSerialization() throws Exception {
SimpleSession session = new SimpleSession();
long timeout = session.getTimeout();
Date start = session.getStartTimestamp();
Date lastAccess = session.getLastAccessTime();
byte[] serialized = toBytes(session);
SimpleSession deserialized = (SimpleSession)fromBytes(serialized);
assertEquals(timeout, deserialized.getTimeout());
assertEquals(start, deserialized.getStartTimestamp());
assertEquals(lastAccess, deserialized.getLastAccessTime());
}
This passes successfully as well.
I don't suppose you have a test case that can reproduce the issue?
Regards,
Les