You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2013/02/24 00:56:34 UTC
git commit: DELTASPIKE-317 fixed NullPointerException in
#getContextControl
Updated Branches:
refs/heads/master 8cff159e6 -> 23bd326c2
DELTASPIKE-317 fixed NullPointerException in #getContextControl
(of OpenWebBeansContainerControl and WeldContainerControl)
Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/23bd326c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/23bd326c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/23bd326c
Branch: refs/heads/master
Commit: 23bd326c28e976c74fcf3c0b14b72fb3be34bdd8
Parents: 8cff159
Author: gpetracek <gp...@apache.org>
Authored: Sun Feb 24 00:52:01 2013 +0100
Committer: gpetracek <gp...@apache.org>
Committed: Sun Feb 24 00:52:05 2013 +0100
----------------------------------------------------------------------
.../cdise/owb/OpenWebBeansContainerControl.java | 18 ++++++++++++++-
.../cdise/weld/WeldContainerControl.java | 16 ++++++++++++-
2 files changed, 32 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/23bd326c/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
index d94ae74..9c45aea 100644
--- a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
+++ b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
@@ -27,6 +27,7 @@ import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import java.util.Set;
+import java.util.logging.Logger;
/**
* OpenWebBeans specific implementation of {@link org.apache.deltaspike.cdise.api.CdiContainer}.
@@ -34,6 +35,8 @@ import java.util.Set;
@SuppressWarnings("UnusedDeclaration")
public class OpenWebBeansContainerControl implements CdiContainer
{
+ private static final Logger LOG = Logger.getLogger(OpenWebBeansContainerControl.class.getName());
+
private ContainerLifecycle lifecycle;
private ContextControl ctxCtrl = null;
@@ -91,7 +94,20 @@ public class OpenWebBeansContainerControl implements CdiContainer
if (ctxCtrl == null)
{
Set<Bean<?>> beans = getBeanManager().getBeans(ContextControl.class);
- ctxCtrlBean = (Bean<ContextControl>) getBeanManager().resolve(beans);
+
+ BeanManager beanManager = getBeanManager();
+
+ if (beanManager == null)
+ {
+ LOG.warning("If the CDI-container was started by the environment, you can't use this helper." +
+ "Instead you can resolve ContextControl manually " +
+ "(e.g. via BeanProvider.getContextualReference(ContextControl.class) ). " +
+ "If the container wasn't started already, you have to use CdiContainer#boot before.");
+
+ return null;
+ }
+
+ ctxCtrlBean = (Bean<ContextControl>) beanManager.resolve(beans);
ctxCtrlCreationalContext = getBeanManager().createCreationalContext(ctxCtrlBean);
ctxCtrl = (ContextControl)
getBeanManager().getReference(ctxCtrlBean, ContextControl.class, ctxCtrlCreationalContext);
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/23bd326c/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
index 56362da..65b8fd6 100644
--- a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
+++ b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
@@ -27,6 +27,7 @@ import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import java.util.Set;
+import java.util.logging.Logger;
/**
* Weld specific implementation of {@link org.apache.deltaspike.cdise.api.CdiContainer}.
@@ -34,6 +35,8 @@ import java.util.Set;
@SuppressWarnings("UnusedDeclaration")
public class WeldContainerControl implements CdiContainer
{
+ private static final Logger LOG = Logger.getLogger(WeldContainerControl.class.getName());
+
private Weld weld;
private WeldContainer weldContainer;
@@ -83,7 +86,18 @@ public class WeldContainerControl implements CdiContainer
if (ctxCtrl == null)
{
Set<Bean<?>> beans = getBeanManager().getBeans(ContextControl.class);
- ctxCtrlBean = (Bean<ContextControl>) getBeanManager().resolve(beans);
+ BeanManager beanManager = getBeanManager();
+
+ if (beanManager == null)
+ {
+ LOG.warning("If the CDI-container was started by the environment, you can't use this helper." +
+ "Instead you can resolve ContextControl manually " +
+ "(e.g. via BeanProvider.getContextualReference(ContextControl.class) ). " +
+ "If the container wasn't started already, you have to use CdiContainer#boot before.");
+
+ return null;
+ }
+ ctxCtrlBean = (Bean<ContextControl>) beanManager.resolve(beans);
ctxCtrlCreationalContext = getBeanManager().createCreationalContext(ctxCtrlBean);