Hi! I found a bug in the example code DummyCart.java Your code: /* * Copyright 2004 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. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package sessions; import javax.servlet.http.*; import java.util.Vector; import java.util.Enumeration; public class DummyCart { Vector v = new Vector(); String submit = null; String item = null; private void addItem(String name) { v.addElement(name); } private void removeItem(String name) { v.removeElement(name); } public void setItem(String name) { item = name; } public void setSubmit(String s) { submit = s; } public String[] getItems() { String[] s = new String[ v.size()]; v.copyInto(s); return s; } public void processRequest(HttpServletRequest request) { // null value for submit - user hit enter instead of clicking on // "add" or "remove" if (submit == null) addItem(item); if (submit.equals("add")) addItem(item); else if (submit.equals("remove")) removeItem(item); // reset at the end of the request reset(); } // reset private void reset() { submit = null; item = null; } } 1. the argument request in method processRequest does nothing. 2. see this code block: // null value for submit - user hit enter instead of clicking on // "add" or "remove" if (submit == null) addItem(item); if (submit.equals("add")) addItem(item); else if (submit.equals("remove")) removeItem(item); there is a logical bug in it. It should be: if (submit == null || submit.equals("add")) addItem(item); elseif (submit.equals("remove")) removeItem(item); because if submit == null is true: the original code will yield an NullPointerException. under the condition submit == null, submit.equals("add") will not work properly.
If you could submit this in diff -u format (see http://jakarta.apache.org/site/source.html#Patches for instructions), that'd be great. Thanks!
This has been fixed in svn for 5.5.x and 6.0.x and will be included in the next release of each. Thanks for the report.