Oleg,
Sorry about this being a bug, I didn't want to create
work for you... but I guess this what JCTS is supposed
to do... right?

I'll move on to other aspects of conformity testing.

Marc: We might want to consider doing some sort of
"known issues" kind of thing with JBoss_final2.0?  I'd
be happy to contribute what I've uncovered so far..
which has been minimal, a tribute to the work done
thus far.

As far as progress goes, I'm just about finished with
all the session related test cases.  Shortly moving on
to CMP/BMP entity.  Stay tuned!

cheers,
peter

--- Ole Husgaard <[EMAIL PROTECTED]> wrote:
> Hi,
> 
> In a create method of a statefull session bean I try
> to do context.getEJBObject().
> It returns the expected object, but when I later try
> to use it, I get:
> 
> [MySession] TRANSACTION ROLLBACK EXCEPTION:Can't get
> an object with a null key; nested
> exception is:
>         java.lang.IllegalArgumentException: Can't
> get an object with a null key
> [MySession] java.lang.IllegalArgumentException:
> Can't get an object with a null key
> [MySession]        at
>
org.jboss.ejb.plugins.AbstractInstanceCache.get(AbstractInstanceCache.java:70)
> [MySession]        at
>
org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:154)
> [MySession]        at
>
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:133)
> [MySession]        at
>
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:263)
> [MySession]        at
>
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
> [MySession]        at
>
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
> [MySession]        at
>
org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:326)
> [MySession]        at
>
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:441)
> [MySession]        at
>
org.jboss.ejb.plugins.jrmp.interfaces.StatefulSessionProxy.invoke(StatefulSessionProxy.java:150)
> [MySession]        at $Proxy17.myMethod(Unknown
> Source)
> (Please ignore line numbers: This is an older
> version,
> but the latest CVS seems to have the same problem.)
> 
> The javadoc for SessionContext.getEJBObject() says:
> "An instance of a session enterprise Bean can call
> this
> method at anytime between the ejbCreate() and
> ejbRemove()
> methods, including from within the ejbCreate() and
> ejbRemove() methods."
> 
> So this looks like a bug in JBoss.
> 
> It looks to me as if the proxy returned does
> not have any (internal, JBoss-specific) identity,
> as it is supposed to. Thus the above exception.
> When looking at
> ...ejb.plugins.StatefulSessionFilePersistenceManager
> method createSession(), the identity is not set
> until after a successfull return from the bean
> create method. A check for non-null identity is
> used elsewhere to free the instance in case of
> a failed create() call.
> 
> To fix, I an considering to move the assignment
> of the identity to _before_ the ejbCreate() call,
> and reset the identity to null in case of an
> exception thrown from the ejbCreate() method.
> 
> Unless somebody sees any problems with this, I'll
> commit this change one of these days.
> 
> 
> Best Regards,
> 
> Ole Husgaard.
> 


__________________________________________________
Do You Yahoo!?
Yahoo! Photos - Share your holiday photos online!
http://photos.yahoo.com/

Reply via email to