tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 39212] New: - a bug in example code DummyCart.java
Date Wed, 05 Apr 2006 09:20:21 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=39212>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39212

           Summary: a bug in example code DummyCart.java
           Product: Tomcat 5
           Version: 5.5.15
          Platform: PC
        OS/Version: Windows 2000
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Webapps:Examples
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: foxlover66@gmail.com


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.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message