svn commit: r1689980 - /portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/JetspeedSecurityPersistenceManager.java

[email protected]
Newsgroups gmane.comp.jakarta.jetspeed.devel
Message-ID <[email protected]>
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.