• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

java.lang.ClassFormatError: $Proxy10 (Repetitive method name/signature)

 
Ranch Hand
Posts: 324
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I recently added an extra parameter to my EJB method making a total of 9 parameters.



The code worked fine in my local and when deployed in development environment. We have an performance environment, it works there too, but in SYST environment it fails throwing

java.lang.ClassFormatError: $Proxy10 (Repetitive method name/signature)

I remember reading somewhere that the maximum parameters that a method can declare depends on the jvm

FYI, Following is the error log

[11/14/08 10:19:03:322 EST] 00000048 TSessionDAO I Persistence About to Execute: insert into T_SESSION (CREATE_DT, CREATE_USER_ID, UPDATE_DT, UPDATE_USER_ID, SESSION_ID ) values ('2008-11-14 10:19:01.827','pddcsyt-95','2008-11-14 10:19:01.828','pddcsyt-95','0831911061000013')
[11/14/08 10:19:16:284 EST] 00000048 Transactional E Unable to invoke on com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@57b33b26 ublic abstract java.sql.PreparedStatement java.sql.Connection.prepareStatement(java.lang.String) throws java.sql.SQLException, java.lang.ClassFormatError: $Proxy10 (Repetitive method name/signature)
[11/14/08 10:19:16:355 EST] 00000048 TSessionDAO I Persistence Execution Complete, Duration = 13034 milliseconds
[11/14/08 10:19:16:360 EST] 00000048 Transactional I In Transaction, bypassing close of Connection
[11/14/08 10:19:52:199 EST] 00000048 Transactional I Transaction committed on com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@57b33b26
[11/14/08 10:19:52:202 EST] 00000048 ExceptionUtil E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "saveQueuedTransactions" on bean "BeanId(release1#sessionMgmtEJB.jar#SessionManagementEJB, null)". Exception data: pa.bscoe.bscoe4j.common.objects.framework.UncheckedApplicationException: Unable to invoke on com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@57b33b26 ublic abstract java.sql.PreparedStatement java.sql.Connection.prepareStatement(java.lang.String) throws java.sql.SQLException
at pa.bscoe.bscoe4j.common.persistence.TransactionalConnection.invoke(Unknown Source)
at $Proxy4.prepareStatement(Unknown Source)
at pa.bscoe.bscoe4j.common.persistence.AbstractDAO.bindParameters(Unknown Source)
at pa.bscoe.bscoe4j.common.persistence.AbstractDAO.execute(Unknown Source)
at pa.bscoe.bscoe4j.common.persistence.AbstractDAO.add(Unknown Source)
at pa.bscoe.bscoe4j.common.commands.persistence.CreateObjectCommand.executeDAO(Unknown Source)
at pa.bscoe.bscoe4j.common.commands.persistence.PersistObjectAbstractCommand.execute(Unknown Source)
at pa.bscoe.bscoe4j.common.commands.CommandManager.perform(Unknown Source)
at pa.bscoe.bscoe4j.common.commands.persistence.PersistenceCommandManager.perform(Unknown Source)
at us.pa.state.dot.centric.business.session.bo.SessionManagementBO.saveQueuedTransactions(Unknown Source)
at us.pa.state.dot.centric.business.session.services.SessionManagementEJBBean.saveQueuedTransactions(Unknown Source)
at us.pa.state.dot.centric.business.session.services.EJSRemoteStatelessSessionManagementEJB_28669a0b.saveQueuedTransactions(Unknown Source)
at us.pa.state.dot.centric.business.session.services._SessionManagementEJB_Stub.saveQueuedTransactions(_SessionManagementEJB_Stub.java:318)
at us.pa.state.dot.centric.presentation.session.delegate.SessionManagementDelegate.saveQueuedTransactions(Unknown Source)
at us.pa.state.dot.centric.presentation.session.action.QueueControllerAction.processSession(Unknown Source)
at us.pa.state.dot.centric.presentation.session.action.QueueControllerAction.processQuickTransaction(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:146)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1701)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:825)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:347)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1078)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:295)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396)
at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:347)
at us.pa.state.dot.centric.presentation.fw.CentricRequestProcessor.processForwardConfig(Unknown Source)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1701)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:825)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1936)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:116)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:434)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:373)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:253)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
Caused by: java.lang.IllegalArgumentException: java.lang.ClassFormatError: $Proxy10 (Repetitive method name/signature)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:514)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at pa.bscoe.bscoe4j.common.persistence.TransactionalStatement.newInstance(Unknown Source)
... 58 more


Thanks All,
Himalay Majumdar
[ November 19, 2008: Message edited by: Martijn Verburg ]
 
Marshal
Posts: 79177
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The number of parameters a method may declare is laid down in the JVM specification; I am sure it will be more than 9.
The API for the Exception you are experiencing suggests something has gone wrong with your .class file.
 
Himalay Majumdar
Ranch Hand
Posts: 324
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Campbell, Though the issue is not resolved yet I feel the same. Its probable because the EJB stubs generated are out of synch.
 
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
This error message is mentioned here in the Sun bug database. Note that they're able to trigger the message only via a classfile created with the Jasmine assembler. If your EJB container does code generation at the bytecode level rather than at the source level, it might be making a similar mistake.

Googling for the message brings up a number of hits all related to buggy homemade compilers and code generators.
 
Himalay Majumdar
Ranch Hand
Posts: 324
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ernest, we recently found that the problem is not with the compiler. We have deployed the same EAR in our development environment. It does not throw any error, but the same EAR when placed in other environment, throws the error.

We also confirmed that its not a database error. Does it has to do anything with the Websphere server configuration settings.

Any suggestion will be really helpfu..thanks
 
Ranch Hand
Posts: 378
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
See if this helps also.

Since you have eliminated the compiler from having a hand in it, could the appserver perhaps be generating some invalid byte code during deployment?
 
Himalay Majumdar
Ranch Hand
Posts: 324
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Gamini, we will be talking the websphere admins on this.
 
Ernest Friedman-Hill
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Himalay Majumdar:
Ernest, we recently found that the problem is not with the compiler.



I didn't mean that it was a bug in your development compiler; I meant that it was likely a bug in code generated by the app server, as Gamini Sirisena suggests. There are JSPs to compile, of course, but also all manner of stubs and connectors that can be generated by EJB containers at runtime.
 
Himalay Majumdar
Ranch Hand
Posts: 324
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thats my bad. Thanks Ernest. I am wondering if it cud be due to WAS caching policy or recent clustering in the appserver. Any guess guys. Thanks for your time.
 
reply
    Bookmark Topic Watch Topic
  • New Topic