hi,

I've a really strange problem with a Seam Component which scope is 
"CONVERSATION"

I read a Entity List (roomList) with JPA in the case the member variable is 
null --> getRoomList().

Then I want to hold the instance as long the component exists.

When I operate on this component from the referencing view  everything is o.k.

But when I change to an other view strange things happen.

When I return to the former view the Entity List (roomList) is not null  but it 
is not the same as on creation.

This List has than null entries (as much as the "original" list).
The component instance is the same.


  | @Name("roomMaint")
  | @Scope(CONVERSATION)
  | public class RoomMaint implements Serializable {
  | 
  |     private static final long serialVersionUID = 1L;
  | 
  |     private List<RoomEntity> roomList;
  | 
  |     private RoomEntity roomEntity;
  | 
  |     @In(at.hcare.service.base.ServiceNames.ROOM_SERVICE)
  |     private IRoomService roomService;
  |     
  |     
  |     @Logger
  |     protected Log log;
  | 
  |     @Create
  |     public void create() {
  |             log.debug("Create " + getClass().getName());
  |     }
  | 
  |     @Destroy
  |     @Remove
  |     public void destroy() {
  |             log.debug("destroy " + getClass().getName());
  |     }
  | 
  |     @Begin(join = true)
  |     public void start() {
  |             log.debug("start");
  |     }
  | 
  |     @Factory(scope = ScopeType.STATELESS)
  |     public List<RoomEntity> getRoomList() {
  |             if (roomList == null) {
  |                     roomList = roomService.findAll();
  |             }
  |             return roomList;
  |     }
  | 
  |     @Factory(scope = ScopeType.STATELESS)
  |     public RoomEntity getCurrRoomEntity() {
  |             if (roomEntity == null) {
  |                     creation();
  |             }
  |             return roomEntity;
  |     }
  | 
  |     public String save() {
  |             if (getCurrRoomEntity().isPersisted()) {
  |                     roomService.update(getCurrRoomEntity());
  |             } else {
  |                     roomService.persist(getCurrRoomEntity());
  |             }
  |             GenericFacesHelper.addSavedMessage("room");
  |             return NavigationOutcome.STAY_ON_SAME_PAGE;
  |     }
  | 
  |     public String remove() {
  |             return remove(getCurrRoomEntity());
  |     }
  | 
  |     public String remove(RoomEntity roomEntity) {
  |             if (roomEntity != null && roomEntity.isPersisted()) {
  |                     roomService.remove(roomEntity);
  |             }
  |             return NavigationOutcome.STAY_ON_SAME_PAGE;
  |     }
  | 
  |     public void select(RoomEntity roomEntity) {
  |             this.roomEntity = roomEntity;
  |     }
  | 
  |     public String getDetailState() {
  |             return ExtendedResourceLoader.getText(isCurrNew() ? "new" : 
"edit");
  |     }
  | 
  |     public boolean isCurrNew() {
  |             return !getCurrRoomEntity().isPersisted();
  |     }
  | 
  |     public String creation() {
  |             roomEntity = roomService.createDefaultEntity();
  |             return NavigationOutcome.STAY_ON_SAME_PAGE;
  |     }
  | }

When I change the context to "SESSION" it works as expected.

Could anybody give me a hint what is wrong?

TIA
Martin

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4079421#4079421

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4079421
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to