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));



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org

Reply via email to