You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/04/04 17:44:59 UTC

svn commit: r525541 - in /tapestry/tapestry4/trunk: ./ tapestry-annotations/ tapestry-contrib/ tapestry-contrib/src/site/xdoc/componentreference/ tapestry-examples/TimeTracker/ tapestry-examples/Workbench/ tapestry-framework/src/java/org/apache/tapestr...

Author: jkuhnert
Date: Wed Apr  4 08:44:57 2007
New Revision: 525541

URL: http://svn.apache.org/viewvc?view=rev&rev=525541
Log:
Fixes TAPESTRY-1402. 

For whatever reason my previous catch blocks weren't being executed so I moved them around some and things seem to work now.

Modified:
    tapestry/tapestry4/trunk/pom.xml
    tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml
    tapestry/tapestry4/trunk/tapestry-contrib/src/site/xdoc/componentreference/palette.xml
    tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml
    tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml
    tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/pom.xml
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java
    tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml
    tapestry/tapestry4/trunk/tapestry.iml
    tapestry/tapestry4/trunk/tapestry.ipr
    tapestry/tapestry4/trunk/tapestry.iws

Modified: tapestry/tapestry4/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/pom.xml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/pom.xml (original)
+++ tapestry/tapestry4/trunk/pom.xml Wed Apr  4 08:44:57 2007
@@ -340,7 +340,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-clean-plugin</artifactId>
-                    <version>2.1.1-SNAPSHOT</version>
+                    <version>2.2-SNAPSHOT</version>
                     <inherited>true</inherited>
                 </plugin>
                 <plugin>

