Check for null & do not mask error
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/1e1ad4d2 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/1e1ad4d2 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/1e1ad4d2 Branch: refs/heads/tomee-1.7.x Commit: 1e1ad4d273c5277f60be2a215cee564185ea1552 Parents: c6304d4 Author: AndyGee <[email protected]> Authored: Fri Feb 19 16:25:42 2016 +0100 Committer: AndyGee <[email protected]> Committed: Fri Feb 19 16:25:42 2016 +0100 ---------------------------------------------------------------------- .../openejb/core/ivm/BaseEjbProxyHandler.java | 22 ++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/1e1ad4d2/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java index e3dddbc..5067f2b 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java @@ -285,6 +285,9 @@ public abstract class BaseEjbProxyHandler implements InvocationHandler, Serializ try { if (callContext == null && localClientIdentity != null) { final SecurityService securityService = SystemInstance.get().getComponent(SecurityService.class); + if(null == securityService){ + throw new RuntimeException("SecurityService has not been initialized"); + } securityService.associate(localClientIdentity); } if (strategy == CLASSLOADER_COPY || getBeanContext().getInterfaceType(interfce) == InterfaceType.BUSINESS_REMOTE) { @@ -301,7 +304,7 @@ public abstract class BaseEjbProxyHandler implements InvocationHandler, Serializ IntraVmCopyMonitor.post(); } - } else if (strategy == COPY && args != null && args.length > 0) { + } else if (strategy == COPY && args.length > 0) { IntraVmCopyMonitor.pre(strategy); try { @@ -330,7 +333,9 @@ public abstract class BaseEjbProxyHandler implements InvocationHandler, Serializ if (callContext == null && localClientIdentity != null) { final SecurityService securityService = SystemInstance.get().getComponent(SecurityService.class); - securityService.disassociate(); + if(null != securityService){ + securityService.disassociate(); + } } } } @@ -521,7 +526,7 @@ public abstract class BaseEjbProxyHandler implements InvocationHandler, Serializ protected Object[] copyArgs(final Object[] objects) throws IOException, ClassNotFoundException { if (objects == null) { - return objects; + return null; } /* while copying the arguments is necessary. Its not necessary to copy the array itself, @@ -631,7 +636,11 @@ public abstract class BaseEjbProxyHandler implements InvocationHandler, Serializ public BeanContext getBeanContext() { final BeanContext beanContext = beanContextRef.get(); if (beanContext == null || beanContext.isDestroyed()) { - invalidateReference(); + try { + invalidateReference(); + } catch (final IllegalStateException e) { + //no-op, as we are about to throw a better reason + } throw new IllegalStateException("Bean '" + deploymentID + "' has been undeployed."); } return beanContext; @@ -663,6 +672,11 @@ public abstract class BaseEjbProxyHandler implements InvocationHandler, Serializ in.defaultReadObject(); final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class); + + if(null == containerSystem){ + throw new RuntimeException("ContainerSystem has not been initialized"); + } + setBeanContext(containerSystem.getBeanContext(deploymentID)); container = (RpcContainer) getBeanContext().getContainer();
