Bugs item #527328, was opened at 2002-03-08 02:16
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=376685&aid=527328&group_id=22866

Category: JBossServer
Group: v3.0 Rabbit Hole
Status: Open
Resolution: None
Priority: 9
Submitted By: Thomas Hamann (thomash76)
Assigned to: Jason Dillon (user57)
Summary: unexpected error in proxy compiler

Initial Comment:
win2000pro, jdk1.3.1_01, jboss3.0.0-beta2 (200203050840)

Hi,

this morning i checked out the current version of JBoss from CVS - the result is, my 
application 
which deployed successfully until yesterday, does not deploy. All i get is an 
exception:
10:32:41,585 ERROR [Proxies] unexpected error
java.lang.VerifyError: (class: jatek/server/JaTeKGroupBean$Proxy, method: 
ejbSelectGroupMember 
signature: (JJ)Ljatek/ser
ver/GroupMember;) Register pair 2/3 contains wrong type
        at java.lang.Class.getField0(Native Method)
        at java.lang.Class.getField(Class.java:826)
        at org.jboss.proxy.compiler.Runtime.makeProxyType(Runtime.java:71)
        at org.jboss.proxy.compiler.ProxyCompiler.<init>(ProxyCompiler.java:63)
        at org.jboss.proxy.compiler.Proxies$Impl.makeProxyConstructor(Proxies.java:716)
        at org.jboss.proxy.compiler.Proxies$Impl.newTarget(Proxies.java:589)
        at org.jboss.proxy.compiler.Proxies.newTarget(Proxies.java:62)
        at org.jboss.proxy.compiler.Proxy.newProxyInstance(Proxy.java:37)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateBeanClassInstanceCommand.<init>(JDBCCreateBeanClassI
nstanceCommand.j
ava:50)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCommandFactory.createCreateBeanClassInstanceCommand(JDB
CCommandFactory.jav
a:97)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.create(JDBCStoreManager.java:300)
        at 
org.jboss.ejb.plugins.CMPPersistenceManager.create(CMPPersistenceManager.java:134)
        at org.jboss.ejb.EntityContainer.create(EntityContainer.java:329)
        at org.jboss.ejb.Container.invoke(Container.java:723)
        at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1003)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at 
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:720)
        at $Proxy0.create(Unknown Source)
        at org.jboss.system.ServiceController.create(ServiceController.java:248)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy3.create(Unknown Source)
        at org.jboss.ejb.EjbModule.createService(EjbModule.java:297)
        at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:134)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at 
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:720)
        at $Proxy0.create(Unknown Source)
        at org.jboss.system.ServiceController.create(ServiceController.java:248)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy3.create(Unknown Source)
        at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:397)
        at org.jboss.deployment.MainDeployer.create(MainDeployer.java:585)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:481)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:454)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy2.deploy(Unknown Source)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:295)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.scanDirectory(URLDeploymentScanner.java:4
66)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:356)
        at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeployme
ntScanner.java:190)

        at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymen
tScanner.java:179)
10:32:42,569 ERROR [EntityContainer] Exception in service lifecyle operation: create
java.lang.RuntimeException: unexpected: java.lang.VerifyError: (class: 
jatek/server/JaTeKGroupBean$Proxy, method: ejbSel
ectGroupMember signature: (JJ)Ljatek/server/GroupMember;) Register pair 2/3 contains 
wrong type
        at org.jboss.proxy.compiler.Proxies$Impl.newTarget(Proxies.java:593)
        at org.jboss.proxy.compiler.Proxies.newTarget(Proxies.java:62)
        at org.jboss.proxy.compiler.Proxy.newProxyInstance(Proxy.java:37)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateBeanClassInstanceCommand.<init>(JDBCCreateBeanClassI
nstanceCommand.j
ava:50)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCommandFactory.createCreateBeanClassInstanceCommand(JDB
CCommandFactory.jav
a:97)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.create(JDBCStoreManager.java:300)
        at 
