You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2021/08/10 04:37:38 UTC

[felix-dev] branch master updated: FELIX-6442 : NPE when generating ServiceReferenceDTOs (#87)

This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git


The following commit(s) were added to refs/heads/master by this push:
     new f0d8815  FELIX-6442 : NPE when generating ServiceReferenceDTOs (#87)
f0d8815 is described below

commit f0d88159bcafe65ceabd7df937a63bfcbf26ce72
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Aug 10 06:37:34 2021 +0200

    FELIX-6442 : NPE when generating ServiceReferenceDTOs (#87)
---
 .../java/org/apache/felix/framework/DTOFactory.java     | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)

diff --git a/framework/src/main/java/org/apache/felix/framework/DTOFactory.java b/framework/src/main/java/org/apache/felix/framework/DTOFactory.java
index 2133e61..06c40ff 100644
--- a/framework/src/main/java/org/apache/felix/framework/DTOFactory.java
+++ b/framework/src/main/java/org/apache/felix/framework/DTOFactory.java
@@ -335,27 +335,18 @@ public class DTOFactory
         if (svcs == null)
             return new ServiceReferenceDTO[0];
 
-        List<ServiceReferenceDTO> dtos = new ArrayList<>();
+        ServiceReferenceDTO[] dtos = new ServiceReferenceDTO[svcs.length];
         for (int i=0; i < svcs.length; i++)
         {
-            ServiceReferenceDTO dto = createServiceReferenceDTO(svcs[i]);
-            if ( dto != null )
-            {
-                dtos.add(dto);
-            }
+            dtos[i] = createServiceReferenceDTO(svcs[i]);
         }
-        return dtos.toArray(new ServiceReferenceDTO[dtos.size()]);
+        return dtos;
     }
 
     private static ServiceReferenceDTO createServiceReferenceDTO(ServiceReference<?> svc)
     {
-        final Bundle bundle = svc.getBundle();
-        if ( bundle == null )
-        {
-            return null;
-        }
         ServiceReferenceDTO dto = new ServiceReferenceDTO();
-        dto.bundle = bundle.getBundleId();
+        dto.bundle = (Long)svc.getProperty(Constants.SERVICE_BUNDLEID);
         dto.id = (Long) svc.getProperty(Constants.SERVICE_ID);
         Map<String, Object> props = new HashMap<String, Object>();
         for (String key : svc.getPropertyKeys())