Ticket #299 (closed Defect: fixed)
Redeploying the core throws exception
Reported by: | jri | Owned by: | jri |
---|---|---|---|
Priority: | Major | Milestone: | Release 4.1 |
Component: | DeepaMehta Standard Distribution | Version: | 4.0.12-SNAPSHOT |
Keywords: | Cc: | dgf, Malte | |
Complexity: | 3 | Area: | |
Module: | deepamehta-core |
Description
When the core is hot-deployed while a user is logged in an exception is thrown:
java.lang.ClassCastException: de.deepamehta.core.impl.service.AttachedTopic cannot be cast to de.deepamehta.core.Topic
Cause:
There is a stale topic object stored in the session.
Solution:
Invalidate the session when the core is stopped.
Workaround:
Logout before redeploying the core.
Change History
comment:2 Changed 12 years ago by Jörg Richter
- Status changed from accepted to closed
- Resolution set to fixed
Access Control: creator/owner storage (#344,#299).
An object's creator and owner is stored outside the graph.
Core Service API:
- String getCreator(long objectId) is new method
- void setCreator(long objectId, String username) is new method
- String getOwner(long objectId) is new method
- void setOwner(long objectId, String username) is new method
Access Control API:
- login() returns void (a Username topic formerly)
- getUsername() returns the username, a string (a Username topic formerly)
- String getCreator(long objectId) replaces Topic getCreator(DeepaMehtaObject? object)
- setCreator(long objectId, String username) replaces setCreator(DeepaMehtaObject? object, long usernameId)
- String getOwner(long objectId) replaces Topic getOwner(DeepaMehtaObject? object)
- setOwner(long objectId, String username) replaces setOwner(DeepaMehtaObject? object, long usernameId)
- joinWorkspace(String username, long workspaceId) replaces joinWorkspace(long usernameId, long workspaceId)
Revised access control storage ís functional for the first time.
You must reset the database.
Core fix (#299):
Redeploying the Core while a user is logged in.
The session stores a plain (username) string instead a topic.
See ticket 344.
Close ticket 299.
comment:3 Changed 12 years ago by Jörg Richter
Access Control: creator/owner storage (#344,#299).
An object's creator and owner is stored outside the graph.
Core Service API:
- String getCreator(long objectId) is new method
- void setCreator(long objectId, String username) is new method
- String getOwner(long objectId) is new method
- void setOwner(long objectId, String username) is new method
Access Control API:
- login() returns void (a Username topic formerly)
- getUsername() returns the username, a string (a Username topic formerly)
- String getCreator(long objectId) replaces Topic getCreator(DeepaMehtaObject? object)
- setCreator(long objectId, String username) replaces setCreator(DeepaMehtaObject? object, long usernameId)
- String getOwner(long objectId) replaces Topic getOwner(DeepaMehtaObject? object)
- setOwner(long objectId, String username) replaces setOwner(DeepaMehtaObject? object, long usernameId)
- joinWorkspace(String username, long workspaceId) replaces joinWorkspace(long usernameId, long workspaceId)
Revised access control storage ís functional for the first time.
You must reset the database.
Core fix (#299):
Redeploying the Core while a user is logged in.
The session stores a plain (username) string instead a topic.
See ticket 344.
Close ticket 299.