org.jboss.ejb.plugins.CMPPersistenceManager.create(CMPPersistenceManager.java:134)
        at org.jboss.ejb.EntityContainer.create(EntityContainer.java:329)
        at org.jboss.ejb.Container.invoke(Container.java:723)
        at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1003)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at 
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:720)
        at $Proxy0.create(Unknown Source)
        at org.jboss.system.ServiceController.create(ServiceController.java:248)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy3.create(Unknown Source)
        at org.jboss.ejb.EjbModule.createService(EjbModule.java:297)
        at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:134)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at 
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:720)
        at $Proxy0.create(Unknown Source)
        at org.jboss.system.ServiceController.create(ServiceController.java:248)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy3.create(Unknown Source)
        at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:397)
        at org.jboss.deployment.MainDeployer.create(MainDeployer.java:585)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:481)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:454)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy2.deploy(Unknown Source)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:295)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.scanDirectory(URLDeploymentScanner.java:4
66)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:356)
        at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeployme
ntScanner.java:190)

        at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymen
tScanner.java:179)
10:32:43,506 ERROR [EjbModule] Initialization failed
java.lang.RuntimeException: unexpected: java.lang.VerifyError: (class: 
jatek/server/JaTeKGroupBean$Proxy, method: ejbSel
ectGroupMember signature: (JJ)Ljatek/server/GroupMember;) Register pair 2/3 contains 
wrong type
        at org.jboss.proxy.compiler.Proxies$Impl.newTarget(Proxies.java:593)
        at org.jboss.proxy.compiler.Proxies.newTarget(Proxies.java:62)
        at org.jboss.proxy.compiler.Proxy.newProxyInstance(Proxy.java:37)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateBeanClassInstanceCommand.<init>(JDBCCreateBeanClassI
nstanceCommand.j
ava:50)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCommandFactory.createCreateBeanClassInstanceCommand(JDB
CCommandFactory.jav
a:97)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.create(JDBCStoreManager.java:300)
        at 
org.jboss.ejb.plugins.CMPPersistenceManager.create(CMPPersistenceManager.java:134)
        at org.jboss.ejb.EntityContainer.create(EntityContainer.java:329)
        at org.jboss.ejb.Container.invoke(Container.java:723)
        at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1003)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at 
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:720)
        at $Proxy0.create(Unknown Source)
        at org.jboss.system.ServiceController.create(ServiceController.java:248)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy3.create(Unknown Source)
        at org.jboss.ejb.EjbModule.createService(EjbModule.java:297)
        at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:134)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at 
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:720)
        at $Proxy0.create(Unknown Source)
        at org.jboss.system.ServiceController.create(ServiceController.java:248)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy3.create(Unknown Source)
        at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:397)
        at org.jboss.deployment.MainDeployer.create(MainDeployer.java:585)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:481)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:454)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1628)
        at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:73)
        at $Proxy2.deploy(Unknown Source)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:295)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.scanDirectory(URLDeploymentScanner.java:4
66)
        at 
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:356)
        at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeployme
ntScanner.java:190)

        at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymen
tScanner.java:179)
10:32:44,444 ERROR [MainDeployer] could not create deployment 
:file:/C:/win32app/jboss-all/build/output/jboss-3.0.0beta2
/server/default/deploy/jatek31ejb.jar

