Naming lookup causes a StackOverflowError
 Technote (troubleshooting)
 
Problem(Abstract)
Enterprise Java Bean (EJB) client tries to bind to a specific EJB and it fails with a StackOverflowError. DumpNameSpace also fails with same errors.

Trace from server:
java.lang.StackOverflowError at null.null(Unknown Source)
at com.ibm.rmi.iiop.GIOPImpl.createRequest(GIOPImpl.java:97)
at com.ibm.rmi.corba.ClientDelegate._createRequest(ClientDelegate.java:1899)
at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1177)
at com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java:1285)
. . .
com.ibm.rmi.corba.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:317)
at com.ibm.rmi.corba.Corbaloc.locateUsingBootstrap(Corbaloc.java:315)
at com.ibm.rmi.corba.Corbaloc.resolve(Corbaloc.java:408)
at com.ibm.rmi.corba.ORB.objectURLToObject(ORB.java:3503)
at com.ibm.CORBA.iiop.ORB.objectURLToObject(ORB.java:3374)
at com.ibm.rmi.corba.ORB.string_to_object(ORB.java:3389)

=======
SystemOut.log
[6/17/05 16:33:42:128 CDT] 0000001a EJBContainerI I WSVR0045E:
Unable to create sub-context ejb/mgmt: Error during batch processing
of name ejb/mgmt. Original exception :org.omg.CORBA.IMP_LIMIT: Context
is Read Only, Primary
Name=MyNode01Cell/nodes/MyNode01/servers/server1/ejb
vmcid: 0x49421000 minor code: 82 completed: No
==========
native_stderr.log
Stack overflow occurred outside JITted code or Interpreter.
Searching for valid stack frames.
Stack trace information below may not be accurate or complete. It is
provided for diagnostic purposes.
at java/util/regex/Matcher.match
at java/util/regex/Matcher.match
at java/util/regex/Pattern$Branch.match
at java/util/regex/Pattern$Branch.match
at java/util/regex/Pattern$Dummy.match
 
Cause
The problem is caused when a CORBA Name Space has a persistent, configured binding with the same JNDI name ("ejb/MyEJBHome" ) under the server root of the server1 as a deployed application.

Because of the configured binding, the EJB container was unable to bind the EJB application with the same JNDI name ("ejb/MyEJBHome" ) under the server root of server1 with the exception: org.omg.CORBA.IMP_LIMIT: Context is Read Only, PrimaryName=MyNode01Cell/nodes/MyNode01/servers/server1/ejb.

Also, the lookup() on this EJB or list/listBinding(), which dumpNameSpace uses, will go to an infinite loop since this CORBA namespace configured binding points to itself. This is why the StackOverflowError is thrown for the list operation as seen inside the server trace.log

 
Resolving the problem
Remove this CORBA name space configured binding from the server root of the server using admin console.
Confirmed to remove the ejb/MyEJBHome Corba namespace binding for server root via Admin Console -> Environment -> Naming -> Name Space Bindings

If the persistent JNDI name is needed for another application, change the JNDI name for deployed application.
 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK
 
Historical Number
83427
004
000
 
 


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server
Operating system(s): AIX
Software version: 6.0.2
Software edition:
Reference #: 1211847
IBM Group: Software Group
Modified date: Jul 14, 2005