You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Paul Stanton <pa...@mapshed.com.au> on 2012/02/20 04:05:23 UTC
Re: java.lang.ClassFormatError: Illegal field modifiers in class
lxyz/web2/components/codebook/controls/Button: 0x12
Thanks Steve,
I ran into this too upgrading from t5.1 to t5.3.
IMO this is a bug, since an interface designed specifically for my
tapestry pages should be able to co-exist in the pages package.
https://issues.apache.org/jira/browse/TAP5-1851
p.
On 23/08/2011 12:00 PM, Steve Ragle wrote:
> Hi folks,
>
> Trying out 5.3.0. I was running into this exception:
>
> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - Operations trace:
> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 1] Constructing instance of page class lxyz.web2.pages.errors.Error404Page
> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 2] Assembling root component for page errors/Error404Page
> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 3] Assembling component errors/Error404Page:liabase (lxyz.web2.components.desktop.LiaBase)
> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 4] Assembling component errors/Error404Page:liabase.base (lxyz.web2.components.head.BaseHead)
> 12:44:23.063 ERROR org.apache.tapestry5.ioc.Registry - [ 5] Creating ComponentAssembler for lxyz.web2.components.forums.LiveLinks
> 12:44:23.063 ERROR org.apache.tapestry5.ioc.Registry - [ 6] Creating instantiator for component class lxyz.web2.components.codebook.controls.Link
> 12:44:23.087 ERROR stryModule.RequestExceptionHandler - Processing of request failed with uncaught exception: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12 [1BE517AD] java.lang.ClassFormatError: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.defineClassWithBytecode(PlasticClassLoader.java:53)
> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realize(PlasticClassPool.java:140)
> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realizeTransformedClass(PlasticClassPool.java:122)
> at org.apache.tapestry5.internal.plastic.PlasticClassImpl.createInstantiator(PlasticClassImpl.java:1722)
> at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:322)
> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.defineClassWithBytecode(PlasticClassLoader.java:53)
> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realize(PlasticClassPool.java:140)
> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realizeTransformedClass(PlasticClassPool.java:122)
> at org.apache.tapestry5.internal.plastic.PlasticClassImpl.createInstantiator(PlasticClassImpl.java:1722)
> at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:322)
> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at org.apache.tapestry5.internal.plastic.PlasticClassPool.getClassInstantiator(PlasticClassPool.java:421)
> at org.apache.tapestry5.plastic.PlasticManager.getClassInstantiator(PlasticManager.java:189)
> at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$1.invoke(ComponentInstantiatorSourceImpl.java:232)
> at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$1.invoke(ComponentInstantiatorSourceImpl.java:226)
>
> The Button class is:
> public interface Button {
> public ButtonType getButtonType();
> public String getActionId();
> public boolean isDisabled();
> }
>
> After a lot of fiddling around, someone pointed out that an interface like this should not be in the components.xyz package to begin with. This has been like this for 2 years and always worked with the javassist in 2.5.2 and older tapestry5 code.
>
> Modifier.java in the jdk defines constants that seem to indicate the offending combination is FINAL PRIVATE (assuming the native code that is generating the exception is using the same constants):
> public static final int PRIVATE = 0x00000002;
> public static final int FINAL = 0x00000010;
>
> The only google results I found that seemed like a remotely-close match were on this un-accepted and unanswered tapestry user list question from June:
> http://tapestry.1045711.n5.nabble.com/v5-3-and-Scala-Trait-Illegal-field-modifiers-0x12-td4534667.html
> Maybe Scala happens to be doing something similar.
>
> Moving the interface to a different package fixed the issue. Just posting this here on the chance someone else might run into this puzzling error message, to save them the troubleshooting time.
>
> Steve
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: java.lang.ClassFormatError: Illegal field modifiers in class
lxyz/web2/components/codebook/controls/Button: 0x12
Posted by Paul Stanton <pa...@mapshed.com.au>.
Thanks howard,
maybe add some excerpt of the exception message so it comes up in search
engine results.
p.
On 22/02/2012 5:48 AM, Howard Lewis Ship wrote:
> I'm updating the docs to be more specific about this.
>
> On Tue, Feb 21, 2012 at 3:51 AM, Christian Riedel
> <cr...@googlemail.com> wrote:
>> I don't think it's a bug.
>> Can't find the place in the docs that describes this but I'm sure it's somewhere written that you shall not store anything but page classes in the page package.
>>
>>
>> Am 20.02.2012 um 04:05 schrieb Paul Stanton:
>>
>>> Thanks Steve,
>>>
>>> I ran into this too upgrading from t5.1 to t5.3.
>>>
>>> IMO this is a bug, since an interface designed specifically for my tapestry pages should be able to co-exist in the pages package.
>>>
>>> https://issues.apache.org/jira/browse/TAP5-1851
>>>
>>> p.
>>>
>>> On 23/08/2011 12:00 PM, Steve Ragle wrote:
>>>> Hi folks,
>>>>
>>>> Trying out 5.3.0. I was running into this exception:
>>>>
>>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
>>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - Operations trace:
>>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 1] Constructing instance of page class lxyz.web2.pages.errors.Error404Page
>>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 2] Assembling root component for page errors/Error404Page
>>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 3] Assembling component errors/Error404Page:liabase (lxyz.web2.components.desktop.LiaBase)
>>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 4] Assembling component errors/Error404Page:liabase.base (lxyz.web2.components.head.BaseHead)
>>>> 12:44:23.063 ERROR org.apache.tapestry5.ioc.Registry - [ 5] Creating ComponentAssembler for lxyz.web2.components.forums.LiveLinks
>>>> 12:44:23.063 ERROR org.apache.tapestry5.ioc.Registry - [ 6] Creating instantiator for component class lxyz.web2.components.codebook.controls.Link
>>>> 12:44:23.087 ERROR stryModule.RequestExceptionHandler - Processing of request failed with uncaught exception: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12 [1BE517AD] java.lang.ClassFormatError: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
>>>> at java.lang.ClassLoader.defineClass1(Native Method)
>>>> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
>>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
>>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.defineClassWithBytecode(PlasticClassLoader.java:53)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realize(PlasticClassPool.java:140)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realizeTransformedClass(PlasticClassPool.java:122)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassImpl.createInstantiator(PlasticClassImpl.java:1722)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:322)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>>>> at java.lang.ClassLoader.defineClass1(Native Method)
>>>> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
>>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
>>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.defineClassWithBytecode(PlasticClassLoader.java:53)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realize(PlasticClassPool.java:140)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realizeTransformedClass(PlasticClassPool.java:122)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassImpl.createInstantiator(PlasticClassImpl.java:1722)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:322)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.getClassInstantiator(PlasticClassPool.java:421)
>>>> at org.apache.tapestry5.plastic.PlasticManager.getClassInstantiator(PlasticManager.java:189)
>>>> at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$1.invoke(ComponentInstantiatorSourceImpl.java:232)
>>>> at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$1.invoke(ComponentInstantiatorSourceImpl.java:226)
>>>>
>>>> The Button class is:
>>>> public interface Button {
>>>> public ButtonType getButtonType();
>>>> public String getActionId();
>>>> public boolean isDisabled();
>>>> }
>>>>
>>>> After a lot of fiddling around, someone pointed out that an interface like this should not be in the components.xyz package to begin with. This has been like this for 2 years and always worked with the javassist in 2.5.2 and older tapestry5 code.
>>>>
>>>> Modifier.java in the jdk defines constants that seem to indicate the offending combination is FINAL PRIVATE (assuming the native code that is generating the exception is using the same constants):
>>>> public static final int PRIVATE = 0x00000002;
>>>> public static final int FINAL = 0x00000010;
>>>>
>>>> The only google results I found that seemed like a remotely-close match were on this un-accepted and unanswered tapestry user list question from June:
>>>> http://tapestry.1045711.n5.nabble.com/v5-3-and-Scala-Trait-Illegal-field-modifiers-0x12-td4534667.html
>>>> Maybe Scala happens to be doing something similar.
>>>>
>>>> Moving the interface to a different package fixed the issue. Just posting this here on the chance someone else might run into this puzzling error message, to save them the troubleshooting time.
>>>>
>>>> Steve
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: java.lang.ClassFormatError: Illegal field modifiers in class
lxyz/web2/components/codebook/controls/Button: 0x12
Posted by Howard Lewis Ship <hl...@gmail.com>.
I'm updating the docs to be more specific about this.
On Tue, Feb 21, 2012 at 3:51 AM, Christian Riedel
<cr...@googlemail.com> wrote:
> I don't think it's a bug.
> Can't find the place in the docs that describes this but I'm sure it's somewhere written that you shall not store anything but page classes in the page package.
>
>
> Am 20.02.2012 um 04:05 schrieb Paul Stanton:
>
>> Thanks Steve,
>>
>> I ran into this too upgrading from t5.1 to t5.3.
>>
>> IMO this is a bug, since an interface designed specifically for my tapestry pages should be able to co-exist in the pages package.
>>
>> https://issues.apache.org/jira/browse/TAP5-1851
>>
>> p.
>>
>> On 23/08/2011 12:00 PM, Steve Ragle wrote:
>>> Hi folks,
>>>
>>> Trying out 5.3.0. I was running into this exception:
>>>
>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - Operations trace:
>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 1] Constructing instance of page class lxyz.web2.pages.errors.Error404Page
>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 2] Assembling root component for page errors/Error404Page
>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 3] Assembling component errors/Error404Page:liabase (lxyz.web2.components.desktop.LiaBase)
>>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 4] Assembling component errors/Error404Page:liabase.base (lxyz.web2.components.head.BaseHead)
>>> 12:44:23.063 ERROR org.apache.tapestry5.ioc.Registry - [ 5] Creating ComponentAssembler for lxyz.web2.components.forums.LiveLinks
>>> 12:44:23.063 ERROR org.apache.tapestry5.ioc.Registry - [ 6] Creating instantiator for component class lxyz.web2.components.codebook.controls.Link
>>> 12:44:23.087 ERROR stryModule.RequestExceptionHandler - Processing of request failed with uncaught exception: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12 [1BE517AD] java.lang.ClassFormatError: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
>>> at java.lang.ClassLoader.defineClass1(Native Method)
>>> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.defineClassWithBytecode(PlasticClassLoader.java:53)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realize(PlasticClassPool.java:140)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realizeTransformedClass(PlasticClassPool.java:122)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassImpl.createInstantiator(PlasticClassImpl.java:1722)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:322)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>>> at java.lang.ClassLoader.defineClass1(Native Method)
>>> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.defineClassWithBytecode(PlasticClassLoader.java:53)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realize(PlasticClassPool.java:140)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realizeTransformedClass(PlasticClassPool.java:122)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassImpl.createInstantiator(PlasticClassImpl.java:1722)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:322)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.getClassInstantiator(PlasticClassPool.java:421)
>>> at org.apache.tapestry5.plastic.PlasticManager.getClassInstantiator(PlasticManager.java:189)
>>> at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$1.invoke(ComponentInstantiatorSourceImpl.java:232)
>>> at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$1.invoke(ComponentInstantiatorSourceImpl.java:226)
>>>
>>> The Button class is:
>>> public interface Button {
>>> public ButtonType getButtonType();
>>> public String getActionId();
>>> public boolean isDisabled();
>>> }
>>>
>>> After a lot of fiddling around, someone pointed out that an interface like this should not be in the components.xyz package to begin with. This has been like this for 2 years and always worked with the javassist in 2.5.2 and older tapestry5 code.
>>>
>>> Modifier.java in the jdk defines constants that seem to indicate the offending combination is FINAL PRIVATE (assuming the native code that is generating the exception is using the same constants):
>>> public static final int PRIVATE = 0x00000002;
>>> public static final int FINAL = 0x00000010;
>>>
>>> The only google results I found that seemed like a remotely-close match were on this un-accepted and unanswered tapestry user list question from June:
>>> http://tapestry.1045711.n5.nabble.com/v5-3-and-Scala-Trait-Illegal-field-modifiers-0x12-td4534667.html
>>> Maybe Scala happens to be doing something similar.
>>>
>>> Moving the interface to a different package fixed the issue. Just posting this here on the chance someone else might run into this puzzling error message, to save them the troubleshooting time.
>>>
>>> Steve
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
--
Howard M. Lewis Ship
Creator of Apache Tapestry
The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!
(971) 678-5210
http://howardlewisship.com
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: java.lang.ClassFormatError: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
Posted by Christian Riedel <cr...@googlemail.com>.
I don't think it's a bug.
Can't find the place in the docs that describes this but I'm sure it's somewhere written that you shall not store anything but page classes in the page package.
Am 20.02.2012 um 04:05 schrieb Paul Stanton:
> Thanks Steve,
>
> I ran into this too upgrading from t5.1 to t5.3.
>
> IMO this is a bug, since an interface designed specifically for my tapestry pages should be able to co-exist in the pages package.
>
> https://issues.apache.org/jira/browse/TAP5-1851
>
> p.
>
> On 23/08/2011 12:00 PM, Steve Ragle wrote:
>> Hi folks,
>>
>> Trying out 5.3.0. I was running into this exception:
>>
>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - Operations trace:
>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 1] Constructing instance of page class lxyz.web2.pages.errors.Error404Page
>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 2] Assembling root component for page errors/Error404Page
>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 3] Assembling component errors/Error404Page:liabase (lxyz.web2.components.desktop.LiaBase)
>> 12:44:23.062 ERROR org.apache.tapestry5.ioc.Registry - [ 4] Assembling component errors/Error404Page:liabase.base (lxyz.web2.components.head.BaseHead)
>> 12:44:23.063 ERROR org.apache.tapestry5.ioc.Registry - [ 5] Creating ComponentAssembler for lxyz.web2.components.forums.LiveLinks
>> 12:44:23.063 ERROR org.apache.tapestry5.ioc.Registry - [ 6] Creating instantiator for component class lxyz.web2.components.codebook.controls.Link
>> 12:44:23.087 ERROR stryModule.RequestExceptionHandler - Processing of request failed with uncaught exception: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12 [1BE517AD] java.lang.ClassFormatError: Illegal field modifiers in class lxyz/web2/components/codebook/controls/Button: 0x12
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.defineClassWithBytecode(PlasticClassLoader.java:53)
>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realize(PlasticClassPool.java:140)
>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realizeTransformedClass(PlasticClassPool.java:122)
>> at org.apache.tapestry5.internal.plastic.PlasticClassImpl.createInstantiator(PlasticClassImpl.java:1722)
>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:322)
>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.defineClassWithBytecode(PlasticClassLoader.java:53)
>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realize(PlasticClassPool.java:140)
>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.realizeTransformedClass(PlasticClassPool.java:122)
>> at org.apache.tapestry5.internal.plastic.PlasticClassImpl.createInstantiator(PlasticClassImpl.java:1722)
>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:322)
>> at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>> at org.apache.tapestry5.internal.plastic.PlasticClassPool.getClassInstantiator(PlasticClassPool.java:421)
>> at org.apache.tapestry5.plastic.PlasticManager.getClassInstantiator(PlasticManager.java:189)
>> at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$1.invoke(ComponentInstantiatorSourceImpl.java:232)
>> at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$1.invoke(ComponentInstantiatorSourceImpl.java:226)
>>
>> The Button class is:
>> public interface Button {
>> public ButtonType getButtonType();
>> public String getActionId();
>> public boolean isDisabled();
>> }
>>
>> After a lot of fiddling around, someone pointed out that an interface like this should not be in the components.xyz package to begin with. This has been like this for 2 years and always worked with the javassist in 2.5.2 and older tapestry5 code.
>>
>> Modifier.java in the jdk defines constants that seem to indicate the offending combination is FINAL PRIVATE (assuming the native code that is generating the exception is using the same constants):
>> public static final int PRIVATE = 0x00000002;
>> public static final int FINAL = 0x00000010;
>>
>> The only google results I found that seemed like a remotely-close match were on this un-accepted and unanswered tapestry user list question from June:
>> http://tapestry.1045711.n5.nabble.com/v5-3-and-Scala-Trait-Illegal-field-modifiers-0x12-td4534667.html
>> Maybe Scala happens to be doing something similar.
>>
>> Moving the interface to a different package fixed the issue. Just posting this here on the chance someone else might run into this puzzling error message, to save them the troubleshooting time.
>>
>> Steve
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org