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