Hi,

[Sorry, this was posted to Struts this morning, but on further
investigation, it appears to be a (possibly known) issue with the
bean-utils + reflection. ]

I am upgrading Struts from a Jan 2002 nightly binary to the 11/13/02
nightly binary and I am seeing the following exception during a form
bean population. I saw that a bug was in the commons-beanutils jar
recently, so I upgraded that to the 11/19/02 jar and still no help.
Please let me know what else I may need to provide. 

Here is the exception and relevant information:

2002-11-19 10:06:10,555 INFO
[org.apache.struts.action.RequestProcessor] Processing a 'POST' for path
'/tree/addTaxonomy'
2002-11-19 10:06:10,555 DEBUG [org.apache.struts.util.RequestUtils]
Looking for ActionForm bean instance in scope 'session' under attribute
key 'addTaxonomyForm'
2002-11-19 10:06:10,555 DEBUG [org.apache.struts.util.RequestUtils]
Recycling existing ActionForm instance of class
'com.betweenmarkets.web.tree.form.AddTaxonomyRequestForm'
2002-11-19 10:06:10,555 DEBUG [org.apache.struts.util.RequestUtils]  -->
Form- name:Untitled Classification taxonomyPackageName:
newClassification:  description:  returnPage: 
2002-11-19 10:06:10,555 DEBUG
[org.apache.struts.action.RequestProcessor]  Storing ActionForm bean
instance in scope 'session' under attribute key 'addTaxonomyForm'
2002-11-19 10:06:10,555 DEBUG
[org.apache.struts.action.RequestProcessor]  Populating bean properties
from this request
2002-11-19 10:06:10,555 DEBUG [org.apache.commons.beanutils.BeanUtils]
BeanUtils.populate(Form- name:Untitled Classification
taxonomyPackageName:  newClassification:  description:  returnPage: ,
{newClassification=[Ljava.lang.String;@c2354,
GoToStep2.y=[Ljava.lang.String;@6396f5,
GoToStep2.x=[Ljava.lang.String;@4bce4f,
returnPage=[Ljava.lang.String;@55d048,
taxonomyPackageName=[Ljava.lang.String;@5d5a2c})
2002-11-19 10:06:10,555 DEBUG [org.apache.commons.beanutils.BeanUtils]
setProperty(Form- name:Untitled Classification taxonomyPackageName:
newClassification:  description:  returnPage: , newClassification,
[new])
2002-11-19 10:06:10,555 DEBUG [org.apache.commons.beanutils.BeanUtils]
Skipping read-only property
2002-11-19 10:06:10,555 DEBUG [org.apache.commons.beanutils.BeanUtils]
setProperty(Form- name:Untitled Classification taxonomyPackageName:
newClassification:  description:  returnPage: , GoToStep2.y, [11])
2002-11-19 10:06:10,585 WARN  [org.jboss.jbossweb] WARNING: Error for
/transactionmanagerweb/tree/addTaxonomy.bmi
java.lang.IllegalAccessError: try to access class
org.apache.commons.beanutils.MappedPropertyDescriptor$1 from class
org.apache.commons.beanutils.MappedPropertyDescriptor
        at
org.apache.commons.beanutils.MappedPropertyDescriptor.getPublicDeclaredM
ethods(MappedPropertyDescriptor.java:378)
        at
org.apache.commons.beanutils.MappedPropertyDescriptor.internalFindMethod
(MappedPropertyDescriptor.java:448)
        at
org.apache.commons.beanutils.MappedPropertyDescriptor.findMethod(MappedP
ropertyDescriptor.java:522)
        at
org.apache.commons.beanutils.MappedPropertyDescriptor.<init>(MappedPrope
rtyDescriptor.java:149)
        at
org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(Propert
yUtils.java:889)
        at
org.apache.commons.beanutils.PropertyUtils.getSimpleProperty(PropertyUti
ls.java:1154)
        at
org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUti
ls.java:754)
        at
org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.jav
a:783)
        at
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:793)
        at
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:726)
        at
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:962)
        at
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcess
or.java:798)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
254)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1349)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:507)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366)
        at
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplic
ationHandler.java:341)
        at
