Bugs item #901152, was opened at 2004-02-20 15:57
Message generated for change (Settings changed) made by smarchuk
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=901152&group_id=22866

Category: JBossServer
Group: v3.2
Status: Open
>Resolution: None
Priority: 5
Submitted By: Sergey Marchuk (smarchuk)
Assigned to: Nobody/Anonymous (nobody)
Summary: JBoss 3.2.3 is not compliant with jdk1.3

Initial Comment:
According to JBoss docs (http://jboss.org/downloads): 
JBoss 3.2 and earlier will run on 1.3+ JVMs. JBoss 4.0 
requires 1.4+ JVMs

Unfortunately it seems JBoss 3.2.3 is not compliant with 
JDK1.3. On JDK1.3.1 server successfully starts, but 
client fails to connect with the following stacktrace 
printed on server-side:

java.lang.NoSuchMethodException
        at java.lang.Class.getMethod0(Native Method)
        at java.lang.Class.getDeclaredMethod
(Class.java:1151)
        at 
org.jboss.invocation.pooled.interfaces.OptimizedObjectIn
putStream.<clinit>(OptimizedObjectInputStream.java:46)
        at 
org.jboss.invocation.pooled.server.ServerThread.dorun
(ServerThread.java:237)
        at 
org.jboss.invocation.pooled.server.ServerThread.run
(ServerThread.java:132)

followed by exception:

java.lang.NullPointerException
        at 
org.jboss.invocation.pooled.interfaces.OptimizedObjectIn
putStream.lookup(OptimizedObjectInputStream.java:129)
        at 
org.jboss.invocation.pooled.interfaces.OptimizedObjectIn
putStream.readClassDescriptor
(OptimizedObjectInputStream.java:15
        at java.io.ObjectInputStream.inputClassDescriptor
(ObjectInputStream.java:901)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:361)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:345)
        at java.io.ObjectInputStream.inputClassFields
(ObjectInputStream.java:2258)
        at java.io.ObjectInputStream.defaultReadObject
(ObjectInputStream.java:514)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1407)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:231)
        at java.util.HashMap.readObject
(HashMap.java:835)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.io.ObjectInputStream.invokeObjectReader
(ObjectInputStream.java:2209)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1406)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.inputClassFields
(ObjectInputStream.java:2258)
        at java.io.ObjectInputStream.defaultReadObject
(ObjectInputStream.java:514)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1407)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:231)
        at org.jboss.proxy.ClientContainer.readExternal
(ClientContainer.java:112)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1207)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.inputClassFields
(ObjectInputStream.java:2258)
        at java.io.ObjectInputStream.defaultReadObject
(ObjectInputStream.java:514)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1407)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:231)
        at java.util.HashMap.readObject
(HashMap.java:835)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.io.ObjectInputStream.invokeObjectReader
(ObjectInputStream.java:2209)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1406)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.inputClassFields
(ObjectInputStream.java:2258)
        at java.io.ObjectInputStream.defaultReadObject
(ObjectInputStream.java:514)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1407)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:231)
        at org.jboss.proxy.ClientContainer.readExternal
(ClientContainer.java:112)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1207)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.inputClassFields
(ObjectInputStream.java:2258)
        at java.io.ObjectInputStream.defaultReadObject
(ObjectInputStream.java:514)
        at java.io.ObjectInputStream.inputObject
(ObjectInputStream.java:1407)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:381)
        at java.io.ObjectInputStream.readObject
(ObjectInputStream.java:231)
        at 
org.jboss.invocation.pooled.interfaces.PooledInvokerProxy
.invoke(PooledInvokerProxy.java:335)
        at 
org.jboss.proxy.ejb.handle.StatefulHandleImpl.getEJBObje
ct(StatefulHandleImpl.java:152)
        at 
com.kyriba.technical.server.internal.session.SessionRegist
ryBean.restoreSessionManager
(SessionRegistryBean.java:331)
        at 
com.kyriba.technical.server.internal.session.SessionRegist
ryBean.ejbLoad(SessionRegistryBean.java:389)
        at java.lang.reflect.Method.invoke(Native Method)
        at 
org.jboss.ejb.plugins.BMPPersistenceManager.loadEntity
(BMPPersistenceManager.java:412)
        at 
org.jboss.resource.connectionmanager.CachedConnection
Interceptor.loadEntity
(CachedConnectionInterceptor.java:352)
        at 
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.inv
oke(EntitySynchronizationInterceptor.java:239)
        at 
org.jboss.resource.connectionmanager.CachedConnection
Interceptor.invoke
(CachedConnectionInterceptor.java:185)
        at 
org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke
(EntityReentranceInterceptor.java:71)
        at 
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke
(EntityInstanceInterceptor.java:163)
        at 
org.jboss.ejb.plugins.EntityLockInterceptor.invoke
(EntityLockInterceptor.java:89)
        at 
