You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by se...@apache.org on 2006/06/26 03:12:46 UTC
svn commit: r417101 - in /jakarta/turbine/core/trunk: project.xml
src/java/org/apache/turbine/util/uri/TemplateURI.java
src/java/org/apache/turbine/util/uri/TurbineURI.java
src/test/org/apache/turbine/util/uri/TurbineURITest.java xdocs/changes.xml
Author: seade
Date: Sun Jun 25 18:12:45 2006
New Revision: 417101
URL: http://svn.apache.org/viewvc?rev=417101&view=rev
Log:
TRB-8: Incorrect handling of a null return value
Thanks to Gunther Olesch for the patch and Jürgen Hoffmann for assitance.
Note that addition of commons-io to dependencies relates to commented test code.
Modified:
jakarta/turbine/core/trunk/project.xml
jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TemplateURI.java
jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TurbineURI.java
jakarta/turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java
jakarta/turbine/core/trunk/xdocs/changes.xml
Modified: jakarta/turbine/core/trunk/project.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/trunk/project.xml?rev=417101&r1=417100&r2=417101&view=diff
==============================================================================
--- jakarta/turbine/core/trunk/project.xml (original)
+++ jakarta/turbine/core/trunk/project.xml Sun Jun 25 18:12:45 2006
@@ -442,6 +442,11 @@
<url>http://jakarta.apache.org/commons/fileupload/</url>
</dependency>
<dependency>
+ <id>commons-io</id>
+ <version>1.1</version>
+ <url>http://jakarta.apache.org/commons/io/</url>
+ </dependency>
+ <dependency>
<id>commons-lang</id>
<version>2.1</version>
<url>http://jakarta.apache.org/commons/lang/</url>
Modified: jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TemplateURI.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TemplateURI.java?rev=417101&r1=417100&r2=417101&view=diff
==============================================================================
--- jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TemplateURI.java (original)
+++ jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TemplateURI.java Sun Jun 25 18:12:45 2006
@@ -2,7 +2,7 @@
/*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Copyright 2001-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License")
* you may not use this file except in compliance with the License.
@@ -273,9 +273,16 @@
!key.equalsIgnoreCase(CGI_TEMPLATE_PARAM))
{
String[] values = pp.getStrings(key);
- for (int i = 0; i < values.length; i++)
+ if(values != null)
{
- add(type, key, values[i]);
+ for (int i = 0; i < values.length; i++)
+ {
+ add(type, key, values[i]);
+ }
+ }
+ else
+ {
+ add(type, key, "");
}
}
}
Modified: jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TurbineURI.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TurbineURI.java?rev=417101&r1=417100&r2=417101&view=diff
==============================================================================
--- jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TurbineURI.java (original)
+++ jakarta/turbine/core/trunk/src/java/org/apache/turbine/util/uri/TurbineURI.java Sun Jun 25 18:12:45 2006
@@ -831,9 +831,16 @@
!key.equalsIgnoreCase(CGI_SCREEN_PARAM))
{
String[] values = pp.getStrings(key);
- for (int i = 0; i < values.length; i++)
+ if(values != null)
{
- add(type, key, values[i]);
+ for (int i = 0; i < values.length; i++)
+ {
+ add(type, key, values[i]);
+ }
+ }
+ else
+ {
+ add(type, key, "");
}
}
}
Modified: jakarta/turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java?rev=417101&r1=417100&r2=417101&view=diff
==============================================================================
--- jakarta/turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java (original)
+++ jakarta/turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java Sun Jun 25 18:12:45 2006
@@ -18,6 +18,10 @@
import org.apache.commons.configuration.BaseConfiguration;
import org.apache.commons.configuration.Configuration;
+//import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+//import org.apache.commons.fileupload.FileItem;
+import org.apache.fulcrum.parser.DefaultParameterParser;
+import org.apache.fulcrum.parser.ParameterParser;
import org.apache.turbine.services.ServiceManager;
import org.apache.turbine.services.TurbineServices;
import org.apache.turbine.test.BaseTestCase;
@@ -129,4 +133,43 @@
assertEquals("/context/servlet/turbine", turi.getRelativeLink());
}
+ public void testAddEmptyParameterParser()
+ {
+ ParameterParser pp = new DefaultParameterParser();
+ turi.add(1, pp); // 1 = query data
+ assertEquals("/context/servlet/turbine", turi.getRelativeLink());
+}
+ public void testAddParameterParser()
+ {
+ ParameterParser pp = new DefaultParameterParser();
+ pp.add("test", "");
+ turi.add(1, pp); // 1 = query data
+ assertEquals("/context/servlet/turbine?test=", turi.getRelativeLink());
+ turi.removeQueryData("test");
+ assertEquals("/context/servlet/turbine", turi.getRelativeLink());
+
+ pp = new DefaultParameterParser();
+ pp.add("test", (String) null);
+ turi.add(1, pp); // 1 = query data
+ // Should make the following work so as to be consistent with directly added values.
+ //assertEquals("/context/servlet/turbine?test=null", turi.getRelativeLink());
+ turi.removeQueryData("test");
+ assertEquals("/context/servlet/turbine", turi.getRelativeLink());
+
+ // TRB-8
+ //
+ // This is commented out for now as it results in a ClassCastException.
+ // The 2_3 branch parser changes need to be merged into the fulcrum code.
+ //
+ //pp = new DefaultParameterParser();
+ //DiskFileItemFactory factory = new DiskFileItemFactory(10240, null);
+ //FileItem test = factory.createItem("upload-field", "application/octet-stream", false, null);
+ //pp.append("upload-field", test);
+ //// The following causes a ClassCastException with or without the TRB-8 fix.
+ //turi.add(1, pp); // 1 = query data
+ //assertEquals("/context/servlet/turbine?upload-field=", turi.getRelativeLink());
+ //turi.removeQueryData("upload-field");
+ //assertEquals("/context/servlet/turbine", turi.getRelativeLink());
+ }
+
}
Modified: jakarta/turbine/core/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/trunk/xdocs/changes.xml?rev=417101&r1=417100&r2=417101&view=diff
==============================================================================
--- jakarta/turbine/core/trunk/xdocs/changes.xml (original)
+++ jakarta/turbine/core/trunk/xdocs/changes.xml Sun Jun 25 18:12:45 2006
@@ -24,6 +24,10 @@
<body>
<release version="2.4-M2" date="in Subversion">
+ <action type="fix" dev="seade" issue="TRB-8" due-to="Gunther Olesch">
+ A FileItem in a ParameterParser added to TurbineURI or TemplateURI was
+ resulting in a NPE.
+ </action>
<action type="fix" dev="seade" issue="TRB-16" due-to="Jürgen Hoffmann">
TurbineURI was mishandling the empty String.
</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org