com.betweenmarkets.web.accesscontrol.AccessControlServletFilter.doFilter
(AccessControlServletFilter.java:128)
        at
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplic
ationHandler.java:333)
        at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationH
andler.java:285)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1687)
        at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationCon
text.java:544)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1637)
        at org.mortbay.http.HttpServer.service(HttpServer.java:875)
        at org.jboss.jetty.Jetty.service(Jetty.java:543)
        at
org.mortbay.http.HttpConnection.service(HttpConnection.java:806)
        at
org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956)
        at
org.mortbay.http.HttpConnection.handle(HttpConnection.java:823)
        at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:203
)
        at
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290)
        at
org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743)
        at java.lang.Thread.run(Thread.java:484)
        

The formbean:

import org.apache.struts.action.ActionForm;

/**
 *
 * @author  pteasdale
 */
public class AddTaxonomyRequestForm extends ActionForm {

    private String name="Untitled Classification";
    private String description = "";
    private String taxonomyPackageName="";
    private String returnPage="";
        private String newClassification = "";
        private String uuidx = "";
    private String addNode = "yes";

    public AddTaxonomyRequestForm() {
    }

    public String getName(){
        return name;
    }

    public void setName(String classificationNodeName){
        this.name = classificationNodeName;
    }

    public String getTaxonomyPackageName(){
        return taxonomyPackageName;
    }

    public String getUuidx(){
        return uuidx;
    }
    public void setUuidx(){
        this.uuidx = uuidx;
    }
    public String getNewClassification(){
        return newClassification;
    }

    public void setNewClassification(){

        this.newClassification = newClassification;
    }

    public void setTaxonomyPackageName(String taxonomyPackageName){
        this.taxonomyPackageName = taxonomyPackageName;

    }

    public void setDescription(String description){
        this.description = description;
    }

    public String getDescription(){
        return description;

    }
    public void setAddNode(String addNode){
        this.addNode = addNode;
    }
    public String getAddNode(){
        return addNode;
    }

    /** Getter for property returnPage.
     * @return Value of property returnPage.
     */
    public java.lang.String getReturnPage() {
        return returnPage;
    }

    /** Setter for property returnPage.
     * @param returnPage New value of property returnPage.
     */
    public void setReturnPage(java.lang.String returnPage) {
        this.returnPage = returnPage;
    }

    //+++++++++++++++++++++++++++++++++++++++++++++++++++
    public String toString() {

        return "Form- name:"+getName()+" taxonomyPackageName:
"+getTaxonomyPackageName()+
            " newClassification: "+getNewClassification()+" description:
"+
            getDescription()+" returnPage: "+getReturnPage();

    }

    public void reset(){

        this.returnPage = "";
        this.name = "";
        this.newClassification = "";
        this.description = "";
        this.uuidx = "";
        this.taxonomyPackageName = "";

    }

The mapping:

    <!--
    Add Root Classification Node  under a taxonomy package -->
    <action path="/tree/addTaxonomy"
            type="com.betweenmarkets.web.tree.action.AddTaxonomyAction"
            name="addTaxonomyForm"
            scope="session"
            input="/common/add_taxonomy.jsp">
      <forward name="success" path="/common/add_taxonomy_2.jsp"/>
      <forward name="failure" path="/common/add_taxonomy.jsp"/>
    </action>
    <action path="/tree/addTaxonomy2"
            type="com.betweenmarkets.web.tree.action.AddTaxonomyAction"
            name="addTaxonomyForm"
            scope="request"
            input="/common/add_taxonomy_2.jsp">
      <forward name="success" path="/common/pop_success.jsp"/>
      <forward name="failure" path="/common/add_taxonomy_2.jsp"/>
    </action>




Reply via email to