org.jboss.ejb.plugins.EntityCreationInterceptor.invoke
(EntityCreationInterceptor.java:54)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext
(AbstractTxInterceptor.java:84)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransacti
ons(TxInterceptorCMT.java:267)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invoke
(TxInterceptorCMT.java:128)
        at org.jboss.ejb.plugins.SecurityInterceptor.invoke
(SecurityInterceptor.java:118)
        at org.jboss.ejb.plugins.LogInterceptor.invoke
(LogInterceptor.java:191)
        at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invok
e(ProxyFactoryFinderInterceptor.java:122)
        at org.jboss.ejb.EntityContainer.internalInvoke
(EntityContainer.java:489)
        at org.jboss.ejb.Container.invoke
(Container.java:700)
        at java.lang.reflect.Method.invoke(Native Method)
        at 
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke
(ReflectedMBeanDispatcher.java:284)
        at org.jboss.mx.server.MBeanServerImpl.invoke
(MBeanServerImpl.java:546)
        at org.jboss.invocation.local.LocalInvoker.invoke
(LocalInvoker.java:101)
        at org.jboss.invocation.InvokerInterceptor.invoke
(InvokerInterceptor.java:90)
        at org.jboss.proxy.TransactionInterceptor.invoke
(TransactionInterceptor.java:46)
        at org.jboss.proxy.SecurityInterceptor.invoke
(SecurityInterceptor.java:45)
        at org.jboss.proxy.ejb.EntityInterceptor.invoke
(EntityInterceptor.java:97)
        at org.jboss.proxy.ClientContainer.invoke
(ClientContainer.java:85)
        at $Proxy34.attachToSession(Unknown Source)
        at 
com.kyriba.technical.server.internal.session.SessionConne
ctor.openSessionLocal(SessionConnector.java:103)
        at 
com.kyriba.technical.server.internal.session.SessionConne
ctorBean.openSessionLocal
(SessionConnectorBean.java:139)
        at java.lang.reflect.Method.invoke(Native Method)
        at 
org.jboss.ejb.StatelessSessionContainer$ContainerInterce
ptor.invoke(StatelessSessionContainer.java:683)
        at 
org.jboss.resource.connectionmanager.CachedConnection
Interceptor.invoke
(CachedConnectionInterceptor.java:185)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext
(AbstractTxInterceptor.java:84)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNe
xt(AbstractTxInterceptorBMT.java:144)
        at org.jboss.ejb.plugins.TxInterceptorBMT.invoke
(TxInterceptorBMT.java:62)
        at 
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor
.invoke(StatelessSessionInstanceInterceptor.java:72)
        at org.jboss.ejb.plugins.SecurityInterceptor.invoke
(SecurityInterceptor.java:118)
        at org.jboss.ejb.plugins.LogInterceptor.invoke
(LogInterceptor.java:191)
        at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invok
e(ProxyFactoryFinderInterceptor.java:122)
        at 
org.jboss.ejb.StatelessSessionContainer.internalInvoke
(StatelessSessionContainer.java:331)
        at org.jboss.ejb.Container.invoke
(Container.java:700)
        at java.lang.reflect.Method.invoke(Native Method)
        at 
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke
(ReflectedMBeanDispatcher.java:284)
        at org.jboss.mx.server.MBeanServerImpl.invoke
(MBeanServerImpl.java:546)
        at org.jboss.invocation.local.LocalInvoker.invoke
(LocalInvoker.java:101)
        at org.jboss.invocation.InvokerInterceptor.invoke
(InvokerInterceptor.java:90)
        at org.jboss.proxy.TransactionInterceptor.invoke
(TransactionInterceptor.java:46)
        at org.jboss.proxy.SecurityInterceptor.invoke
(SecurityInterceptor.java:45)
        at 
org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke
(StatelessSessionInterceptor.java:100)
        at org.jboss.proxy.ClientContainer.invoke
(ClientContainer.java:85)
        at $Proxy40.openSessionLocal(Unknown Source)
        at 
com.kyriba.technical.server.internal.session.SessionConne
ctor.openSessionRemote(SessionConnector.java:152)
        at 
com.kyriba.technical.server.internal.session.SessionConne
ctor.openSession(SessionConnector.java:131)
        at 
com.kyriba.technical.server.internal.session.SessionConne
ctorBean.openSession(SessionConnectorBean.java:120)
        at java.lang.reflect.Method.invoke(Native Method)
        at 
org.jboss.ejb.StatelessSessionContainer$ContainerInterce
ptor.invoke(StatelessSessionContainer.java:683)
        at 
org.jboss.resource.connectionmanager.CachedConnection
Interceptor.invoke
(CachedConnectionInterceptor.java:185)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext
(AbstractTxInterceptor.java:84)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNe
xt(AbstractTxInterceptorBMT.java:144)
        at org.jboss.ejb.plugins.TxInterceptorBMT.invoke
(TxInterceptorBMT.java:62)
        at 
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor
.invoke(StatelessSessionInstanceInterceptor.java:72)
        at org.jboss.ejb.plugins.SecurityInterceptor.invoke
(SecurityInterceptor.java:118)
        at org.jboss.ejb.plugins.LogInterceptor.invoke