here is the declaration in ejb-jar.xml of the bean for which the deployment crashes:
<entity>
                        <ejb-name>jatek/Group</ejb-name>
                        <home>jatek.JaTeKGroupHome</home>
                        <remote>jatek.JaTeKGroup</remote>
                        <ejb-class>jatek.server.JaTeKGroupBean</ejb-class>
                        <persistence-type>Container</persistence-type>
                        <prim-key-class>jatek.GroupPK</prim-key-class>
                        <reentrant>False</reentrant>
                        <cmp-version>2.x</cmp-version>
                        <abstract-schema-name>JGROUP</abstract-schema-name>
                        <cmp-field>
                                <field-name>uid</field-name>
                        </cmp-field>
                        <cmp-field>
                                <field-name>allowedUsers</field-name>
                        </cmp-field>
                        <cmp-field>
                                <field-name>allowedGroups</field-name>
                        </cmp-field>
                        <cmp-field>
                                <field-name>deniedUsers</field-name>
                        </cmp-field>
                        <cmp-field>
                                <field-name>deniedGroups</field-name>
                        </cmp-field>
                        <cmp-field>
                                <field-name>name</field-name>
                        </cmp-field>
                        <cmp-field>
                                <field-name>maxSize</field-name>
                        </cmp-field>
                        <cmp-field>
                                <field-name>props</field-name>
                        </cmp-field>
                        <cmp-field>
                                <field-name>tutor</field-name>
                        </cmp-field>
                        <ejb-local-ref>
                                <ejb-ref-name>ejb/jatek/GroupMember</ejb-ref-name>
                                <ejb-ref-type>Entity</ejb-ref-type>
                                <local-home>jatek.server.GroupMemberHome</local-home>
                                <local>jatek.server.GroupMember</local>
                                <ejb-link>jatek/GroupMember</ejb-link>
                        </ejb-local-ref>
                        <query>
                                <query-method>
                                <method-name>ejbSelectGroupMember</method-name>
                                        <method-params>
                                                <method-param>long</method-param>
                                                <method-param>long</method-param>
                                        </method-params>
                                </query-method>
                                <result-type-mapping>Local</result-type-mapping>
                                <ejb-ql>select distinct object(gm) from GROUPMEMBER as 
gm where gm.jgroup=?1 and gm.member=?2</ejb-ql>
                        </query>
                </entity>

the corresponding ejb-select method is declared in the code of JaTeKGroupBean like 
this:
public abstract GroupMember ejbSelectGroupMember (long group, long member) throws 
FinderException;

i have no clue what goes wrong...

Thomas

----------------------------------------------------------------------

>Comment By: Jason Dillon (user57)
Date: 2002-04-05 14:08

Message:
Logged In: YES 
user_id=15045

Ok, I have tracked this down to a bug in 
ProxyImplementationFactory.  I am going to write some more 
testcases for this then I will check this in.

The problem was that we were not correctly offseting 
register arguments for long and double types, which take 2 
registers as they are 64 bits wide.

Fix to come... =)

--jason

----------------------------------------------------------------------

Comment By: Jason Dillon (user57)
Date: 2002-04-04 22:32

Message:
Logged In: YES 
user_id=15045

Same problem with double... and it looks like the second 
argument for method like:

void long3(long a, long b, long c);

is also corrupted... not just the 2 argument flavor.

--jason

----------------------------------------------------------------------

Comment By: Jason Dillon (user57)
Date: 2002-04-04 22:28

Message:
Logged In: YES 
user_id=15045

Ok, looks like this might be long, long specific.  For a 
method like:

void long2(long a, long b), we generate:

public void long2(long arg0, long)

instead of:

public void long2(long arg0, long arg1)

Why?  Still dont' know that... also don't know if this 
problem persists with other configurations.

--jason

----------------------------------------------------------------------

Comment By: Jason Dillon (user57)
Date: 2002-04-04 22:22

Message:
Logged In: YES 
user_id=15045

I have basically been looking into this all day... kinda 
of interesting problem... bitch to solve.

Looks like the current proxy stuff freaks out with methods 
like:

void foo(long a, long b);

but now with

void foo(long a, long b, long c);

Not sure if this is specific to longs at the moment...

--jason

----------------------------------------------------------------------

Comment By: Thomas Hamann (thomash76)
Date: 2002-03-27 01:20

Message:
Logged In: YES 
user_id=445709

Hi,

