Is your webapp granted AllPermission?  There is a bug in the version of
AdminPermission you are using which has been fixed in the OSGi R4.2 Core
specification (implemented in Equinox 3.5 or later) which is causing the
endless recursion.  In most cases this endless recursion does not get hit
because the class loader loading up the framework implementation grants the
framework AllPermission and the AllPermission grant short circuits the
permission check and avoids the endless recursion.  However, if your setup
deviates from this at all then additional checks are done to determine if
the code on the stack has permissions and this leads to the recursion.

Tom




|------------>
| From:      |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |Pradeep Fernando <[email protected]>                                       
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| To:        |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |[email protected]                                                      
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Date:      |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |06/08/2011 11:54 PM                                                          
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Subject:   |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |[equinox-dev] StackOverflow error while deploying osgi runtime in WAS 6.1 
with java2 security                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|





Hi,

I was trying to get my OSGI runtime up and running in the IBM WAS 6.1
. My application is a webapp that uses the BridgeServlet as the
connector between appserver and the OSGI environment. It works fine
untill I enable the JAVA2 sercurity.  Since the error traces are
relevant to the OSGI system bundle, I think you guys have a better
idea what is happening.


In the bundleContextImpl class , the startActivator method calls a
doPriviledged method and it recursively calls the other bundles in the
configured system. This is the expected behaviour i guess. But somehow
it throws a stackoverflow (pasted below) exception while doing that it
seems.

The error I'm getting is similar to the error listed in a eclipse
forum [1] . Their advice is to set the ' eclipse.security = true ' in
the config.ini . I did that and it didnt work for me. Apart from that
I cant see the rationale behind setting that property ; didnt see a
usage of that property  during my debugging session.

any thoughts ? explanations ? welcome.


my environment :

windows XP,
IBM WAS 6.1.29 trial version
equinox runtime 3.5  - (this is bit old, but i cant change this right now)
enabled java2 security
granted all permission to my web-app in the policy file



[1] http://www.eclipse.org/forums/index.php?t=msg&goto=538878&;

The Stack Trace :


!SESSION 2011-06-06 11:10:30.756
-----------------------------------------------
eclipse.buildId=unknown
java.fullversion=J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32
j9vmwi3223-20060504 (JIT enabled)
J9VM - 20060501_06428_lHdSMR
JIT  - 20060428_1800_r8
GC   - 20060501_AA
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US

!ENTRY org.eclipse.osgi 4 0 2011-06-06 11:10:30.756
!MESSAGE
!STACK 0
org.osgi.framework.BundleException: Exception in
org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start()
of bundle org.eclipse.osgi.
       at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator
(BundleContextImpl.java:805)
       at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start
(BundleContextImpl.java:754)
       at
org.eclipse.osgi.framework.internal.core.InternalSystemBundle.resume
(InternalSystemBundle.java:207)
       at org.eclipse.osgi.framework.internal.core.Framework.launch
(Framework.java:649)
       at org.eclipse.core.runtime.adaptor.EclipseStarter.startup
(EclipseStarter.java:298)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:64)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:615)
       at org.wso2.carbon.bridge.EquinoxFrameworkLauncher.start
(EquinoxFrameworkLauncher.java:394)
       at org.wso2.carbon.bridge.BridgeServlet.init(BridgeServlet.java:92)
       at javax.servlet.GenericServlet.init(GenericServlet.java:256)
       at com.ibm.ws.webcontainer.servlet.ServletWrapper.init
(ServletWrapper.java:227)
       at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.init
(ServletWrapper.java:341)
       at com.ibm.ws.webcontainer.servlet.ServletWrapper.initialize
(ServletWrapper.java:1308)
       at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.initialize
(ServletWrapper.java:174)
       at
com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor.createServletWrapper
(WebExtensionProcessor.java:99)
       at com.ibm.ws.webcontainer.webapp.WebApp.getServletWrapper
(WebApp.java:902)
       at com.ibm.ws.webcontainer.webapp.WebApp.getServletWrapper
(WebApp.java:824)
       at com.ibm.ws.webcontainer.webapp.WebApp.initializeTargetMappings
(WebApp.java:542)
       at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish
(WebApp.java:379)
       at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize
(WebApp.java:293)
       at com.ibm.ws.wswebcontainer.webapp.WebGroup.addWebApplication
(WebGroup.java:93)
       at com.ibm.ws.wswebcontainer.VirtualHost.addWebApplication
(VirtualHost.java:162)
       at com.ibm.ws.wswebcontainer.WebContainer.addWebApp
(WebContainer.java:673)
       at com.ibm.ws.wswebcontainer.WebContainer.addWebApplication
(WebContainer.java:626)
       at com.ibm.ws.webcontainer.component.WebContainerImpl.install
(WebContainerImpl.java:335)
       at com.ibm.ws.webcontainer.component.WebContainerImpl.start
(WebContainerImpl.java:551)
       at com.ibm.ws.runtime.component.ApplicationMgrImpl.start
(ApplicationMgrImpl.java:1250)
       at
com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart
(DeployedApplicationImpl.java:1140)
       at com.ibm.ws.runtime.component.DeployedModuleImpl.start
(DeployedModuleImpl.java:569)
       at com.ibm.ws.runtime.component.DeployedApplicationImpl.start
(DeployedApplicationImpl.java:819)
       at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication
(ApplicationMgrImpl.java:921)
       at com.ibm.ws.runtime.component.ApplicationMgrImpl
$AppInitializer.run(ApplicationMgrImpl.java:2100)
       at com.ibm.wsspi.runtime.component.WsComponentImpl
$_AsynchInitializer.run(WsComponentImpl.java:342)
       at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
Caused by: java.lang.StackOverflowError
       at
org.eclipse.osgi.framework.internal.core.Framework.getAdminPermission
(Framework.java:1185)
       at
org.eclipse.osgi.framework.internal.core.Framework.checkAdminPermission
(Framework.java:1178)
       at
org.eclipse.osgi.framework.internal.core.AbstractBundle.getLocation
(AbstractBundle.java:997)
       at org.osgi.framework.AdminPermission$1.run
(AdminPermission.java:830)
       at java.security.AccessController.doPrivileged
(AccessController.java:192)
       at org.osgi.framework.AdminPermission.getProperties
(AdminPermission.java:827)
       at org.osgi.framework.AdminPermission.implies0
(AdminPermission.java:650)
       at org.osgi.framework.AdminPermissionCollection.implies
(AdminPermission.java:962)
       at
org.eclipse.osgi.framework.internal.core.ConditionalPermissionSet.implies
(ConditionalPermissionSet.java:224)
       at
org.eclipse.osgi.framework.internal.core.BundleCombinedPermissions.implies
(BundleCombinedPermissions.java:124)
       at java.security.ProtectionDomain.implies(ProtectionDomain.java:225)
       at java.security.AccessController.checkPermission
(AccessController.java:94)
       at java.lang.SecurityManager.checkPermission
(SecurityManager.java:547)
       at com.ibm.ws.security.core.SecurityManager.checkPermission
(SecurityManager.java:213)
       at
org.eclipse.osgi.framework.internal.core.Framework.checkAdminPermission
(Framework.java:1178)
       at
org.eclipse.osgi.framework.internal.core.AbstractBundle.getLocation
(AbstractBundle.java:997)
       at org.osgi.framework.AdminPermission$1.run
(AdminPermission.java:830)
       at java.security.AccessController.doPrivileged
(AccessController.java:192)




Thanks in advance.


--
Pradeep Fernando.
_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

<<inline: graycol.gif>>

<<inline: ecblank.gif>>

_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to