Hi Kevin

You have to use a && operator when you test if your string is not null and 
length > 0. ;-)

Bad copy/paste I guess. 

Your code is clean.  

Philippe

Sent from my iPhone

On 4 déc. 2011, at 09:01, Kevin Spake <sparky0...@yahoo.com> wrote:

> 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      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/prabier%40me.com
> 
> This email sent to prab...@me.com
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to