Author: kstam
Date: Tue Apr  9 21:00:40 2013
New Revision: 1466229

URL: http://svn.apache.org/r1466229
Log:
JUDDI-572, OpenJPA can throw a ClassCastException if an invalid key is given. 
Now catching this and sending out an InvalidKeyException.

Modified:
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java?rev=1466229&r1=1466228&r2=1466229&view=diff
==============================================================================
--- 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
 (original)
+++ 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
 Tue Apr  9 21:00:40 2013
@@ -192,11 +192,11 @@ public class InquiryHelper {
                keysFound = FindBusinessByTModelKeyQuery.select(em, 
findQualifiers, body.getTModelBag(), keysFound);
                keysFound = FindBusinessByIdentifierQuery.select(em, 
findQualifiers, body.getIdentifierBag(), keysFound);
                keysFound = FindBusinessByDiscoveryURLQuery.select(em, 
findQualifiers, body.getDiscoveryURLs(), keysFound);
-                if (findQualifiers.isCombineCategoryBags()) {
-                    keysFound = FindBusinessByCombinedCategoryQuery.select(em, 
findQualifiers, body.getCategoryBag(), keysFound);
-                } else {
-                    keysFound = FindBusinessByCategoryQuery.select(em, 
findQualifiers, body.getCategoryBag(), keysFound);
-                }
+        if (findQualifiers.isCombineCategoryBags()) {
+            keysFound = FindBusinessByCombinedCategoryQuery.select(em, 
findQualifiers, body.getCategoryBag(), keysFound);
+        } else {
+            keysFound = FindBusinessByCategoryQuery.select(em, findQualifiers, 
body.getCategoryBag(), keysFound);
+        }
 
                keysFound = FindBusinessByCategoryGroupQuery.select(em, 
findQualifiers, body.getCategoryBag(), keysFound);
                keysFound = FindBusinessByNameQuery.select(em, findQualifiers, 
body.getName(), keysFound);
@@ -470,8 +470,10 @@ public class InquiryHelper {
                        throws DispositionReportFaultMessage {
                if (relatedBusinessInfos == null)
                        relatedBusinessInfos = new 
org.uddi.api_v3.RelatedBusinessInfos();
-               
-               org.apache.juddi.model.BusinessEntity focalBusiness = 
em.find(org.apache.juddi.model.BusinessEntity.class, focalKey);
+               org.apache.juddi.model.BusinessEntity focalBusiness = null;
+               try {
+                       focalBusiness = 
em.find(org.apache.juddi.model.BusinessEntity.class, focalKey);
+               } catch (ClassCastException e) {}
                if (focalBusiness == null)
                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.BusinessNotFound", focalKey));
 

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java?rev=1466229&r1=1466228&r2=1466229&view=diff
==============================================================================
--- 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
 (original)
+++ 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
 Tue Apr  9 21:00:40 2013
@@ -175,9 +175,11 @@ public class JUDDIApiImpl extends Authen
                        
                        List<String> publisherIdList = body.getPublisherId();
                        for (String publisherId : publisherIdList) {
-                               
-                               org.apache.juddi.model.Publisher modelPublisher 
= em.find(org.apache.juddi.model.Publisher.class, publisherId);
-                               if (modelPublisher == null) {
+                               org.apache.juddi.model.Publisher modelPublisher 
= null;
+                               try {
+                                       modelPublisher = 
em.find(org.apache.juddi.model.Publisher.class, publisherId);
+                               } catch (ClassCastException e) {}
+                                       if (modelPublisher == null) {
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.PublisherNotFound", publisherId));
                                }
                                
@@ -388,8 +390,10 @@ public class JUDDIApiImpl extends Authen
                        List<String> subscriptionKeyList = 
body.getClientSubscriptionKey();
                        for (String subscriptionKey : subscriptionKeyList) {
                                
-                               org.apache.juddi.model.ClientSubscriptionInfo 
modelClientSubscriptionInfo =
-                                       
em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+                               org.apache.juddi.model.ClientSubscriptionInfo 
modelClientSubscriptionInfo = null;
+                               try {
+                                       modelClientSubscriptionInfo = 
em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+                               } catch (ClassCastException e) {}
                                if (modelClientSubscriptionInfo == null) {
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey));
                                }
@@ -523,8 +527,10 @@ public class JUDDIApiImpl extends Authen
                        this.getEntityPublisher(em, body.getAuthInfo());
                        for (GetSubscriptionResults getSubscriptionResult : 
body.getGetSubscriptionResultsList()) {
                                String subscriptionKey = 
getSubscriptionResult.getSubscriptionKey();
-                               org.apache.juddi.model.ClientSubscriptionInfo 
modelClientSubscriptionInfo =
-                                       
em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+                               org.apache.juddi.model.ClientSubscriptionInfo 
modelClientSubscriptionInfo = null;
+                               try {
+                                       modelClientSubscriptionInfo = 
em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+                               } catch (ClassCastException e) {}
                                if (modelClientSubscriptionInfo == null) {
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey));
                                }

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java?rev=1466229&r1=1466228&r2=1466229&view=diff
==============================================================================
--- 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
 (original)
+++ 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
 Tue Apr  9 21:00:40 2013
@@ -108,9 +108,12 @@ public class UDDIInquiryImpl extends Aut
                                // Check that we were passed a valid serviceKey 
per
                                // 5.1.12.4 of the UDDI v3 spec
                                String serviceKey = body.getServiceKey();
-                               org.apache.juddi.model.BusinessService 
modelBusinessService = em.find(org.apache.juddi.model.BusinessService.class, 
serviceKey);
-                               if (modelBusinessService == null)
-                                   throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.ServiceNotFound", serviceKey));
+                               org.apache.juddi.model.BusinessService 
modelBusinessService = null;
+                               try {
+                                       
em.find(org.apache.juddi.model.BusinessService.class, serviceKey);
+                               } catch (ClassCastException e) {}
+                       if (modelBusinessService == null)
+                           throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.ServiceNotFound", serviceKey));
 
                            }
                        }
@@ -236,12 +239,15 @@ public class UDDIInquiryImpl extends Aut
                        if (keysFound.size() == 0) {
                            if (body.getBusinessKey() != null) {
                                // Check that we were passed a valid 
businessKey per
-                               // 5.1.12.4 of the UDDI v3 spec
-                               String businessKey = body.getBusinessKey();
-                               org.apache.juddi.model.BusinessEntity 
modelBusinessEntity = em.find(org.apache.juddi.model.BusinessEntity.class, 
businessKey);
-                               if (modelBusinessEntity == null) {
-                                   throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.BusinessNotFound", businessKey));
-                               }
+                       // 5.1.12.4 of the UDDI v3 spec
+                       String businessKey = body.getBusinessKey();
+                       org.apache.juddi.model.BusinessEntity 
modelBusinessEntity = null;
+                       try {
+                               modelBusinessEntity = 
em.find(org.apache.juddi.model.BusinessEntity.class, businessKey);
+                       } catch (ClassCastException e) {}
+                       if (modelBusinessEntity == null) {
+                           throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.BusinessNotFound", businessKey));
+                       }
                            }
                        }
 
@@ -324,8 +330,10 @@ public class UDDIInquiryImpl extends Aut
 
                        List<String> bindingKeyList = body.getBindingKey();
                        for (String bindingKey : bindingKeyList) {
-
-                               org.apache.juddi.model.BindingTemplate 
modelBindingTemplate = em.find(org.apache.juddi.model.BindingTemplate.class, 
bindingKey);
+                               org.apache.juddi.model.BindingTemplate 
modelBindingTemplate = null;
+                               try {
+                                       modelBindingTemplate = 
em.find(org.apache.juddi.model.BindingTemplate.class, bindingKey);
+                               } catch (ClassCastException e) {}
                                if (modelBindingTemplate == null)
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.BindingTemplateNotFound", bindingKey));
 
@@ -373,8 +381,10 @@ public class UDDIInquiryImpl extends Aut
 
                        List<String> businessKeyList = body.getBusinessKey();
                        for (String businessKey : businessKeyList) {
-
-                               org.apache.juddi.model.BusinessEntity 
modelBusinessEntity = em.find(org.apache.juddi.model.BusinessEntity.class, 
businessKey);
+                               org.apache.juddi.model.BusinessEntity 
modelBusinessEntity = null;
+                               try {
+                                       modelBusinessEntity = 
em.find(org.apache.juddi.model.BusinessEntity.class, businessKey);
+                               } catch (ClassCastException e) {}
                                if (modelBusinessEntity == null)
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.BusinessNotFound", businessKey));
 
@@ -422,8 +432,10 @@ public class UDDIInquiryImpl extends Aut
 
                        List<String> entityKeyList = body.getEntityKey();
                        for (String entityKey : entityKeyList) {
-
-                               org.apache.juddi.model.UddiEntity 
modelUddiEntity = em.find(org.apache.juddi.model.UddiEntity.class, entityKey);
+                               org.apache.juddi.model.UddiEntity 
modelUddiEntity = null;
+                               try {
+                                       modelUddiEntity = 
em.find(org.apache.juddi.model.UddiEntity.class, entityKey);
+                               } catch (ClassCastException e) {}
                                if (modelUddiEntity == null)
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.EntityNotFound", entityKey));
 
@@ -450,14 +462,14 @@ public class UDDIInquiryImpl extends Aut
        
     public ServiceDetail getServiceDetail(GetServiceDetail body)
                        throws DispositionReportFaultMessage {
-                long startTime = System.nanoTime();
-                try {
-                    new ValidateInquiry(null).validateGetServiceDetail(body);
-                } catch (DispositionReportFaultMessage drfm) {
-                    long procTime = System.nanoTime() - startTime;
-                    serviceCounter.update(InquiryQuery.GET_SERVICEDETAIL, 
QueryStatus.FAILED, procTime);                      
-                    throw drfm;
-                }
+        long startTime = System.nanoTime();
+        try {
+            new ValidateInquiry(null).validateGetServiceDetail(body);
+        } catch (DispositionReportFaultMessage drfm) {
+            long procTime = System.nanoTime() - startTime;
+            serviceCounter.update(InquiryQuery.GET_SERVICEDETAIL, 
QueryStatus.FAILED, procTime);                      
+            throw drfm;
+        }
 
                EntityManager em = PersistenceManager.getEntityManager();
                EntityTransaction tx = em.getTransaction();
@@ -471,8 +483,10 @@ public class UDDIInquiryImpl extends Aut
 
                        List<String> serviceKeyList = body.getServiceKey();
                        for (String serviceKey : serviceKeyList) {
-
-                               org.apache.juddi.model.BusinessService 
modelBusinessService = em.find(org.apache.juddi.model.BusinessService.class, 
serviceKey);
+                               org.apache.juddi.model.BusinessService 
modelBusinessService = null;
+                               try {
+                                       modelBusinessService = 
em.find(org.apache.juddi.model.BusinessService.class, serviceKey);
+                               } catch (ClassCastException e){}
                                if (modelBusinessService == null)
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.ServiceNotFound", serviceKey));
 
@@ -521,11 +535,12 @@ public class UDDIInquiryImpl extends Aut
 
                        List<String> tmodelKeyList = body.getTModelKey();
                        for (String tmodelKey : tmodelKeyList) {
-
-                               org.apache.juddi.model.Tmodel modelTModel = 
em.find(org.apache.juddi.model.Tmodel.class, tmodelKey);
-                               if (modelTModel == null) {
+                               org.apache.juddi.model.Tmodel modelTModel = 
null;
+                               try {
+                                       modelTModel = 
em.find(org.apache.juddi.model.Tmodel.class, tmodelKey);
+                               } catch (ClassCastException e) {}
+                               if (modelTModel == null)
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.TModelNotFound", tmodelKey));
-                               }
 
                                org.uddi.api_v3.TModel apiTModel = new 
org.uddi.api_v3.TModel();
 

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java?rev=1466229&r1=1466228&r2=1466229&view=diff
==============================================================================
--- 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java
 (original)
+++ 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java
 Tue Apr  9 21:00:40 2013
@@ -75,8 +75,10 @@ public class UDDISubscriptionListenerImp
                
                                this.getEntityPublisher(em, body.getAuthInfo());
                                String subscriptionKey = 
body.getSubscriptionResultsList().getSubscription().getSubscriptionKey();
-                               org.apache.juddi.model.ClientSubscriptionInfo 
modelClientSubscriptionInfo =
-                                       
em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+                               org.apache.juddi.model.ClientSubscriptionInfo 
modelClientSubscriptionInfo = null;
+                               try {
+                                       modelClientSubscriptionInfo = 
em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+                               } catch (ClassCastException e) {}
                                if (modelClientSubscriptionInfo == null) {
                                        throw new InvalidKeyPassedException(new 
ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey));
                                }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to