[jboss-cvs] JBossAS SVN: r76951 - in projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3: stateful and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Aug 11 13:39:47 EDT 2008
Author: ALRubinger
Date: 2008-08-11 13:39:47 -0400 (Mon, 11 Aug 2008)
New Revision: 76951
Modified:
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
Log:
[EJBTHREE-1456] Check for EJBObject/EJBLocalObject against the correct unadvised method
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java 2008-08-11 17:38:47 UTC (rev 76950)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java 2008-08-11 17:39:47 UTC (rev 76951)
@@ -156,8 +156,8 @@
/*
* Obtain the target method (advised)
*/
- Method unadvisedMethod = method.toMethod(this.getClassloader());
- long hash = MethodHashing.calculateHash(unadvisedMethod);
+ Method actualMethod = method.toMethod(this.getClassloader());
+ long hash = MethodHashing.calculateHash(actualMethod);
MethodInfo info = getAdvisor().getMethodInfo(hash);
if (info == null)
{
@@ -165,6 +165,8 @@
+ this.getEjbName() + " : " + method.toString()
+ ", probable error in virtual method registration w/ Advisor for the Container");
}
+ Method unadvisedMethod = info.getUnadvisedMethod();
+ SerializableMethod unadvisedSerializableMethod = new SerializableMethod(unadvisedMethod);
// Obtain Invocation Handler
//TODO Ugly, use polymorphism and get Session ID for SFSB only
@@ -180,11 +182,11 @@
* Invoke directly if this is an EJB2.x Method
*/
- if (unadvisedMethod != null && isHomeMethod(method))
+ if (unadvisedMethod != null && isHomeMethod(unadvisedSerializableMethod))
{
return invokeHomeMethod(method, args);
}
- else if (unadvisedMethod != null && this.isEjbObjectMethod(method))
+ else if (unadvisedMethod != null && this.isEjbObjectMethod(unadvisedSerializableMethod))
{
return invokeEJBObjectMethod(sessionId, info, args);
}
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java 2008-08-11 17:38:47 UTC (rev 76950)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java 2008-08-11 17:39:47 UTC (rev 76951)
@@ -550,6 +550,7 @@
Advisor advisor = this.getAdvisor();
MethodInfo info = advisor.getMethodInfo(methodHash);
Method unadvisedMethod = info.getMethod();
+ SerializableMethod unadvisedMethodSerializable = new SerializableMethod(unadvisedMethod);
// Get the invoked method from invocation metadata
Object objInvokedMethod = si.getMetaData(SessionSpecRemotingMetadata.TAG_SESSION_INVOCATION,SessionSpecRemotingMetadata.KEY_INVOKED_METHOD);
@@ -577,11 +578,11 @@
sessionId = (Serializable) objSessionId;
}
- if (info != null && unadvisedMethod != null && isHomeMethod(unadvisedMethod))
+ if (info != null && unadvisedMethod != null && isHomeMethod(unadvisedMethodSerializable))
{
response = invokeHomeMethod(info, si);
}
- else if (info != null && unadvisedMethod != null && isEJBObjectMethod(unadvisedMethod))
+ else if (info != null && unadvisedMethod != null && isEjbObjectMethod(unadvisedMethodSerializable))
{
response = invokeEJBObjectMethod(info, si);
}
@@ -619,7 +620,7 @@
//newSi = new StatefulContainerInvocation(info.getInterceptors(), long methodHash, Method advisedMethod, Method unadvisedMethod, Advisor advisor, Object id);
newSi.setArguments(si.getArguments());
newSi.setMetaData(si.getMetaData());
- newSi.setAdvisor(getAdvisor());
+ //newSi.setAdvisor(getAdvisor());
// Create an object to hold the return value
Object returnValue = null;
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java 2008-08-11 17:38:47 UTC (rev 76950)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java 2008-08-11 17:39:47 UTC (rev 76951)
@@ -415,6 +415,7 @@
Advisor advisor = this.getAdvisor();
MethodInfo info = advisor.getMethodInfo(methodHash);
Method unadvisedMethod = info.getMethod();
+ SerializableMethod unadvisedMethodSerializable = new SerializableMethod(unadvisedMethod);
try
{
@@ -423,11 +424,11 @@
//invokedMethod.push(new SerializableMethod(unadvisedMethod, unadvisedMethod.getClass()));
Map responseContext = null;
Object rtn = null;
- if (unadvisedMethod != null && isHomeMethod(unadvisedMethod))
+ if (unadvisedMethod != null && isHomeMethod(unadvisedMethodSerializable))
{
rtn = invokeHomeMethod(info, si);
}
- else if (info != null && unadvisedMethod != null && isEJBObjectMethod(unadvisedMethod))
+ else if (info != null && unadvisedMethod != null && isEjbObjectMethod(unadvisedMethodSerializable))
{
rtn = invokeEJBObjectMethod(info, si);
}
@@ -437,7 +438,7 @@
newSi = new EJBContainerInvocation<StatelessContainer, StatelessBeanContext>(info);
newSi.setArguments(si.getArguments());
newSi.setMetaData(si.getMetaData());
- newSi.setAdvisor(getAdvisor());
+ //newSi.setAdvisor(getAdvisor());
/*
* Set the invoked method
More information about the jboss-cvs-commits
mailing list