dain 2005/06/26 04:17:55
Modified: modules/core/src/java/org/openejb/corba
CorbaApplicationServer.java StandardServant.java
Log:
Fix typo in ejb metadata generation for corba
Handle remove exceptions from remove methods
Turn on localy optimized stubs in sun orb... don't think this actually works
Revision Changes Path
1.2 +5 -5
openejb/modules/core/src/java/org/openejb/corba/CorbaApplicationServer.java
Index: CorbaApplicationServer.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/corba/CorbaApplicationServer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CorbaApplicationServer.java 25 Jun 2005 07:00:29 -0000 1.1
+++ CorbaApplicationServer.java 26 Jun 2005 08:17:54 -0000 1.2
@@ -101,11 +101,11 @@
public EJBMetaData getEJBMetaData(ProxyInfo proxyInfo) {
int componentType = proxyInfo.getComponentType();
byte ejbType;
- if (componentType != EJBComponentType.STATEFUL) {
+ if (componentType == EJBComponentType.STATEFUL) {
ejbType = CORBAEJBMetaData.STATEFUL;
- } else if (componentType != EJBComponentType.STATELESS) {
+ } else if (componentType == EJBComponentType.STATELESS) {
ejbType = CORBAEJBMetaData.STATELESS;
- } else if (componentType != EJBComponentType.BMP_ENTITY ||
componentType == EJBComponentType.CMP_ENTITY) {
+ } else if (componentType == EJBComponentType.BMP_ENTITY ||
componentType == EJBComponentType.CMP_ENTITY) {
ejbType = CORBAEJBMetaData.ENTITY;
} else {
throw new IllegalArgumentException("Unknown component type: " +
componentType);
1.8 +31 -7
openejb/modules/core/src/java/org/openejb/corba/StandardServant.java
Index: StandardServant.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/corba/StandardServant.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- StandardServant.java 26 Jun 2005 03:11:23 -0000 1.7
+++ StandardServant.java 26 Jun 2005 08:17:54 -0000 1.8
@@ -59,6 +59,7 @@
import javax.ejb.EJBHome;
import javax.ejb.EJBObject;
import javax.ejb.Handle;
+import javax.ejb.RemoveException;
import javax.transaction.InvalidTransactionException;
import javax.transaction.TransactionRequiredException;
import javax.transaction.TransactionRolledbackException;
@@ -226,8 +227,12 @@
} else if (method.equals(GETEJBHOME)) {
result = ejbContainer.getEjbHome();
} else if (method.equals(REMOVE)) {
- ejbContainer.getEjbObject(primaryKey).remove();
- result = null;
+ try {
+ ejbContainer.getEjbObject(primaryKey).remove();
+ result = null;
+ } catch (RemoveException e) {
+ return Util.writeUserException(method, reply, e);
+ }
} else {
throw new UnsupportedOperationException("Unkown
method: " + method);
}
@@ -238,11 +243,30 @@
result = ejbContainer.getEjbHome().getHomeHandle();
} else if (method.equals(REMOVE_W_HAND)) {
Handle handle = (Handle) arguments[0];
- ejbContainer.getEjbHome().remove(handle);
+ try {
+ if
(ejbContainer.getProxyInfo().isStatelessSessionBean()) {
+ if (handle == null) {
+ throw new RemoveException("Handle is
null");
+ }
+ Class remoteInterface =
ejbContainer.getProxyInfo().getRemoteInterface();
+ if
(!remoteInterface.isInstance(handle.getEJBObject())) {
+ throw new RemoteException("Handle does
not hold a " + remoteInterface.getName());
+ }
+ } else {
+ EJBObject ejbObject = handle.getEJBObject();
+ ejbObject.remove();
+ }
+ } catch (RemoveException e) {
+ return Util.writeUserException(method, reply, e);
+ }
result = null;
} else if (method.equals(REMOVE_W_KEY)) {
- ejbContainer.getEjbHome().remove(arguments[0]);
- result = null;
+ try {
+ ejbContainer.getEjbHome().remove(arguments[0]);
+ result = null;
+ } catch (RemoveException e) {
+ return Util.writeUserException(method, reply, e);
+ }
} else {
throw new UnsupportedOperationException("Unkown
method: " + method);
}