Ticket #299 (closed Defect: fixed)

Opened 8 years ago

Last modified 8 years ago

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:1 Changed 8 years ago by jri

  • Status changed from new to accepted

comment:2 Changed 8 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 8 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.

Note: See TracTickets for help on using tickets.