You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Daniel John Debrunner (JIRA)" <de...@db.apache.org> on 2005/11/01 23:29:56 UTC

[jira] Resolved: (DERBY-656) SecurityException with accessDeclaredMembers on DatabaseMetaData.getTables.

     [ http://issues.apache.org/jira/browse/DERBY-656?page=all ]
     
Daniel John Debrunner resolved DERBY-656:
-----------------------------------------

    Fix Version: 10.2.0.0
                 10.1.2.1
     Resolution: Fixed

Fixed in trunk (330133) and then merged to 10.1 (330136)

> 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