i wrote two beans just to find out whether this "bug" is specific for my application 
or it's a general issue. 
The first bean is a remote entity bean which (during create) should produce an 
instance of the second bean 
- a local entity. The functionality is very basic and should be easy to understand. 
Note that the query is 
not meant to make any sense but to test whether a query similar to the one i use would 
be successful...

have fun!
Thomas

----------------------------------------------------------------------

Comment By: Mac (macearl)
Date: 2002-03-11 17:49

Message:
Logged In: YES 
user_id=479685

Thomas,

I was able to get things working again, and as I am 
discovering the features of CVS I can now relay to you how 
I was able to get this thing working. I did a CVS update on 
the proxy.compiler package specifying a tag of 1.1. You 
observed that the build did not work with the 1.1 version, 
but I think that was a unrelated issue. I just did the 
update with this tag, successfully built, and deployed an 
ejb application that did not cause the VerifierError. Hope 
that helps. :)

----------------------------------------------------------------------

Comment By: Mac (macearl)
Date: 2002-03-11 08:25

Message:
Logged In: YES 
user_id=479685

Thomas,

Sorry for the delay...I was sleeping. I've been doing cvs 
updates periodically with no tags specified. My update has 
been against jboss-all. So I just picked up those revisions 
that were made yesterday a few minutes after they were 
checked in. Thats the best I can do as far as an 
explaination, as my knowledge of CVS is very limited. 
Unfortunately I haven't been able to do a successful build 
since last night, which is probably due to the way that I 
am updating from CVS. I'll let you know. Try to get the 
ProxyAssembler class and see if that helps.

- Mac

----------------------------------------------------------------------

Comment By: Thomas Hamann (thomash76)
Date: 2002-03-11 02:41

Message:
Logged In: YES 
user_id=445709

Hi Mac,

where did you get those build you wrote about from? in CVS there are only two versions 
(1.1 and 1.2) - 1.1 
does not compile with the current version and 1.2 causes the error i posted...

Thomas

----------------------------------------------------------------------

Comment By: Mac (macearl)
Date: 2002-03-11 00:49

Message:
Logged In: YES 
user_id=479685

Thomas, et. all.,

I picked up a build this afternoon which contains updates 
the Proxies and ProxyCompiler classes. After building with 
those changes this bug went away for me. Of course, this 
evening when I picked up the build I wasn't able to 
complete the build. So I guess you have to tag the update 
with a timestamp. :) The new files were submitted on 
3/11/2002 2:37:36.

Hopefully that helps. - Mac

----------------------------------------------------------------------

Comment By: Mac (macearl)
Date: 2002-03-09 13:01

Message:
Logged In: YES 
user_id=479685

Or, maybe I won't attach a file. :) (Kind of hard without a 
file upload feature.) See the jboss forum thread.

http://main.jboss.org/thread.jsp?
forum=46&thread=10529&start=0&msRange=15

for the application file.

- Mac

----------------------------------------------------------------------

Comment By: Mac (macearl)
Date: 2002-03-09 12:25

Message:
Logged In: YES 
user_id=479685

Or, maybe I won't attach a file. :) (Kind of hard without a 
file upload feature.) See the jboss forum thread.

http://main.jboss.org/thread.jsp?
forum=46&thread=10529&start=0&msRange=15

for the application file.

- Mac

----------------------------------------------------------------------

Comment By: Mac (macearl)
Date: 2002-03-09 12:19

Message:
Logged In: YES 
user_id=479685

Second this bug. I started getting the issue about the same 
time. I've done a little looking around. Verifier error is 
a subclass of LinkageError. A quote from the JavaDoc 
follows:

"Subclasses of LinkageError indicate that a class has some 
dependency on another class; however, the latter class has 
incompatibly changed after the compilation of the former 
class."

I'll attach a copy of my application, which may be useful 
in reproducing the error and testing. - Mac

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=376685&aid=527328&group_id=22866

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to