Still working on the WebObjects, WOlips and Wonder tutorial, part 2...

Getting a null pointer exception. I've spent hours trying to figure out the 
issue, but I just don't have the experience to properly trouble shoot it. The 
stack trace is below, and below that is the code for my DirectAction.  The 
console says the error occurs on line 55, which is "if (errorMessage != null || 
errorMessage.length() != 0) { "

The thing is, errorMessage is null at this point. I've entered in valid user 
credentials, the session object has been created. The currentUser and nextPage 
objects are not null.  nextPage is set to "AdminPage".   As soon as I try to 
step into the "if (errorMessage != null || errorMessage.length() != 0) {"    
line the exception occurs.  Is this a scope issue? 

Thanks.


Application: SooperSeekrit Error: java.lang.NullPointerException Reason: Stack 
trace:
File    Line#   Method  Package
DirectAction.java       55      loginAction     com.sooperseekrit.app
NativeMethodAccessorImpl.java   NA      invoke0 sun.reflect
NativeMethodAccessorImpl.java   39      invoke  sun.reflect
DelegatingMethodAccessorImpl.java       25      invoke  sun.reflect
Method.java     597     invoke  java.lang.reflect
WODirectAction.java     144     performActionNamed      com.webobjects.appserver
ERXDirectAction.java    401     performActionNamed      er.extensions.appserver
WOActionRequestHandler.java     259     _handleRequest  
com.webobjects.appserver._private
WOActionRequestHandler.java     158     handleRequest   
com.webobjects.appserver._private
ERXDirectActionRequestHandler.java      126     handleRequest   
er.extensions.appserver
WOApplication.java      1687    dispatchRequest com.webobjects.appserver
ERXApplication.java     2021    dispatchRequestImmediately      
er.extensions.appserver
ERXApplication.java     1986    dispatchRequest er.extensions.appserver
WOWorkerThread.java     144     runOnce com.webobjects.appserver._private
WOWorkerThread.java     226     run     com.webobjects.appserver._private
Thread.java     680     run     java.lang





package com.sooperseekrit.app;

import java.util.NoSuchElementException;

import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WORequest;
import com.webobjects.eocontrol.EOQualifier;

import er.extensions.appserver.ERXDirectAction;
import er.extensions.eof.ERXEC;

import com.sooperseekrit.components.AdminPage;
import com.sooperseekrit.components.Main;
import com.sooperseekrit.components.UserPage;
import com.sooperseekrit.model.User;

public class DirectAction extends ERXDirectAction {
        public DirectAction(WORequest request) {
                super(request);
        }
        
        
        @Override
        public WOActionResults defaultAction() {
                return pageWithName(Main.class.getName());
        }
        
        public WOActionResults loginAction() {
                
                WOComponent nextPage = null;
                String username = request().stringFormValueForKey("username");
                String password = request().stringFormValueForKey("password");
                String errorMessage = null;
                if (username == null || username.length() == 0 || 
                                password == null || password.length() == 0) {
                        errorMessage = "Please enter a username and password";
                }       else {
                        try {
                        EOQualifier qual = 
User.USERNAME.eq(username).and(User.PASSWORD.eq(password));
                        User user = 
User.fetchRequiredUser(ERXEC.newEditingContext(), qual);
                        ((Session)session()).set_currentUser(user);
                        if (user.group().name().equals("Admin")) {
                                nextPage = 
pageWithName(AdminPage.class.getName());
                        } else if (user.group().name().equals("User")) {
                                nextPage = 
pageWithName(UserPage.class.getName());
                        }
                        } catch (NoSuchElementException e) {
                                errorMessage = "No user found for those 
credentials";
                        } catch (Exception e) {
                                // something bad happened
                        }
                }
                
                if (errorMessage != null || errorMessage.length() != 0) {
                        nextPage = pageWithName(Main.class.getName());
                        nextPage.takeValueForKey(errorMessage, "errorMessage");
                        nextPage.takeValueForKey(username, "username");
                        nextPage.takeValueForKey(password, "password");
                }
                
                return nextPage;
        }
}

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to