[ http://issues.apache.org/jira/browse/DERBY-656?page=all ] Daniel John Debrunner closed DERBY-656: ---------------------------------------
> SecurityException with accessDeclaredMembers on DatabaseMetaData.getTables. > --------------------------------------------------------------------------- > > Key: DERBY-656 > URL: http://issues.apache.org/jira/browse/DERBY-656 > Project: Derby > Type: Bug > Components: Security > Versions: 10.1.1.0 > Reporter: Daniel John Debrunner > Assignee: Daniel John Debrunner > Fix For: 10.1.2.1, 10.2.0.0 > > The code to determine the size of a class is using getDeclaredMembers which > requires the permission accessDeclaredMembers. Ideally should not require to > grant this permission to derby.jar. Need to see which > class's size was being calculated. The code is not in a priv block which > would require granting the permission all the way up the stack. > Maybe if the class's declared memebrs can not be accessed and the value can > not be pre-calculkated then some estimate could be made. (using public > fields?). > java.security.AccessControlException: Access denied > (java.lang.RuntimePermission accessDeclaredMembers) > at > java.security.AccessController.checkPermission(AccessController. > java:107) > at > java.lang.SecurityManager.checkPermission(SecurityManager.java:5 > 47) > at > com.ibm.ws.security.core.SecurityManager.checkPermission(Securit > yManager.java:188) > at > java.lang.SecurityManager.checkMemberAccess(SecurityManager.java > :1677) > at java.lang.Class.checkMemberAccess(Class.java:104) > at java.lang.Class.getDeclaredFields(Class.java:508) > at > org.apache.derby.iapi.services.cache.ClassSize.getSizeCoefficien > ts(Unknown Source) > at > org.apache.derby.iapi.services.cache.ClassSize.estimateBase(Unkn > own Source) > at > org.apache.derby.iapi.store.access.BackingStoreHashtable.<cli > nit>(Unknown Source) > at java.lang.J9VMInternals.initializeImpl(Native > Method) > at > java.lang.J9VMInternals.initialize(J9VMInternals.java:148) > at > org.apache.derby.impl.sql.execute.HashTableResultSet.openCore(Un > known Source) > at > org.apache.derby.impl.sql.execute.JoinResultSet.openRight(Unknow > n Source) > at > org.apache.derby.impl.sql.execute.JoinResultSet.openCore(Unknown > Source) > at > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openC > ore(Unknown Source) > at > org.apache.derby.impl.sql.execute.SortResultSet.openCore(Unknown > Source) > at > org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(U > nknown Source) > at > org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno > wn Source) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unkno > wn Source) > at > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStateme > nt(Unknown Source) > at > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(U > nknown Source) > at > org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTables(Unkno > wn Source) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
