[
https://issues.apache.org/jira/browse/WICKET-1239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12582074#action_12582074
]
Eric Gulatee commented on WICKET-1239:
--------------------------------------
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
>
>
> 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.