Kevin

This is a java or may be even programming issue, NOT a WebObjects one.

Because of the || or operator, the runtime has to evaluate the second portion 
of the condition.  Since errorMessage is null, length() of errorMessage will 
throw the exception...

Paul

Sent from my iPad

On Dec 4, 2011, at 3:22 AM, Philippe Rabier <prab...@me.com> wrote:

> 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/pyu%40mac.com
> 
> This email sent to p...@mac.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