(LogInterceptor.java:191)
        at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invok
e(ProxyFactoryFinderInterceptor.java:122)
        at 
org.jboss.ejb.StatelessSessionContainer.internalInvoke
(StatelessSessionContainer.java:331)
        at org.jboss.ejb.Container.invoke
(Container.java:700)
        at java.lang.reflect.Method.invoke(Native Method)
        at 
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke
(ReflectedMBeanDispatcher.java:284)
        at org.jboss.mx.server.MBeanServerImpl.invoke
(MBeanServerImpl.java:546)
        at org.jboss.invocation.local.LocalInvoker.invoke
(LocalInvoker.java:101)
        at org.jboss.invocation.InvokerInterceptor.invoke
(InvokerInterceptor.java:90)
        at org.jboss.proxy.TransactionInterceptor.invoke
(TransactionInterceptor.java:46)
        at org.jboss.proxy.SecurityInterceptor.invoke
(SecurityInterceptor.java:45)
        at 
org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke
(StatelessSessionInterceptor.java:100)
        at org.jboss.proxy.ClientContainer.invoke
(ClientContainer.java:85)
        at $Proxy40.openSession(Unknown Source)
        at 
com.kyriba.technical.shared.internal.session.RemoteSessi
on.<init>(RemoteSession.java:145)
        at 
com.kyriba.technical.shared.internal.session.RemoteSessi
on.init(RemoteSession.java:119)
        at 
com.kyriba.technical.shared.internal.session.RemoteSessi
on.open(RemoteSession.java:83)
        at 
com.kyriba.technical.server.internal.web.WebManagerImpl
.connect(WebManagerImpl.java:174)
        at 
com.kyriba.technical.server.internal.web.Helper.createSe
ssion(Helper.java:71)
        at 
com.kyriba.technical.server.internal.web.filter.MainFilter.d
oFilter(MainFilter.java:102)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDo
Filter(ApplicationFilterChain.java:213)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at 
com.kyriba.technical.server.internal.web.FunctionContext
Filter.doFilter(FunctionContextFilter.java:156)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDo
Filter(ApplicationFilterChain.java:213)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at 
com.kyriba.technical.server.internal.web.EnvFilter.doFilter
(EnvFilter.java:97)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDo
Filter(ApplicationFilterChain.java:213)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.jboss.web.tomcat.security.JBossSecurityMgrRealm.inv
oke(JBossSecurityMgrRealm.java:220)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invo
ke(AuthenticatorBase.java:553)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.valves.CertificatesValve.invoke
(CertificatesValve.java:246)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.i
nvoke(ContainerStatsValve.java:76)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2417)
        at 
org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.jboss.web.tomcat.security.SecurityAssociationValve.i
nvoke(SecurityAssociationValve.java:65)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.valves.AccessLogValve.invoke
(AccessLogValve.java:577)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipeli
neValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:995)
        at 
org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:197)
        at 
org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:781)
        at 
org.apache.coyote.http11.Http11Protocol$Http11Connec
tionHandler.processConnection(Http11Protocol.java:549)
        at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:605)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunna
ble.run(ThreadPool.java:677)

The method required by JBoss was introduced in JDK1.4 
only. So on JDK1.4.2 everything works correctly.

Problem is specific to PooledInvoker only. No problems 
were identified in case of JRMP invoker usage with 
JDK1.3.1.


OS: Windows2000


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

Comment By: Sergey Marchuk (smarchuk)
Date: 2004-02-23 12:13

Message:
Logged In: YES 
user_id=980176

This can not be recompilation issue.
Let's consider some places in source code of 
org.jboss.invocation.pooled.interfaces.OptimizedObjectInputStr
eam

1. NoSuchMethodException is thrown from here:
   static
   {
      useClassCache(true);
      try
      {
         lookupStreamClass = 
ObjectStreamClass.class.getDeclaredMethod("lookup", new 
Class[]{Class.class, boolean.class});
         lookupStreamClass.setAccessible(true);
      }
      catch (Exception ex)
      {
         ex.printStackTrace();
      }
   }
Method ObjectStreamClass.lookup(Class cl, boolean all) was 
added in jdk1.4 only and does not exist in jdk1.3.

2. First exception drives to NullPointerException thrown from 
the following code:
   protected static ObjectStreamClass lookup(Class clazz)
   {
      Object[] args = {clazz, Boolean.TRUE};
      try
      {
         return (ObjectStreamClass) lookupStreamClass.invoke
(null, args);
      }
      catch (Exception ex)
      {
         ex.printStackTrace();
      }
      return null;
   }
Again, non-existing method in jdk1.3 is being called.

So, it definitely requires jdk1.4 to run.

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

Comment By: Heiko W.Rupp (pilhuhn)
Date: 2004-02-20 16:59

Message:
Logged In: YES 
user_id=217112

The downloadable version is compiled with jdk 1.4.
When you grab the server source and recompile with jdk1.3,
then you can also run it on jdk 1.3.

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

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


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to