- 
    Bug 
- 
    Resolution: Duplicate
- 
     P3 P3
- 
    None
- 
    8u66
- 
        x86_64
- 
        windows_7
                    FULL PRODUCT VERSION :
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b18, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
StackOverflowError during PolicyFile lookup
A DESCRIPTION OF THE PROBLEM :
Running a custom Security Manager works fine until a specific point. Then we get a StackOverflow when reading the policy file. This bug has been fixed for JDK 9 but not been backported to JDK 8:
Former Bug Ticket
JDK-8077418
Our Custom Security Manager catches the exception of of a security violation and only logs it. (like a dryrun)
Please backport the fix to JDK 8. Until then working with a Custom Security Manager is not possible as it can lead to
REGRESSION. Last worked in version 9
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
This is an old bug. The fix has not been backported to jdk 8 but fixed in jdk 9:
JDK-8077418
Run java security with a custom security manager (like the one we posted) and let it run some time.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Logging of the missing permission which caused the security exception
ACTUAL -
package de.kvb.common.security.manager;
import java.security.AccessControlContext;
import java.security.AccessControlException;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
/**
* Custom SecurityManager for logging access violations instead of throwing Exceptions
*/
public class KvbSecurityManager extends SecurityManager {
public KvbSecurityManager() {
}
@Override
public void checkPermission(Permission perm) {
try {
super.checkPermission(perm);
} catch(AccessControlException e) {
System.out.println(perm);
}
}
}
ERROR MESSAGES/STACK TRACES THAT OCCUR :
package de.kvb.common.security.manager;
import java.security.AccessControlContext;
import java.security.AccessControlException;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
/**
* Custom SecurityManager for logging access violations instead of throwing Exceptions
*/
public class KvbSecurityManager extends SecurityManager {
public KvbSecurityManager() {
}
@Override
public void checkPermission(Permission perm) {
try {
super.checkPermission(perm);
} catch(AccessControlException e) {
System.out.println(perm);
}
}
}
REPRODUCIBILITY :
This bug can be reproduced often.
---------- BEGIN SOURCE ----------
package de.kvb.common.security.manager;
import java.security.AccessControlContext;
import java.security.AccessControlException;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
/**
* Custom SecurityManager for logging access violations instead of throwing Exceptions
*/
public class KvbSecurityManager extends SecurityManager {
public KvbSecurityManager() {
}
@Override
public void checkPermission(Permission perm) {
try {
super.checkPermission(perm);
} catch(AccessControlException e) {
System.out.println(perm);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
No workaround possible
            
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b18, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
StackOverflowError during PolicyFile lookup
A DESCRIPTION OF THE PROBLEM :
Running a custom Security Manager works fine until a specific point. Then we get a StackOverflow when reading the policy file. This bug has been fixed for JDK 9 but not been backported to JDK 8:
Former Bug Ticket
Our Custom Security Manager catches the exception of of a security violation and only logs it. (like a dryrun)
Please backport the fix to JDK 8. Until then working with a Custom Security Manager is not possible as it can lead to
REGRESSION. Last worked in version 9
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
This is an old bug. The fix has not been backported to jdk 8 but fixed in jdk 9:
Run java security with a custom security manager (like the one we posted) and let it run some time.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Logging of the missing permission which caused the security exception
ACTUAL -
package de.kvb.common.security.manager;
import java.security.AccessControlContext;
import java.security.AccessControlException;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
/**
* Custom SecurityManager for logging access violations instead of throwing Exceptions
*/
public class KvbSecurityManager extends SecurityManager {
public KvbSecurityManager() {
}
@Override
public void checkPermission(Permission perm) {
try {
super.checkPermission(perm);
} catch(AccessControlException e) {
System.out.println(perm);
}
}
}
ERROR MESSAGES/STACK TRACES THAT OCCUR :
package de.kvb.common.security.manager;
import java.security.AccessControlContext;
import java.security.AccessControlException;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
/**
* Custom SecurityManager for logging access violations instead of throwing Exceptions
*/
public class KvbSecurityManager extends SecurityManager {
public KvbSecurityManager() {
}
@Override
public void checkPermission(Permission perm) {
try {
super.checkPermission(perm);
} catch(AccessControlException e) {
System.out.println(perm);
}
}
}
REPRODUCIBILITY :
This bug can be reproduced often.
---------- BEGIN SOURCE ----------
package de.kvb.common.security.manager;
import java.security.AccessControlContext;
import java.security.AccessControlException;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
/**
* Custom SecurityManager for logging access violations instead of throwing Exceptions
*/
public class KvbSecurityManager extends SecurityManager {
public KvbSecurityManager() {
}
@Override
public void checkPermission(Permission perm) {
try {
super.checkPermission(perm);
} catch(AccessControlException e) {
System.out.println(perm);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
No workaround possible
- duplicates
- 
                    JDK-8129170 StackOverflowError during PolicyFile lookup -           
- Resolved
 
-         
- relates to
- 
                    JDK-8077418 StackOverflowError during PolicyFile lookup -           
- Closed
 
-         
- 
                    JDK-8166366 StackOverflowError with custom security manager -           
- Closed
 
-