You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2013/09/13 00:10:28 UTC

git commit: ISIS-520: fixing regression (infinite loop if run under Tomcat).

Updated Branches:
  refs/heads/master edfc5f5f7 -> b31ace2c6


ISIS-520: fixing regression (infinite loop if run under Tomcat).


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b31ace2c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b31ace2c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b31ace2c

Branch: refs/heads/master
Commit: b31ace2c6c7471d8747981acfd28122333433fda
Parents: edfc5f5
Author: Dan Haywood <da...@apache.org>
Authored: Thu Sep 12 23:10:05 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Sep 12 23:10:05 2013 +0100

----------------------------------------------------------------------
 .../wicket/viewer/IsisWicketApplication.java    | 27 ++++++++++++++------
 1 file changed, 19 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/b31ace2c/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 49b944e..dcd6fb0 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -175,6 +175,7 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
 
     private BookmarkedPagesModel bookmarkedPagesModel;
 
+    private boolean determiningDeploymentType;
     private DeploymentTypeWicketAbstract deploymentType;
 
 
@@ -224,10 +225,15 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
             return;
         }
         
-        final IsisConfigurationBuilder isisConfigurationBuilder = createConfigBuilder();
-        final IsisConfiguration configuration = isisConfigurationBuilder.getConfiguration();
-        String deploymentTypeFromConfig = configuration.getString("isis.deploymentType");
-        deploymentType = determineDeploymentType(deploymentTypeFromConfig);
+        determiningDeploymentType = true;
+        try {
+            final IsisConfigurationBuilder isisConfigurationBuilder = createConfigBuilder();
+            final IsisConfiguration configuration = isisConfigurationBuilder.getConfiguration();
+            String deploymentTypeFromConfig = configuration.getString("isis.deploymentType");
+            deploymentType = determineDeploymentType(deploymentTypeFromConfig);
+        } finally {
+            determiningDeploymentType = false;
+        }
     }
     
     private boolean determineStripWicketTags(IsisConfiguration configuration) {
@@ -244,6 +250,11 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
 
     @Override
     public RuntimeConfigurationType getConfigurationType() {
+        if(determiningDeploymentType) {
+            // avoiding an infinite loop; have already passed through here once before
+            // this time around, just delegate to web-inf
+            return super.getConfigurationType();
+        }
         determineDeploymentTypeIfRequired();
         return deploymentType.getConfigurationType();
     }
@@ -275,10 +286,10 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
     protected IsisConfigurationBuilder createConfigBuilder(final ServletContext servletContext) {
         
         final String configLocation = servletContext.getInitParameter(WebAppConstants.CONFIG_DIR_PARAM);
-        final ResourceStreamSourceComposite compositeSource = new ResourceStreamSourceComposite(
-                new ResourceStreamSourceForWebInf(servletContext),
-                ResourceStreamSourceContextLoaderClassPath.create(),
-                new ResourceStreamSourceCurrentClassClassPath());
+        final ResourceStreamSourceForWebInf rssWebInf = new ResourceStreamSourceForWebInf(servletContext);
+        final ResourceStreamSourceContextLoaderClassPath rssContextLoaderClassPath = ResourceStreamSourceContextLoaderClassPath.create();
+        final ResourceStreamSourceCurrentClassClassPath rssCurrentClassPath = new ResourceStreamSourceCurrentClassClassPath();
+        final ResourceStreamSourceComposite compositeSource = new ResourceStreamSourceComposite(rssWebInf, rssContextLoaderClassPath, rssCurrentClassPath);
 
         if ( configLocation != null ) {
             LOG.info( "Config override location: " + configLocation );