Hi,

From the exception stack trace you posted I don't think the problem is in
your controller, but rather in the userform itself. Look for any Spring form
field where the path is of the form "company.x" where x could be any
attribute of the company.

Mike


On 12/18/06, hquinn <[EMAIL PROTECTED]> wrote:


Yeah, for some reason I'm getting that 'null' property, but I don't
understand why...
Here it is the part of my userformcontroller where I use the
companyManager.. I can't see where is the problem..


public void setCompanyManager(CompanyManager companyManager){
       this.companyManager = companyManager;
   }


public ModelAndView onSubmit(HttpServletRequest request,
                                HttpServletResponse response, Object
command,
                                BindException errors)
   throws Exception {
       if (log.isDebugEnabled()) {
           log.debug("entering 'onSubmit' method...");
       }

       User user = (User) command;
       Locale locale = request.getLocale();

       if (request.getParameter("delete") != null) {
           getUserManager().removeUser(user.getId().toString());
           saveMessage(request, getText("user.deleted", user.getFullName
(),
locale));

           return new ModelAndView(getSuccessView());
       } else {
           Boolean encrypt = (Boolean)
getConfiguration().get(Constants.ENCRYPT_PASSWORD);

           if (StringUtils.equals(request.getParameter("encryptPass"),
"true")
                   && (encrypt != null && encrypt.booleanValue())) {

               String algorithm = (String)
getConfiguration().get(Constants.ENC_ALGORITHM);

               if (algorithm == null) { // should only happen for test
case

                   if (log.isDebugEnabled()) {
                       log.debug("assuming testcase, setting algorithm to
'SHA'");
                   }

                   algorithm = "SHA";
               }


user.setPassword(StringUtil.encodePassword(user.getPassword(),
algorithm));
           }

           String[] userRoles = request.getParameterValues("userRoles");

           if (userRoles != null) {
               // for some reason, Spring seems to hang on to the roles in
               // the User object, even though isSessionForm() == false
               user.getRoles().clear();
               for (int i = 0; i < userRoles.length; i++) {
                   String roleName = userRoles[i];
                   user.addRole(roleManager.getRole(roleName));
               }
           }

           Integer originalVersion = user.getVersion();

           try {

user.setCompany(companyManager.getCompany(user.getCompanyId
().toString()));
               getUserManager().saveUser(user);
           } catch (UserExistsException e) {
               log.warn(e.getMessage());

               errors.rejectValue("username", "errors.existing.user",
                                  new Object[] {
                                      user.getUsername(), user.getEmail()
                                  }, "duplicate user");

               // redisplay the unencrypted passwords
               user.setPassword(user.getConfirmPassword());
               // reset the version # to what was passed in
               user.setVersion(originalVersion);

               return showForm(request, response, errors);
           }

           if (!StringUtils.equals(request.getParameter("from"), "list"))
{
               saveMessage(request, getText("user.saved",
user.getFullName(), locale));

               // return to main Menu
               return new ModelAndView(new RedirectView("mainMenu.html"));
           } else {
               if (StringUtils.isBlank(request.getParameter("version"))) {
                   saveMessage(request, getText("user.added",
user.getFullName(), locale));

                   // Send an account information e-mail
                   message.setSubject(getText("signup.email.subject",
locale));
                   sendUserMessage(user, getText("newuser.email.message",
user.getFullName(), locale),
                                   RequestUtil.getAppURL(request));

                   return showNewForm(request, response);
               } else {
                   saveMessage(request, getText("user.updated.byAdmin",
user.getFullName(), locale));
               }
           }
       }

       return showForm(request, response, errors);
   }


Michael Horwitz wrote:
>
> Hi,
>
> It would seem you are trying to navigate the relationship between a user
> and
> a company, but that the company on the specified user is null. So in
your
> userform you have a path of the form 'user.company.x' and for this
> specific
> user the company attribute is null?
>
> Mike
>
>
> On 12/18/06, hquinn <[EMAIL PROTECTED]> wrote:
>>
>>
>> Greetings everyone!
>> When I'm testing my application I get this error during the test-web.
Can
>> someone tell me why? It seems it has to do with a relationship I have
>> (User-Company), but I'm not sure... any comments??
>> Thanx
>>
>> Testcase: testSave(mx.edu.um.musas.webapp.action.UserFormControllerTest
):
>> Caused an ERROR
>>    [junit] Invalid property 'company' of bean class
>> [mx.edu.um.musas.model.User]: Value of nested property 'company' is
null
>>    [junit] org.springframework.beans.NullValueInNestedPathException:
>> Invalid property 'company' of bean class [mx.edu.um.musas.model.User]:
>> Value
>> of nested property 'company' is null
>>    [junit] at
>> org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper(
>> BeanWrapperImpl.java:419)
>>    [junit] at
>> org.springframework.beans.BeanWrapperImpl.getBeanWrapperForPropertyPath
(
>> BeanWrapperImpl.java:394)
>>    [junit] at
>> org.springframework.beans.BeanWrapperImpl.setPropertyValue(
>> BeanWrapperImpl.java:601)
>>    [junit] at
>> org.springframework.beans.AbstractPropertyAccessor.setPropertyValue(
>> AbstractPropertyAccessor.java:49)
>>    [junit] at
>> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(
>> AbstractPropertyAccessor.java:74)
>>    [junit] at
>> org.springframework.validation.DataBinder.applyPropertyValues(
>> DataBinder.java:515)
>>    [junit] at
>> org.springframework.validation.DataBinder.doBind(DataBinder.java:417)
>>    [junit] at
>> org.springframework.web.bind.WebDataBinder.doBind(WebDataBinder.java
:146)
>>    [junit] at
>> org.springframework.web.bind.ServletRequestDataBinder.bind(
>> ServletRequestDataBinder.java:108)
>>    [junit] at
>>
org.springframework.web.servlet.mvc.BaseCommandController.bindAndValidate(
>> BaseCommandController.java:369)
>>    [junit] at
>>
>>
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal
>> (AbstractFormController.java:248)
>>    [junit] at
>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(
>> AbstractController.java:153)
>>    [junit] at
>> mx.edu.um.musas.webapp.action.UserFormControllerTest.testSave(
>> UserFormControllerTest.java:57)
>>    [junit] TEST
>> mx.edu.um.musas.webapp.action.UserFormControllerTestFAILED
>>    [junit] Testsuite: mx.edu.um.musas.webapp.filter.LocaleFilterTest
>>    [junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.125sec
>>    [junit] [musas] DEBUG [main] StartupListener.contextInitialized(43)
|
>> initializing context...
>>    [junit] [musas] DEBUG [main] StartupListener.contextInitialized(94)
|
>> Remember Me Enabled? null
>>    [junit] [musas] DEBUG [main] StartupListener.contextInitialized(95)
|
>> Encrypt Passwords? false
>>    [junit] [musas] DEBUG [main] StartupListener.contextInitialized(99)
|
>> Populating drop-downs...
>>    [junit] [musas] DEBUG [main] LookupDaoHibernate.getRoles(21) |
>> retrieving all role names...
>>    [junit] [musas] DEBUG [main] StartupListener.setupContext(115) |
>> Drop-down initialization complete [OK]
>>    [junit] Testsuite:
mx.edu.um.musas.webapp.listener.StartupListenerTest
>>    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.828sec
>>    [junit] Tests FAILED
>> --
>> View this message in context:
>> http://www.nabble.com/test-web-fails-tf2841097s2369.html#a7932409
>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>

--
View this message in context:
http://www.nabble.com/test-web-fails-tf2841097s2369.html#a7937382
Sent from the AppFuse - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to