Partially resolve resource leak warnings in aai-common 93/132093/1
authorFiete Ostkamp <Fiete.Ostkamp@telekom.de>
Wed, 9 Nov 2022 11:19:54 +0000 (11:19 +0000)
committerFiete Ostkamp <Fiete.Ostkamp@telekom.de>
Wed, 9 Nov 2022 11:22:18 +0000 (11:22 +0000)
Issue-ID: AAI-3585

Signed-off-by: Fiete Ostkamp <Fiete.Ostkamp@telekom.de>
Change-Id: Ic871d58bafb385737ecea6ea18c2fb589f4dc369

aai-core/src/main/java/org/onap/aai/audit/ListEndpoints.java
aai-core/src/main/java/org/onap/aai/ingestModel/CreateWidgetModels.java
aai-core/src/test/java/org/onap/aai/stress/IndexStressTest.java

index ae493ef..2312c94 100644 (file)
@@ -46,6 +46,7 @@ import org.onap.aai.setup.SchemaVersion;
 import org.onap.aai.setup.SchemaVersions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeansException;
 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 
 /**
@@ -68,21 +69,23 @@ public class ListEndpoints {
      */
     public static void main(String[] args) {
 
-        AnnotationConfigApplicationContext context =
-                new AnnotationConfigApplicationContext("org.onap.aai.config", "org.onap.aai.setup");
+        try (AnnotationConfigApplicationContext context =
+                new AnnotationConfigApplicationContext("org.onap.aai.config", "org.onap.aai.setup")) {
+            String schemaUriBasePath = context.getEnvironment().getProperty("schema.uri.base.path");
 
-        String schemaUriBasePath = context.getEnvironment().getProperty("schema.uri.base.path");
-
-        if (schemaUriBasePath == null) {
-            String errorMsg = "Unable to find the property schema.uri.base.path,"
-                    + " please check if specified in system property or in schema-ingest.properties";
-            LOGGER.error(errorMsg);
-        }
+            if (schemaUriBasePath == null) {
+                String errorMsg = "Unable to find the property schema.uri.base.path,"
+                        + " please check if specified in system property or in schema-ingest.properties";
+                LOGGER.error(errorMsg);
+            }
 
-        SchemaVersions schemaVersions = context.getBean(SchemaVersions.class);
-        ListEndpoints endPoints = new ListEndpoints(schemaUriBasePath, schemaVersions.getDefaultVersion());
+            SchemaVersions schemaVersions = context.getBean(SchemaVersions.class);
+            ListEndpoints endPoints = new ListEndpoints(schemaUriBasePath, schemaVersions.getDefaultVersion());
 
-        LOGGER.info(endPoints.toString("relationship-list"));
+            LOGGER.info(endPoints.toString("relationship-list"));
+        } catch (BeansException e) {
+            LOGGER.warn("Unable to initialize AnnotationConfigApplicationContext ", LogFormatTools.getStackTop(e));
+        }
     }
 
     /**
index 1d66a8a..14057e0 100644 (file)
@@ -75,82 +75,83 @@ public class CreateWidgetModels {
             System.exit(0);
         }
 
-        AnnotationConfigApplicationContext ctx =
-                new AnnotationConfigApplicationContext("org.onap.aai.config", "org.onap.aai.setup");
+        try (AnnotationConfigApplicationContext ctx =
+                new AnnotationConfigApplicationContext("org.onap.aai.config", "org.onap.aai.setup")) {
+            LoaderFactory loaderFactory = ctx.getBean(LoaderFactory.class);
+            Loader loader = loaderFactory.createLoaderForVersion(ModelType.MOXY, new SchemaVersion(_apiVersion));
 
-        LoaderFactory loaderFactory = ctx.getBean(LoaderFactory.class);
-        Loader loader = loaderFactory.createLoaderForVersion(ModelType.MOXY, new SchemaVersion(_apiVersion));
+            // iterate the collection of resources
 
-        // iterate the collection of resources
+            ArrayList<String> processedWidgets = new ArrayList<String>();
+            for (Entry<String, Introspector> aaiResEnt : loader.getAllObjects().entrySet()) {
+                Introspector meObject = loader.introspectorFromName("model");
+                // no need for a ModelVers DynamicEntity
 
-        ArrayList<String> processedWidgets = new ArrayList<String>();
-        for (Entry<String, Introspector> aaiResEnt : loader.getAllObjects().entrySet()) {
-            Introspector meObject = loader.introspectorFromName("model");
-            // no need for a ModelVers DynamicEntity
+                Introspector aaiRes = aaiResEnt.getValue();
 
-            Introspector aaiRes = aaiResEnt.getValue();
+                if (!(aaiRes.isContainer() || aaiRes.getName().equals("aai-internal"))) {
+                    String resource = aaiRes.getName();
 
-            if (!(aaiRes.isContainer() || aaiRes.getName().equals("aai-internal"))) {
-                String resource = aaiRes.getName();
-
-                if (processedWidgets.contains(resource)) {
-                    continue;
-                }
-
-                Set<String> introspectorProperties = aaiRes.getProperties();
-
-                if (!(introspectorProperties.contains("model-version-id")
-                        && introspectorProperties.contains("model-invariant-id"))) {
-                    System.out.println(aaiRes.getDbName() + " does not contain model properties so skipping");
-                }
-                processedWidgets.add(resource);
-
-                String widgetName = resource;
-                String filePathString = widgetJsonDir + "/" + widgetName + "-" + modelVersion + ".json";
-                File f = new File(filePathString);
-
-                String filePathString2 =
-                        widgetJsonDir + "/../widget-model-json-old/" + widgetName + "-" + modelVersion + ".json";
-                File f2 = new File(filePathString2);
+                    if (processedWidgets.contains(resource)) {
+                        continue;
+                    }
 
-                if (!f.exists() && !f.isDirectory()) {
+                    Set<String> introspectorProperties = aaiRes.getProperties();
 
-                    if (f2.exists()) {
-                        System.out.println("Using old file for " + resource + ".");
+                    if (!(introspectorProperties.contains("model-version-id")
+                            && introspectorProperties.contains("model-invariant-id"))) {
+                        System.out.println(aaiRes.getDbName() + " does not contain model properties so skipping");
+                    }
+                    processedWidgets.add(resource);
+
+                    String widgetName = resource;
+                    String filePathString = widgetJsonDir + "/" + widgetName + "-" + modelVersion + ".json";
+                    File f = new File(filePathString);
+
+                    String filePathString2 =
+                            widgetJsonDir + "/../widget-model-json-old/" + widgetName + "-" + modelVersion + ".json";
+                    File f2 = new File(filePathString2);
+
+                    if (!f.exists() && !f.isDirectory()) {
+
+                        if (f2.exists()) {
+                            System.out.println("Using old file for " + resource + ".");
+
+                            meObject = loader.unmarshal("model", new StreamSource(f2).getReader().toString());
+                            // override, some of them are wrong
+                            meObject.setValue("model-version", modelVersion);
+                        } else {
+                            System.out.println("Making new file for " + resource + ".");
+                            meObject.setValue("model-invariant-id", UUID.randomUUID().toString());
+                            meObject.setValue("model-type", "widget");
+                            Introspector mevObject = loader.introspectorFromName("model-ver");
+                            Introspector mevsObject = loader.introspectorFromName("model-vers");
+                            mevObject.setValue("model-version-id", UUID.randomUUID().toString());
+                            mevObject.setValue("model-version", modelVersion);
+                            mevObject.setValue("model-Name", widgetName);
+                            // make a list of dynamic Entities
+                            List<Object> mevsList = new ArrayList<>();
+                            // add this one, it will be the only one in the list in this case
+                            mevsList.add(mevObject.getUnderlyingObject());
+                            mevsObject.setValue("model-ver", mevsList);
+                            // Have to figure out how to add my mev object to the mevsObject,
+                            // the modelVers is a list of dynamic entities so we can just attach the array here
+                            meObject.setValue("model-vers", mevsObject.getUnderlyingObject());
+                        }
+
+                        // put it out as JSON
+
+                        PrintWriter out = new PrintWriter(f);
+                        out.println(meObject.marshal(true));
+                        out.close();
 
-                        meObject = loader.unmarshal("model", new StreamSource(f2).getReader().toString());
-                        // override, some of them are wrong
-                        meObject.setValue("model-version", modelVersion);
                     } else {
-                        System.out.println("Making new file for " + resource + ".");
-                        meObject.setValue("model-invariant-id", UUID.randomUUID().toString());
-                        meObject.setValue("model-type", "widget");
-                        Introspector mevObject = loader.introspectorFromName("model-ver");
-                        Introspector mevsObject = loader.introspectorFromName("model-vers");
-                        mevObject.setValue("model-version-id", UUID.randomUUID().toString());
-                        mevObject.setValue("model-version", modelVersion);
-                        mevObject.setValue("model-Name", widgetName);
-                        // make a list of dynamic Entities
-                        List<Object> mevsList = new ArrayList<>();
-                        // add this one, it will be the only one in the list in this case
-                        mevsList.add(mevObject.getUnderlyingObject());
-                        mevsObject.setValue("model-ver", mevsList);
-                        // Have to figure out how to add my mev object to the mevsObject,
-                        // the modelVers is a list of dynamic entities so we can just attach the array here
-                        meObject.setValue("model-vers", mevsObject.getUnderlyingObject());
+                        System.out.println("File already exists for " + resource + ".  Skipping.");
                     }
-
-                    // put it out as JSON
-
-                    PrintWriter out = new PrintWriter(f);
-                    out.println(meObject.marshal(true));
-                    out.close();
-
-                } else {
-                    System.out.println("File already exists for " + resource + ".  Skipping.");
                 }
             }
         }
+
         System.exit(0);
     }
 }
index fb7ba40..78f5f08 100644 (file)
@@ -69,8 +69,7 @@ public class IndexStressTest extends AAISetup {
             if (i % 1000 == 0) {
                 LOGGER.debug("Committing up to index {}", i);
                 tx.commit();
-                tx = AAIGraph.getInstance().getGraph().newTransaction();
-                g = tx.traversal();
+                g = AAIGraph.getInstance().getGraph().newTransaction().traversal();
             }
         }