Hi, I am getting errors from Parameters Interceptor while it tries to set a value for a property.
My JSP is: <s:form theme="ajax" method="post" action="add_account" namespace="/lsf/accounts" validate="true"> <s:textfield required="true" label="Name" name="account.name" /> <s:textfield label="UNIX GroupID" name="account.unixGroupId" /> <s:submit value="Add" onclick="this.form.submit();" /> </s:form> The action is mapped to the method "String add()" of the following class: @Validation @Conversion public class AccountAction extends BaseAction { private Account account; private Long accountId; public void prepare() throws Exception { if ( accountId == null ) account = new Account(); else account = AccountManager.findById(accountId); } public String add() throws Exception { return SUCCESS; } public String update() throws Exception { return SUCCESS; } @VisitorFieldValidator(message = "") public Account getAccount() { return account; } public void setAccount(Account account) { this.account = account; } public Long getAccountId() { return accountId; } public void setAccountId(Long accountId) { this.accountId = accountId; } The definition of the Account class: @Validation @Conversion public class Account { private Long id; private String name; private Long unixGroupId; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } @RequiredStringValidator(message = "Account name is required", trim = true) public void setName(String name) { this.name = name; } public long getUnixGroupId() { return unixGroupId; } @TypeConversion(converter = "actions.NullLongConverter") @ConversionErrorFieldValidator(message = "UNIX GroupID must be in the range 0..65535") @RegexFieldValidator( message = "UNIX GroupID must be in the range 0..65535", expression = "^\\s*(?:[0-9]{1,6})?\\s*$") public void setUnixGroupId(Long unixGroupId) { this.unixGroupId = unixGroupId; } } My validator: public class NullLongConverter extends StrutsTypeConverter { public Object convertFromString(Map context, String[] values, Class toClass) { Long val = null; if ( values != null && values[0] != null && !values[0].equals("") ) { try { values[0].trim(); val = Long.parseLong(values[0]); long v = val.longValue(); if ( v < 0 || v > 65535 ) val = null; } catch( Exception ex ) { } } return val; } public String convertToString(Map context, Object o) { if ( o == null ) return null; else return o.toString(); } } My action is using the paramsPrepareParamsStack. I get this exceptions from [ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor 28 Jan 2008 16:37:50] ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'account.unixGroupId' on 'class actions.lsf.accounts.AccountAction: Error setting expression 'account.unixGroupId' with value '12' [ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor 28 Jan 2008 16:37:51] ParametersInterceptor - [setParameters ]: Unexpected Exception caught setting 'account.unixGroupId' on 'class actions.lsf.accounts.AccountAction: Error setting expression 'account.unixGroupId' with value'[Ljava.lang.String;@52f9b2' Any ideia why this is not working? By the way, I also tried not using custom conversions / validations, that is, using the built in conversion mechanisms. I get similar errors. Thanks -- Filipe David Manana, [EMAIL PROTECTED] Obvious facts are like secrets to those not trained to see them. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]