[ 
https://issues.apache.org/jira/browse/WICKET-1239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12582074#action_12582074
 ] 

egulatee edited comment on WICKET-1239 at 3/25/08 3:44 PM:
---------------------------------------------------------------

This bug is happening on Wicket 1.3.2 running on Tomcat on Mac OS X 10.5.2 (jdk 
1.6), full stack trace follows:

SEVERE: Servlet.service() for servlet HelloWorldApplication threw exception
java.lang.IllegalAccessError: tried to access method 
org.apache.wicket.Component.onModelChanging()V from class 
org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel$1
        at 
org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel$1.onModelChanging(AjaxEditableLabel.java:294)
        at org.apache.wicket.Component.modelChanging(Component.java:2097)
        at org.apache.wicket.Component.setModelObject(Component.java:2863)
        at 
org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:1016)
        at 
org.apache.wicket.markup.html.form.FormComponent.processInput(FormComponent.java:898)
        at 
org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel$EditorAjaxBehavior.respond(AjaxEditableLabel.java:122)
        at 
org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:288)
        at 
org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:100)
        at 
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:90)
        at 
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1166)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1241)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1316)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
        at 
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:354)
        at 
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:121)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:111)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:637)

Furthermore I extended AjaxEditableLabel and overrode suggested methods.   See 
attached file.





      was (Author: egulatee):
    This bug is happening on Wicket 1.3.2 running on Tomcat on Mac OS X 10.5.2 
(jdk 1.6), full stack trace follows:

SEVERE: Servlet.service() for servlet HelloWorldApplication threw exception
java.lang.IllegalAccessError: tried to access method 
org.apache.wicket.Component.onModelChanging()V from class 
org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel$1
        at 
org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel$1.onModelChanging(AjaxEditableLabel.java:294)
        at org.apache.wicket.Component.modelChanging(Component.java:2097)
        at org.apache.wicket.Component.setModelObject(Component.java:2863)
        at 
org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:1016)
        at 
org.apache.wicket.markup.html.form.FormComponent.processInput(FormComponent.java:898)
        at 
org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel$EditorAjaxBehavior.respond(AjaxEditableLabel.java:122)
        at 
org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:288)
        at 
org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:100)
        at 
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:90)
        at 
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1166)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1241)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1316)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
        at 
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:354)
        at 
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:121)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:111)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:637)

Furthermore I extended AjaxEditableLabel an overrode suggested methods:

package da.web.wicket.cart.buyer.panel;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel;
import 
org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import da.service.CartManagement;

import wicket.component.model.DatePropertyColumn;

public class EditableQuantityPropertyColumn extends PropertyColumn {

        CartManagement cartmanagement;
        
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        static Logger logger = 
LoggerFactory.getLogger(DatePropertyColumn.class);

        public EditableQuantityPropertyColumn(IModel model, String sortOrder,
                        String propertyExpression) {
                super(model, sortOrder, propertyExpression);
        }

        public void populateItem(Item item, String componentId, IModel model) {

                IModel m = createLabelModel(model);
                
                item.add(new QuantityLabel(componentId, m));
        }

        protected IModel createLabelModel(IModel embeddedModel) {
                IModel m = super.createLabelModel(embeddedModel);
                return m;
        }

        public CartManagement getCartmanagement() {
                return cartmanagement;
        }

        public void setCartmanagement(CartManagement cartmanagement) {
                this.cartmanagement = cartmanagement;
        }
        
        
}

class QuantityLabel extends AjaxEditableLabel
{
        static Logger logger = LoggerFactory.getLogger(QuantityLabel.class);
        
        CartManagement cartmanagement;
        
        public QuantityLabel(String id, IModel model)
        {
                super(id, model);
        }
        
        @Override
        protected void onSubmit(AjaxRequestTarget target)
        {
                
                logger.debug("Model class=" + getModel().getClass());
                super.onSubmit(target);
//              cartmanagement.updateQuantity(getModel());
        }

        public CartManagement getCartmanagement() {
                return cartmanagement;
        }

        public void setCartmanagement(CartManagement cartmanagement) {
                this.cartmanagement = cartmanagement;
        }
        
        @Override
    protected void onModelChanging() {
            super.onModelChanging();
    } 
        
        @Override
        protected void onModelChanged() {
        super.onModelChanged();
        } 
        
        
}


  
> java.lang.IllegalAccessError when changing AjaxEditableLabel 
> -------------------------------------------------------------
>
>                 Key: WICKET-1239
>                 URL: https://issues.apache.org/jira/browse/WICKET-1239
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-extensions
>    Affects Versions: 1.3.0-rc2, 1.3.0-final
>         Environment: Windows XP Pro SP2, Java 1.6.0_03-b05
>            Reporter: Artur Wronski
>            Assignee: Gerolf Seitz
>             Fix For: 1.3.2
>
>         Attachments: code.java
>
>
> When changing AjaxEditableLabel system throws:
> java.lang.IllegalAccessError: tried to access method
> org.apache.wicket.Component.onModelChanging()V from class
> org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel$1
>     at
> org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel$1.onModelChanging
> (AjaxEditableLabel.java:273)
>     at org.apache.wicket.Component.modelChanging(Component.java:2058)
>     at org.apache.wicket.Component.setModelObject(Component.java:2823)
>     at org.apache.wicket.markup.html.form.FormComponent.updateModel(
> FormComponent.java:992)
>     at org.apache.wicket.markup.html.form.FormComponent.processInput(
> FormComponent.java:874) 
> [...]
> The probem is in methd:
>         protected FormComponent newEditor(MarkupContainer parent, String 
> componentId, IModel model)
>         {
>                 TextField editor = new TextField(componentId, model)
>                 {
>                         private static final long serialVersionUID = 1L;
>                         protected void onModelChanged()
>                         {
>                                 super.onModelChanged();
>                                 AjaxEditableLabel.this.onModelChanged();  
> //here is a bug
>                         }
>                         protected void onModelChanging()
>                         {
>                                 super.onModelChanging();
>                                 AjaxEditableLabel.this.onModelChanging();  
> //here is a bug
>                         }
>                 };
>                 editor.setOutputMarkupId(true);
>                 editor.setVisible(false);
>                 editor.add(new EditorAjaxBehavior());
>                 return editor;
>         } 
> AjaxEditableLabel.this.XXXXXX is not visible.
> Artur

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to