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