Author: rwatler
Date: Thu Jul 9 02:56:30 2015
New Revision: 1689980
URL: http://svn.apache.org/r1689980
Log:
JS2-1329: Specify OJB retrieval of ids as BIGINT/long for Security queries.
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/JetspeedSecurityPersistenceManager.java
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/JetspeedSecurityPersistenceManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/JetspeedSecurityPersistenceManager.java?rev=1689980&r1=1689979&r2=1689980&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/JetspeedSecurityPersistenceManager.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/JetspeedSecurityPersistenceManager.java Thu Jul 9 02:56:30 2015
@@ -365,13 +365,15 @@ public class JetspeedSecurityPersistence
// perform query
ReportQueryByCriteria query = QueryFactory.newReportQuery(PersistentJetspeedPrincipal.class, criteria);
query.setAttributes(new String[]{"name", "id"});
+ // need to force OJB to return a Long, otherwise it'll return a Integer causing a CCE
+ query.setJdbcTypes(new int[]{Types.VARCHAR, Types.BIGINT});
associatedNamesFrom = new ArrayList<String>();
List<Long> associatedIdsFrom = new ArrayList<Long>();
for (Iterator<Object[]> iter = getPersistenceBrokerTemplate().getReportQueryIteratorByQuery(query); iter.hasNext(); )
{
Object[] associatedFrom = iter.next();
associatedNamesFrom.add((String) associatedFrom[0]);
- associatedIdsFrom.add(((Integer) associatedFrom[1]).longValue());
+ associatedIdsFrom.add((Long) associatedFrom[1]);
}
// put result in cache
try
@@ -411,13 +413,15 @@ public class JetspeedSecurityPersistence
// perform query
ReportQueryByCriteria query = QueryFactory.newReportQuery(PersistentJetspeedPrincipal.class, criteria);
query.setAttributes(new String[]{"name", "id"});
+ // need to force OJB to return a Long, otherwise it'll return a Integer causing a CCE
+ query.setJdbcTypes(new int[]{Types.VARCHAR, Types.BIGINT});
associatedNamesFrom = new ArrayList<String>();
List<Long> associatedIdsFrom = new ArrayList<Long>();
for (Iterator<Object[]> iter = getPersistenceBrokerTemplate().getReportQueryIteratorByQuery(query); iter.hasNext(); )
{
Object[] associatedFrom = iter.next();
associatedNamesFrom.add((String) associatedFrom[0]);
- associatedIdsFrom.add(((Integer) associatedFrom[1]).longValue());
+ associatedIdsFrom.add((Long) associatedFrom[1]);
}
// put result in cache
jspmCache.putAssociationQuery(cacheKey, principalFromId, associatedIdsFrom.toArray(new Long[associatedIdsFrom.size()]), fromSecurityDomain, toSecurityDomain, new ArrayList<String>(associatedNamesFrom));
@@ -450,13 +454,15 @@ public class JetspeedSecurityPersistence
// perform query
ReportQueryByCriteria query = QueryFactory.newReportQuery(PersistentJetspeedPrincipal.class, criteria);
query.setAttributes(new String[]{"name", "id"});
+ // need to force OJB to return a Long, otherwise it'll return a Integer causing a CCE
+ query.setJdbcTypes(new int[]{Types.VARCHAR, Types.BIGINT});
associatedNamesTo = new ArrayList<String>();
List<Long> associatedIdsTo = new ArrayList<Long>();
for (Iterator<Object[]> iter = getPersistenceBrokerTemplate().getReportQueryIteratorByQuery(query); iter.hasNext(); )
{
Object[] associatedTo = iter.next();
associatedNamesTo.add((String) associatedTo[0]);
- associatedIdsTo.add(((Integer) associatedTo[1]).longValue());
+ associatedIdsTo.add((Long) associatedTo[1]);
}
// put result in cache
try
@@ -496,13 +502,15 @@ public class JetspeedSecurityPersistence
// perform query
ReportQueryByCriteria query = QueryFactory.newReportQuery(PersistentJetspeedPrincipal.class, criteria);
query.setAttributes(new String[]{"name", "id"});
+ // need to force OJB to return a Long, otherwise it'll return a Integer causing a CCE
+ query.setJdbcTypes(new int[]{Types.VARCHAR, Types.BIGINT});
associatedNamesTo = new ArrayList<String>();
List<Long> associatedIdsTo = new ArrayList<Long>();
for (Iterator<Object[]> iter = getPersistenceBrokerTemplate().getReportQueryIteratorByQuery(query); iter.hasNext(); )
{
Object[] associatedTo = iter.next();
associatedNamesTo.add((String) associatedTo[0]);
- associatedIdsTo.add(((Integer) associatedTo[1]).longValue());
+ associatedIdsTo.add((Long) associatedTo[1]);
}
// put result in cache
jspmCache.putAssociationQuery(cacheKey, principalToId, associatedIdsTo.toArray(new Long[associatedIdsTo.size()]), fromSecurityDomain, toSecurityDomain, new ArrayList<String>(associatedNamesTo));
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.