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 2006/08/25 16:26:26 UTC

svn commit: r436811 - in /tapestry/tapestry4/trunk: tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/ tapestry-framework/src/java/org/apache/tapestry/dojo/form/ tapestry-framework/src/java/org/apache/tapestry/util/io/ tapestr...

Author: jkuhnert
Date: Fri Aug 25 07:26:24 2006
New Revision: 436811

URL: http://svn.apache.org/viewvc?rev=436811&view=rev
Log:
Fixes for TAPESTRY-1074. DataSqueezer was getting index out of bounds exceptions when given empty string 
inputs.

Modified:
    tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/io/DataSqueezerImpl.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/utils/TestDataSqueezer.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/TestDataSqueezer.java

Modified: tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java?rev=436811&r1=436810&r2=436811&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java Fri Aug 25 07:26:24 2006
@@ -107,6 +107,12 @@
         cycle.getResponseBuilder().updateComponent("feedbackBlock");
     }
     
+    @EventListener(events = "onblur", targets = "descriptionField", submitForm = "taskForm")
+    public void descriptionChanged(IRequestCycle cycle)
+    {
+        cycle.getResponseBuilder().updateComponent("taskForm");
+    }
+    
     public void linkUpdateClicked()
     {
     }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java?rev=436811&r1=436810&r2=436811&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/Autocompleter.java Fri Aug 25 07:26:24 2006
@@ -148,10 +148,13 @@
     {
         String value = cycle.getParameter(getName());
         
-        Object object = getModel().getValue(getDataSqueezer().unsqueeze(value));
+        Object object = null;
         
         try
         {
+            if (value != null && value.length() > 0)
+                object = getModel().getValue(getDataSqueezer().unsqueeze(value));
+            
             getValidatableFieldSupport().validate(this, writer, cycle, object);
             
             setValue(object);

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/io/DataSqueezerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/io/DataSqueezerImpl.java?rev=436811&r1=436810&r2=436811&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/io/DataSqueezerImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/io/DataSqueezerImpl.java Fri Aug 25 07:26:24 2006
@@ -160,7 +160,9 @@
 
         if (string.equals(NULL_PREFIX))
             return null;
-
+        else if (string.length() <= 0)
+            return null;
+        
         int offset = string.charAt(0) - FIRST_ADAPTOR_OFFSET;
 
         if (offset >= 0 && offset < _adaptorByPrefix.length)

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/utils/TestDataSqueezer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/utils/TestDataSqueezer.java?rev=436811&r1=436810&r2=436811&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/utils/TestDataSqueezer.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/utils/TestDataSqueezer.java Fri Aug 25 07:26:24 2006
@@ -128,6 +128,13 @@
         attempt(new Character('Z'), "cZ");
     }
 
+    public void test_Empty_Value()
+    {
+        Object output = ds.unsqueeze("");
+        
+        assert output == null;
+    }
+    
     public void testString()
     {
         attempt("Now is the time for all good men ...", "SNow is the time for all good men ...");

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/TestDataSqueezer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/TestDataSqueezer.java?rev=436811&r1=436810&r2=436811&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/TestDataSqueezer.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/TestDataSqueezer.java Fri Aug 25 07:26:24 2006
@@ -25,11 +25,14 @@
 @Test
 public class TestDataSqueezer extends BaseComponentTestCase {
 
-    public void testPipeline() throws Exception {
+    public void testPipeline() 
+    throws Exception 
+    {
         final Registry reg = buildFrameworkRegistry( "squeezer-pipeline.xml" );
         final DataSqueezer squeezer = ( DataSqueezer )reg.getService( DataSqueezer.class );
+        
         final String squeezedValue = squeezer.squeeze( "Hello, World!" );
+
         assertTrue( squeezedValue.startsWith( "dummy:" ) );
-        
     }
 }