[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] StackOverflow error while deploying osgi runtime in WAS 6.1 with java2 security

Hi Thomas,

On Thu, Jun 9, 2011 at 6:47 PM, Thomas Watson <tjwatson@xxxxxxxxxx> wrote:

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.

Âthanks, you are spot on. i use the OSGI framework inside the web app (bridge servlet mechanism). I set the grant Allpermission to the webApp in the was.policy file. Still i'm getting this error. However Ârectified this proplem by patching the osgiFramework jar.Â

It looks like as if the framework is not getting the AllPermissions. Is there any property to set other than, setting permissions in the was.policy file.

Â
thanks,
--Pradeep


Tom



Inactive hide details for Pradeep Fernando ---06/08/2011 11:54:43 PM---Hi,Pradeep Fernando ---06/08/2011 11:54:43 PM---Hi,


From:

Pradeep Fernando <pradeepfn@xxxxxxxxx>

To:

equinox-dev@xxxxxxxxxxx

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
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev



_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev




--
Pradeep Fernando.
http://pradeepfernando.blogspot.com/

GIF image

GIF image