RFR: 8000975: (process) Merge UNIXProcess.java.bsd & UNIXProcess.java.linux (& .solaris & .aix)

roger riggs roger.riggs at oracle.com
Fri Apr 4 19:24:44 UTC 2014


Hi Peter,

I ran into one test problem when running this through its paces.

The test: test/java/lang/ProcessBuilder/SecurityManagerClinit.java
throws a package access exception while creating a lambda
due to the wacky security manager and forbidding of access to java.util.
I hacked the test to remove the limitation on java.util.

This looks good to me but a more experienced Reviewer should look at it.

Thanks, Roger


> Right,
>
> Here it is:
>
> http://cr.openjdk.java.net/~plevart/jdk9-dev/UNIXProcess/webrev.06/


Stack dump from test:
java.lang.ExceptionInInitializerError
         at 
java.lang.invoke.DirectMethodHandle.makePreparedLambdaForm(DirectMethodHandle.java:256)
         at 
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:221)
         at 
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:210)
         at 
java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:82)
         at 
java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:1638)
         at 
java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:1602)
         at 
java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant(MethodHandles.java:1778)
         at 
java.lang.invoke.MethodHandles$Lookup.linkMethodHandleConstant(MethodHandles.java:1727)
         at 
java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:442)
         at java.lang.UNIXProcess$Platform.get(UNIXProcess.java:147)
         at java.lang.UNIXProcess.<clinit>(UNIXProcess.java:160)
         at java.lang.ProcessImpl.start(ProcessImpl.java:130)
         at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
         at java.lang.Runtime.exec(Runtime.java:620)
         at java.lang.Runtime.exec(Runtime.java:485)
         at SecurityManagerClinit.main(SecurityManagerClinit.java:70)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:484)
         at 
com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94)
         at java.lang.Thread.run(Thread.java:744)
Caused by: java.security.AccessControlException: access denied 
("java.lang.RuntimePermission" "accessClassInPackage.java.util")
         at 
java.security.AccessControlContext.checkPermission(AccessControlContext.java:457)
         at 
java.security.AccessController.checkPermission(AccessController.java:884)
         at 
java.lang.SecurityManager.checkPermission(SecurityManager.java:541)
         at 
java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1481)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:305)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:359)
         at 
sun.invoke.util.BytecodeDescriptor.parseSig(BytecodeDescriptor.java:83)
         at 
sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:54)
         at 
sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:41)
         at 
java.lang.invoke.MethodType.fromMethodDescriptorString(MethodType.java:911)
         at java.lang.invoke.MemberName.getMethodType(MemberName.java:144)
         at 
java.lang.invoke.LambdaForm.computeInitialPreparedForms(LambdaForm.java:477)
         at java.lang.invoke.LambdaForm.<clinit>(LambdaForm.java:1641)




More information about the core-libs-dev mailing list