Modified: tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml Wed Apr  4 08:44:57 2007
@@ -11,7 +11,7 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="tapestry-framework" exported="" />
+    <orderEntry type="module" module-name="tapestry" exported="" />
     <orderEntry type="module-library" exported="">
       <library name="Maven Dependency: backport-util-concurrent:backport-util-concurrent:jar:2.2:compile">
         <CLASSES>

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/site/xdoc/componentreference/palette.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/site/xdoc/componentreference/palette.xml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/site/xdoc/componentreference/palette.xml (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/site/xdoc/componentreference/palette.xml Wed Apr  4 08:44:57 2007
@@ -58,7 +58,7 @@
                         <td>selected</td>
                         <td>java.util.List</td>
                         <td>yes</td>
-                        <td>&nbsp;</td>
+                        <td></td>
                         <td>
                             A List of selected values. Possible selections are defined by the model;
                             this should be a subset of the possible values. This may be null when
@@ -78,7 +78,7 @@
                             </a>
                         </td>
                         <td>yes</td>
-                        <td>&nbsp;</td>
+                        <td></td>
                         <td>
                             Works, as with a
                             <a href="../../components/form/propertyselection.html">PropertySelection</a>
@@ -106,7 +106,7 @@
                         <td>id</td>
                         <td>string</td>
                         <td>no</td>
-                        <td>&nbsp;</td>
+                        <td></td>
                         <td>
                             Sets the id for the rendered <code>&lt;select&gt;</code> element that displays the 
                             selected items.
@@ -116,7 +116,7 @@
                         <td>displayName</td>
                         <td>string</td>
                         <td>no</td>
-                        <td>&nbsp;</td>
+                        <td></td>
                         <td>
                             The user-presentable name for the component, which will be used by a
                             <a href="../../components/form/fieldlabel.html">FieldLabel</a>
@@ -133,7 +133,7 @@
                             </a>
                         </td>
                         <td>no</td>
-                        <td>&nbsp;</td>
+                        <td></td>
                         <td>
                             The validators to apply to the component. Something along the lines of:
                             <code>validators:required</code> .<br/><br/>
@@ -211,7 +211,7 @@
                             </a>
                         </td>
                         <td>no</td>
-                        <td>&nbsp;</td>
+                        <td></td>
                         <td>
                             If any of these are specified then they override the default images
                             provided with the component. This allows the look and feel to be

Modified: tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml Wed Apr  4 08:44:57 2007
@@ -11,7 +11,7 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="tapestry-framework" exported="" />
+    <orderEntry type="module" module-name="tapestry" />
     <orderEntry type="module-library" exported="">
       <library name="Maven Dependency: backport-util-concurrent:backport-util-concurrent:jar:2.2:compile">
         <CLASSES>

Modified: tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml Wed Apr  4 08:44:57 2007
@@ -13,9 +13,8 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="tapestry" />
     <orderEntry type="module" module-name="tapestry-annotations" />
-    <orderEntry type="module" module-name="tapestry-contrib" />
-    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntry type="module-library">
       <library>
         <CLASSES>

Modified: tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/pom.xml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/pom.xml (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/pom.xml Wed Apr  4 08:44:57 2007
@@ -18,14 +18,17 @@
         <dependency>
             <groupId>org.apache.tapestry</groupId>
             <artifactId>tapestry-framework</artifactId>
+            <version>4.1.2-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
             <artifactId>tapestry-annotations</artifactId>
+            <version>4.1.2-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.tapestry</groupId>
             <artifactId>tapestry-contrib</artifactId>
+            <version>4.1.2-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>hivemind</groupId>

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml Wed Apr  4 08:44:57 2007
@@ -15,9 +15,8 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="tapestry" />
     <orderEntry type="module" module-name="tapestry-annotations" />
-    <orderEntry type="module" module-name="tapestry-contrib" />
-    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntry type="module-library">
       <library>
         <CLASSES>

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java Wed Apr  4 08:44:57 2007
@@ -19,7 +19,6 @@
 import ognl.enhance.*;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.service.ClassFab;
 import org.apache.hivemind.service.ClassFactory;
 import org.apache.hivemind.service.MethodSignature;
@@ -121,52 +120,62 @@
             String getBody = null;
             String setBody = null;
 
-            try {
+            ClassFab classFab = _classFactory.newClass(expression.getClass().getName() + expression.hashCode() + "Accessor", Object.class);
+            classFab.addInterface(ExpressionAccessor.class);
 
-                ClassFab classFab = _classFactory.newClass(expression.getClass().getName() + expression.hashCode() + "Accessor", Object.class);
-                classFab.addInterface(ExpressionAccessor.class);
+            MethodSignature valueGetter = new MethodSignature(Object.class, "get", new Class[]{OgnlContext.class, Object.class}, null);
+            MethodSignature valueSetter = new MethodSignature(void.class, "set", new Class[]{OgnlContext.class, Object.class, Object.class}, null);
 
-                MethodSignature valueGetter = new MethodSignature(Object.class, "get", new Class[]{OgnlContext.class, Object.class}, null);
-                MethodSignature valueSetter = new MethodSignature(void.class, "set", new Class[]{OgnlContext.class, Object.class, Object.class}, null);
+            MethodSignature expressionSetter = new MethodSignature(void.class, "setExpression", new Class[]{Node.class}, null);
 
-                MethodSignature expressionSetter = new MethodSignature(void.class, "setExpression", new Class[]{Node.class}, null);
+            // must evaluate expression value at least once if object isn't null
 
-                // must evaluate expression value at least once if object isn't null
+            if (root != null)
+                Ognl.getValue(expression, context, root);
 
-                if (root != null)
-                    Ognl.getValue(expression, context, root);
+            try {
 
-                try {
+                getBody = generateGetter(context, classFab, valueGetter, expression, root);
 
-                    getBody = generateGetter(context, classFab, valueGetter, expression, root);
+            } catch (UnsupportedCompilationException uc) {
 
-                } catch (UnsupportedCompilationException uc) {
+                // The target object may not fully resolve yet because of a partial tree with a null somewhere, we
+                // don't want to bail out forever because it might be enhancable on another pass eventually
 
-                    // The target object may not fully resolve yet because of a partial tree with a null somewhere, we 
-                    // don't want to bail out forever because it might be enhancable on another pass eventually
+                return;
+            }
 
-                    return;
-                }
+            try {
 
                 classFab.addMethod(Modifier.PUBLIC, valueGetter, getBody);
 
-                try {
+            } catch (Throwable t) {
+
+                t.printStackTrace();
 
-                    setBody = generateSetter(context, classFab, valueSetter, expression, root);
+                generateFailSafe(context, expression, root);
+                return;
+            }
 
-                } catch (UnsupportedCompilationException uc) {
-                    
-                    if (_log.isDebugEnabled())
-                        _log.warn("Unsupported setter compilation caught: " + uc.getMessage() + " for expression: " + expression.toString());
+            try {
 
-                    setBody = generateOgnlSetter(classFab, valueSetter);
-                    
-                    if (!classFab.containsMethod(expressionSetter)) {
+                setBody = generateSetter(context, classFab, valueSetter, expression, root);
 
-                        classFab.addField("_node", Node.class);
-                        classFab.addMethod(Modifier.PUBLIC, expressionSetter, "{ _node = $1; }");
-                    }
+            } catch (UnsupportedCompilationException uc) {
+
+                if (_log.isDebugEnabled())
+                    _log.warn("Unsupported setter compilation caught: " + uc.getMessage() + " for expression: " + expression.toString());
+
+                setBody = generateOgnlSetter(classFab, valueSetter);
+
+                if (!classFab.containsMethod(expressionSetter)) {
+
+                    classFab.addField("_node", Node.class);
+                    classFab.addMethod(Modifier.PUBLIC, expressionSetter, "{ _node = $1; }");
                 }
+            }
+
+            try {
 
                 if (setBody == null) {
                     setBody = generateOgnlSetter(classFab, valueSetter);
@@ -187,25 +196,21 @@
 
                 expression.setAccessor((ExpressionAccessor) clazz.newInstance());
 
-                // need to set expression on node if the field was just defined.
+            }  catch (Throwable t) {
+
+                t.printStackTrace();
 
-                if (classFab.containsMethod(expressionSetter)) {
+                generateFailSafe(context, expression, root);
+                return;
+            }
 
-                    expression.getAccessor().setExpression(expression);
-                }
+            // need to set expression on node if the field was just defined.
 
-            } catch (CannotCompileException et) {
-                et.printStackTrace();
+            if (classFab.containsMethod(expressionSetter)) {
 
-                generateFailSafe(context, expression, root);
-                
-            } catch (Throwable t) {
-                t.printStackTrace();
-                
-                throw new ApplicationRuntimeException("Error compiling expression on object " + root
-                                                      + " with expression node " + expression + " getter body: " + getBody
-                                                      + " setter body: " + setBody, t);
+                expression.getAccessor().setExpression(expression);
             }
+
         }
     }
 

Modified: tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml Wed Apr  4 08:44:57 2007
@@ -12,7 +12,7 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="tapestry-framework" />
+    <orderEntry type="module" module-name="tapestry" />
     <orderEntry type="module-library">
       <library name="Maven Dependency: backport-util-concurrent:backport-util-concurrent:jar:2.2:compile">
         <CLASSES>

Modified: tapestry/tapestry4/trunk/tapestry.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry.iml?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry.iml (original)
+++ tapestry/tapestry4/trunk/tapestry.iml Wed Apr  4 08:44:57 2007
@@ -45,9 +45,7 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="tapestry-annotations" />
-    <orderEntry type="module" module-name="tapestry-contrib" />
-    <orderEntry type="module" module-name="tapestry-framework" />
+    <orderEntry type="module" module-name="tapestry-annotations" exported="" />
     <orderEntry type="module-library" exported="">
       <library name="Maven Dependency: ant:ant:jar:1.6.5:test">
         <CLASSES>

Modified: tapestry/tapestry4/trunk/tapestry.ipr
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry.ipr?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry.ipr (original)
+++ tapestry/tapestry4/trunk/tapestry.ipr Wed Apr  4 08:44:57 2007
@@ -180,9 +180,8 @@
               <entry>
                 <value>
                   <collection type="java.util.TreeSet">
+                    <entry type="java.lang.String" value="tapestry" />
                     <entry type="java.lang.String" value="tapestry-annotations" />
-                    <entry type="java.lang.String" value="tapestry-contrib" />
-                    <entry type="java.lang.String" value="tapestry-framework" />
                   </collection>
                 </value>
                 <key type="java.lang.String" value="TimeTracker" />
@@ -190,9 +189,8 @@
               <entry>
                 <value>
                   <collection type="java.util.TreeSet">
+                    <entry type="java.lang.String" value="tapestry" />
                     <entry type="java.lang.String" value="tapestry-annotations" />
-                    <entry type="java.lang.String" value="tapestry-contrib" />
-                    <entry type="java.lang.String" value="tapestry-framework" />
                   </collection>
                 </value>
                 <key type="java.lang.String" value="Workbench" />
@@ -201,8 +199,6 @@
                 <value>
                   <collection type="java.util.TreeSet">
                     <entry type="java.lang.String" value="tapestry-annotations" />
-                    <entry type="java.lang.String" value="tapestry-contrib" />
-                    <entry type="java.lang.String" value="tapestry-framework" />
                   </collection>
                 </value>
                 <key type="java.lang.String" value="tapestry" />
@@ -210,7 +206,7 @@
               <entry>
                 <value>
                   <collection type="java.util.TreeSet">
-                    <entry type="java.lang.String" value="tapestry-framework" />
+                    <entry type="java.lang.String" value="tapestry" />
                   </collection>
                 </value>
                 <key type="java.lang.String" value="tapestry-annotations" />
@@ -218,7 +214,7 @@
               <entry>
                 <value>
                   <collection type="java.util.TreeSet">
-                    <entry type="java.lang.String" value="tapestry-framework" />
+                    <entry type="java.lang.String" value="tapestry" />
                   </collection>
                 </value>
                 <key type="java.lang.String" value="tapestry-contrib" />
@@ -226,7 +222,7 @@
               <entry>
                 <value>
                   <collection type="java.util.TreeSet">
-                    <entry type="java.lang.String" value="tapestry-framework" />
+                    <entry type="java.lang.String" value="tapestry" />
                   </collection>
                 </value>
                 <key type="java.lang.String" value="tapestry-portlet" />

Modified: tapestry/tapestry4/trunk/tapestry.iws
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry.iws?view=diff&rev=525541&r1=525540&r2=525541
==============================================================================
--- tapestry/tapestry4/trunk/tapestry.iws (original)
+++ tapestry/tapestry4/trunk/tapestry.iws Wed Apr  4 08:44:57 2007
@@ -18,12 +18,15 @@
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.iws" afterPath="$PROJECT_DIR$/tapestry.iws" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pom.xml" afterPath="$PROJECT_DIR$/pom.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-annotations/tapestry-annotations.iml" afterPath="$PROJECT_DIR$/tapestry-annotations/tapestry-annotations.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-contrib/tapestry-contrib.iml" afterPath="$PROJECT_DIR$/tapestry-contrib/tapestry-contrib.iml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.ipr" afterPath="$PROJECT_DIR$/tapestry.ipr" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-examples/TimeTracker/pom.xml" afterPath="$PROJECT_DIR$/tapestry-examples/TimeTracker/pom.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-examples/TimeTracker/TimeTracker.iml" afterPath="$PROJECT_DIR$/tapestry-examples/TimeTracker/TimeTracker.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-contrib/src/site/xdoc/componentreference/palette.xml" afterPath="$PROJECT_DIR$/tapestry-contrib/src/site/xdoc/componentreference/palette.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-examples/Workbench/Workbench.iml" afterPath="$PROJECT_DIR$/tapestry-examples/Workbench/Workbench.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-contrib/tapestry-contrib.iml" afterPath="$PROJECT_DIR$/tapestry-contrib/tapestry-contrib.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.iml" afterPath="$PROJECT_DIR$/tapestry.iml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-portlet/tapestry-portlet.iml" afterPath="$PROJECT_DIR$/tapestry-portlet/tapestry-portlet.iml" />
     </list>
@@ -221,7 +224,7 @@
       <showLibraryContents />
       <hideEmptyPackages />
       <abbreviatePackageNames />
-      <showStructure PackagesPane="false" ProjectPane="false" Scope="false" Favorites="false" />
+      <showStructure Favorites="false" ProjectPane="false" Scope="false" PackagesPane="false" />
       <autoscrollToSource />
       <autoscrollFromSource />
       <sortByType />
@@ -273,6 +276,30 @@
         <option name="Make" value="true" />
       </method>
     </tempConfiguration>
+    <configuration default="true" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="GROUP_NAME" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="OUTPUT_DIRECTORY" />
+      <option name="ADDITIONAL_CLASS_PATH" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="wholeProject" />
+      </option>
+      <option name="PROPERTIES_FILE" />
+      <properties />
+      <method>
+        <option name="Make" value="true" />
+      </method>
+    </configuration>
     <configuration default="true" type="Remote" factoryName="Remote">
       <option name="USE_SOCKET_TRANSPORT" value="true" />
       <option name="SERVER_MODE" value="false" />
@@ -280,16 +307,6 @@
       <option name="HOST" value="localhost" />
       <option name="PORT" value="5005" />
     </configuration>
-    <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <module name="" />
-    </configuration>
     <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
       <module name="" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
@@ -321,29 +338,15 @@
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <option name="ALTERNATIVE_JRE_PATH" />
     </configuration>
-    <configuration default="true" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
-      <module name="" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="SUITE_NAME" />
-      <option name="PACKAGE_NAME" />
+    <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
       <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="GROUP_NAME" />
-      <option name="TEST_OBJECT" value="CLASS" />
       <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="OUTPUT_DIRECTORY" />
-      <option name="ADDITIONAL_CLASS_PATH" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="wholeProject" />
-      </option>
-      <option name="PROPERTIES_FILE" />
-      <properties />
-      <method>
-        <option name="Make" value="true" />
-      </method>
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <module name="" />
     </configuration>
     <configuration default="false" name="RemoteTimeTracker" type="Remote" factoryName="Remote">
       <option name="USE_SOCKET_TRANSPORT" value="true" />
@@ -451,8 +454,8 @@
       <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
       <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
       <window_info id="File View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2224927" order="0" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="2" />
+      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2322298" order="0" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24975657" order="2" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="6" />
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25830564" order="2" />
       <window_info id="SVN Repositories" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.27219918" order="8" />
@@ -476,7 +479,7 @@
     <option name="PERFORM_COMMIT_IN_BACKGROUND" value="false" />
     <option name="PUT_FOCUS_INTO_COMMENT" value="false" />
     <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
-    <option name="LAST_COMMIT_MESSAGE" value="The promised fail safe ognl expression evaluator changes." />
+    <option name="LAST_COMMIT_MESSAGE" value="Fixes TAPESTRY-1402. &#10;&#10;For whatever reason my previous catch blocks weren't being executed so I moved them around some and things seem to work now." />
     <option name="SAVE_LAST_COMMIT_MESSAGE" value="true" />
     <option name="CHECKIN_DIALOG_SPLITTER_PROPORTION" value="0.8" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
@@ -489,7 +492,6 @@
     <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
     <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
     <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
-    <MESSAGE value="Upgraded commons-fileupload/commons-io." />
     <MESSAGE value="Fixes TAPESTRY-937. Simple stupid indexOf check using &gt; 1 instead of &gt; -1. I'm sure I added this bug at some point." />
     <MESSAGE value="Fixes TAPESTRY-996.&#10;&#10;RequestLocaleManager was being extremely picky about incoming locale requests matching filtered locales if the filtered list didn't contain exact matches when the original filter list has country/language specific listings only." />
     <MESSAGE value="Minor coide cleanups. Removed unused / deprecated for 4.1 interface." />
@@ -499,6 +501,7 @@
     <MESSAGE value="Added auto form binding support to @EventListener. It now automatically figures out which form a targeted IFormComponent is attached to and wires the event up to submit the enclosing form when the event is triggered - unless autoSubmit = false on the annotation." />
     <MESSAGE value="Updated relevant OGNL interfaces to work with new codebase." />
     <MESSAGE value="The promised fail safe ognl expression evaluator changes." />
+    <MESSAGE value="Fixes TAPESTRY-1402. &#10;&#10;For whatever reason my previous catch blocks weren't being executed so I moved them around some and things seem to work now." />
   </component>
   <component name="antWorkspaceConfiguration">
     <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
@@ -515,110 +518,110 @@
     <option name="myLastEditedConfigurable" value="Project Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/tapestry-contrib/src/java/org/apache/tapestry/contrib/inspector/ShowEngine.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/ExpressionEvaluatorImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="42" column="16" selection-start="1500" selection-end="1500" vertical-scroll-proportion="0.28132993">
+        <state line="152" column="12" selection-start="4886" selection-end="4886" vertical-scroll-proportion="0.012787724">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-contrib/src/java/org/apache/tapestry/contrib/inspector/ShowEngine.html">
-      <provider editor-type-id="HtmlPreview">
-        <state />
-      </provider>
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/bean/BeanProviderPropertyAccessor.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="54" column="7" selection-start="1357" selection-end="1358" vertical-scroll-proportion="0.41238013">
+        <state line="95" column="12" selection-start="3191" selection-end="3191" vertical-scroll-proportion="0.6803069">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USERPROFILE$/.m2/repository/hivemind/hivemind/1.1.1/hivemind-1.1.1-sources.jar!/org/apache/hivemind/service/MethodSignature.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/listener/ListenerMapPropertyAccessor.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="117" column="35" selection-start="3424" selection-end="3424" vertical-scroll-proportion="0.16709292">
+        <state line="87" column="8" selection-start="2875" selection-end="2875" vertical-scroll-proportion="0.65473145">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/pom.xml">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/enhance/AbstractFab.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="17" column="20" selection-start="755" selection-end="755" vertical-scroll-proportion="0.2173913">
+        <state line="60" column="46" selection-start="1715" selection-end="1715" vertical-scroll-proportion="0.50877196">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/pom.xml">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/enhance/ClassFabImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="120" column="40" selection-start="4435" selection-end="4435" vertical-scroll-proportion="0.5396419">
+        <state line="165" column="9" selection-start="4366" selection-end="4366" vertical-scroll-proportion="-0.37084398">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/LocaleList.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestExpressionEvaluator.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="42" column="4" selection-start="1264" selection-end="1264" vertical-scroll-proportion="0.33248082">
+        <state line="98" column="0" selection-start="2496" selection-end="2496" vertical-scroll-proportion="0.3196931">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/ExpressionEvaluatorImpl.java">
+    <entry file="file://$PROJECT_DIR$/pom.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="152" column="12" selection-start="4886" selection-end="4886" vertical-scroll-proportion="0.012787724">
+        <state line="448" column="26" selection-start="18609" selection-end="18609" vertical-scroll-proportion="0.51150894">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/bean/BeanProviderPropertyAccessor.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/dojo/form/IAutocompleteModel.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="95" column="12" selection-start="3191" selection-end="3191" vertical-scroll-proportion="0.6803069">
+        <state line="46" column="4" selection-start="1624" selection-end="1624" vertical-scroll-proportion="0.39641944">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/listener/ListenerMapPropertyAccessor.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="87" column="8" selection-start="2875" selection-end="2875" vertical-scroll-proportion="0.65473145">
+        <state line="95" column="15" selection-start="3589" selection-end="3589" vertical-scroll-proportion="0.7800512">
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="jar://$USERPROFILE$/.m2/repository/hivemind/hivemind/1.1.1/hivemind-1.1.1-sources.jar!/org/apache/hivemind/service/ClassFab.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="95" column="16" selection-start="4047" selection-end="4047" vertical-scroll-proportion="0.75438595">
+        <state line="77" column="21" selection-start="3243" selection-end="3243" vertical-scroll-proportion="0.59079283">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/enhance/AbstractFab.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/pom.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="60" column="46" selection-start="1715" selection-end="1715" vertical-scroll-proportion="0.50877196">
+        <state line="16" column="18" selection-start="724" selection-end="724" vertical-scroll-proportion="0.20460358">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pom.xml">
+    <entry file="jar://$USERPROFILE$/.m2/repository/jboss/javassist/3.4.ga/javassist-3.4.ga.jar!/javassist/compiler/CompileError.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="396" column="47" selection-start="16268" selection-end="16268" vertical-scroll-proportion="0.3205456">
+        <state line="22" column="0" selection-start="880" selection-end="880" vertical-scroll-proportion="0.2685422">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java">
+    <entry file="jar://$USERPROFILE$/.m2/repository/jboss/javassist/3.4.ga/javassist-3.4.ga.jar!/javassist/compiler/SyntaxError.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="200" column="16" selection-start="7543" selection-end="7543" vertical-scroll-proportion="0.43563512">
+        <state line="5" column="54" selection-start="197" selection-end="197" vertical-scroll-proportion="0.051150896">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/enhance/ClassFabImpl.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/src/context/Home.html">
+      <provider editor-type-id="HtmlPreview">
+        <state />
+      </provider>
       <provider selected="true" editor-type-id="text-editor">
-        <state line="165" column="9" selection-start="4366" selection-end="4366" vertical-scroll-proportion="-0.37084398">
+        <state line="56" column="0" selection-start="1972" selection-end="1972" vertical-scroll-proportion="0.50305146">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestExpressionEvaluator.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="98" column="0" selection-start="2496" selection-end="2496" vertical-scroll-proportion="0.3196931">
+        <state line="178" column="0" selection-start="6392" selection-end="6392" vertical-scroll-proportion="0.16709292">
           <folding />
         </state>
       </provider>