You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2009/04/16 14:38:48 UTC
svn commit: r765611 - in
/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope:
CompositeScopeContainer.java RequestScopeContainer.java
StatelessScopeContainer.java
Author: antelder
Date: Thu Apr 16 12:38:47 2009
New Revision: 765611
URL: http://svn.apache.org/viewvc?rev=765611&view=rev
Log:
TUSCANY-2851, fix exceptions during init processing of java components to call destroy
Modified:
tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/CompositeScopeContainer.java
tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/RequestScopeContainer.java
tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/StatelessScopeContainer.java
Modified: tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/CompositeScopeContainer.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/CompositeScopeContainer.java?rev=765611&r1=765610&r2=765611&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/CompositeScopeContainer.java (original)
+++ tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/CompositeScopeContainer.java Thu Apr 16 12:38:47 2009
@@ -50,7 +50,20 @@
public synchronized InstanceWrapper getWrapper(KEY contextId) throws TargetResolutionException {
if (wrapper == null) {
wrapper = createInstanceWrapper();
- wrapper.start();
+ try {
+ wrapper.start();
+ } catch (ThreadDeath td) {
+ throw td;
+ } catch (Throwable e) {
+ try {
+ wrapper.stop();
+ } catch (ThreadDeath td) {
+ throw td;
+ } catch (Throwable e2) {
+ }
+ wrapper = null;
+ throw new TargetInitializationException(e);
+ }
}
return wrapper;
}
Modified: tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/RequestScopeContainer.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/RequestScopeContainer.java?rev=765611&r1=765610&r2=765611&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/RequestScopeContainer.java (original)
+++ tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/RequestScopeContainer.java Thu Apr 16 12:38:47 2009
@@ -62,6 +62,14 @@
// synchronized (destroyQueues) {
// destroyQueues.clear();
// }
+ for (InstanceWrapper ctx : wrappers.values()) {
+ try {
+ ctx.stop();
+ } catch (ThreadDeath td) {
+ throw td;
+ } catch (Throwable e2) {
+ }
+ }
lifecycleState = STOPPED;
}
@@ -72,8 +80,20 @@
}
if (ctx == null) {
ctx = super.createInstanceWrapper();
- ctx.start();
- wrappers.put(Thread.currentThread(), ctx);
+ try {
+ ctx.start();
+ wrappers.put(Thread.currentThread(), ctx);
+ } catch (ThreadDeath td) {
+ throw td;
+ } catch (Throwable e) {
+ try {
+ ctx.stop();
+ } catch (ThreadDeath td) {
+ throw td;
+ } catch (Throwable e2) {
+ }
+ throw new TargetInitializationException(e);
+ }
}
return ctx;
}
Modified: tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/StatelessScopeContainer.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/StatelessScopeContainer.java?rev=765611&r1=765610&r2=765611&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/StatelessScopeContainer.java (original)
+++ tuscany/branches/sca-java-1.x/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/StatelessScopeContainer.java Thu Apr 16 12:38:47 2009
@@ -36,7 +36,19 @@
public InstanceWrapper getWrapper(KEY contextId)
throws TargetResolutionException {
InstanceWrapper ctx = createInstanceWrapper();
- ctx.start();
+ try {
+ ctx.start();
+ } catch (ThreadDeath td) {
+ throw td;
+ } catch (Throwable e) {
+ try {
+ ctx.stop();
+ } catch (ThreadDeath td) {
+ throw td;
+ } catch (Throwable e2) {
+ }
+ throw new TargetInitializationException(e);
+ }
return ctx;
}