You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Ron Gavlin (JIRA)" <tu...@ws.apache.org> on 2007/10/26 22:23:50 UTC

[jira] Created: (TUSCANY-1872) DAS CommandImpl(String) leaks EMF/XSD XSDImportImpl objects for sdoModel.xsd

DAS CommandImpl(String) leaks EMF/XSD XSDImportImpl objects for sdoModel.xsd
----------------------------------------------------------------------------

                 Key: TUSCANY-1872
                 URL: https://issues.apache.org/jira/browse/TUSCANY-1872
             Project: Tuscany
          Issue Type: Bug
          Components: Java DAS RDB
    Affects Versions: Java-DAS-Next
            Reporter: Ron Gavlin
            Priority: Critical
             Fix For: Java-DAS-Next


Whenever a DAS rdb.impl.CommandImpl is constructed, it attempts to re-load the schema definition for the "commonj.sdo/java" namespace which imports the "commonj.sdo" namespace. For each XSDHelper.define() invocation, an new XSDImportImpl is allocated which contains its own XSDSchemaImpl object for the "commonj.sdo" namespace which is 25K in size. Many constructions of the DAS rdb.impl.CommandImpl will eventually cause an OutOfMemoryException.

Tuscany SDO already pre-defines the "commonj.sdo/java" namespace as part of its initialization. According to JIRA issue TUSCANY-20, this used to not be the case. Now that TUSCANY-20 is fixed, the DAS should no longer be attempting to define the "commonj.sdo/java" types.

The patch below removes these lines of code which are causing the memory leak. Please apply ASAP.

Thanks,

- Ron

Index: C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
===================================================================
--- C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(revision 584191)
+++ C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(working copy)
@@ -39,20 +39,6 @@
     
     public CommandImpl(String sqlString) {
         statement = new Statement(sqlString);
-
-        try {
-            URL url = getClass().getResource("/xml/sdoJava.xsd");
-            if (url == null) {
-                throw new RuntimeException("Could not find resource: xml/sdoJava.xsd");
-            }
-
-            InputStream inputStream = url.openStream();
-            XSDHelper.INSTANCE.define(inputStream, url.toString());
-            inputStream.close();
-        } catch (IOException ex) {
-            throw new RuntimeException(ex);
-        }
-
     }
 
     public CommandImpl(org.apache.tuscany.das.rdb.config.Command command) {


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


[jira] Resolved: (TUSCANY-1872) DAS CommandImpl(String) leaks EMF/XSD XSDImportImpl objects for sdoModel.xsd

Posted by "Luciano Resende (JIRA)" <tu...@ws.apache.org>.
     [ https://issues.apache.org/jira/browse/TUSCANY-1872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luciano Resende resolved TUSCANY-1872.
--------------------------------------

    Resolution: Fixed

Patch applied.

> DAS CommandImpl(String) leaks EMF/XSD XSDImportImpl objects for sdoModel.xsd
> ----------------------------------------------------------------------------
>
>                 Key: TUSCANY-1872
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1872
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java DAS RDB
>    Affects Versions: Java-DAS-Next
>            Reporter: Ron Gavlin
>            Assignee: Luciano Resende
>            Priority: Critical
>             Fix For: Java-DAS-Next
>
>
> Whenever a DAS rdb.impl.CommandImpl is constructed, it attempts to re-load the schema definition for the "commonj.sdo/java" namespace which imports the "commonj.sdo" namespace. For each XSDHelper.define() invocation, an new XSDImportImpl is allocated which contains its own XSDSchemaImpl object for the "commonj.sdo" namespace which is 25K in size. Many constructions of the DAS rdb.impl.CommandImpl will eventually cause an OutOfMemoryException.
> Tuscany SDO already pre-defines the "commonj.sdo/java" namespace as part of its initialization. According to JIRA issue TUSCANY-20, this used to not be the case. Now that TUSCANY-20 is fixed, the DAS should no longer be attempting to define the "commonj.sdo/java" types.
> The patch below removes these lines of code which are causing the memory leak. Please apply ASAP.
> Thanks,
> - Ron
> Index: C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
> ===================================================================
> --- C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(revision 584191)
> +++ C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(working copy)
> @@ -39,20 +39,6 @@
>      
>      public CommandImpl(String sqlString) {
>          statement = new Statement(sqlString);
> -
> -        try {
> -            URL url = getClass().getResource("/xml/sdoJava.xsd");
> -            if (url == null) {
> -                throw new RuntimeException("Could not find resource: xml/sdoJava.xsd");
> -            }
> -
> -            InputStream inputStream = url.openStream();
> -            XSDHelper.INSTANCE.define(inputStream, url.toString());
> -            inputStream.close();
> -        } catch (IOException ex) {
> -            throw new RuntimeException(ex);
> -        }
> -
>      }
>  
>      public CommandImpl(org.apache.tuscany.das.rdb.config.Command command) {

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


[jira] Commented: (TUSCANY-1872) DAS CommandImpl(String) leaks EMF/XSD XSDImportImpl objects for sdoModel.xsd

Posted by "Ron Gavlin (JIRA)" <tu...@ws.apache.org>.
    [ https://issues.apache.org/jira/browse/TUSCANY-1872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538094 ] 

Ron Gavlin commented on TUSCANY-1872:
-------------------------------------

Here is the patch with imports organized.

Thanks,

- Ron


Index: C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
===================================================================
--- C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(revision 584191)
+++ C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(working copy)
@@ -18,16 +18,12 @@
  */
 package org.apache.tuscany.das.rdb.impl;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
 import java.util.Iterator;
 import java.util.List;
 
 import org.apache.tuscany.das.rdb.Command;
 
 import commonj.sdo.DataObject;
-import commonj.sdo.helper.XSDHelper;
 
 public abstract class CommandImpl extends BaseCommandImpl implements Command {
     
@@ -39,20 +35,6 @@
     
     public CommandImpl(String sqlString) {
         statement = new Statement(sqlString);
-
-        try {
-            URL url = getClass().getResource("/xml/sdoJava.xsd");
-            if (url == null) {
-                throw new RuntimeException("Could not find resource: xml/sdoJava.xsd");
-            }
-
-            InputStream inputStream = url.openStream();
-            XSDHelper.INSTANCE.define(inputStream, url.toString());
-            inputStream.close();
-        } catch (IOException ex) {
-            throw new RuntimeException(ex);
-        }
-
     }
 
     public CommandImpl(org.apache.tuscany.das.rdb.config.Command command) {


> DAS CommandImpl(String) leaks EMF/XSD XSDImportImpl objects for sdoModel.xsd
> ----------------------------------------------------------------------------
>
>                 Key: TUSCANY-1872
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1872
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java DAS RDB
>    Affects Versions: Java-DAS-Next
>            Reporter: Ron Gavlin
>            Priority: Critical
>             Fix For: Java-DAS-Next
>
>
> Whenever a DAS rdb.impl.CommandImpl is constructed, it attempts to re-load the schema definition for the "commonj.sdo/java" namespace which imports the "commonj.sdo" namespace. For each XSDHelper.define() invocation, an new XSDImportImpl is allocated which contains its own XSDSchemaImpl object for the "commonj.sdo" namespace which is 25K in size. Many constructions of the DAS rdb.impl.CommandImpl will eventually cause an OutOfMemoryException.
> Tuscany SDO already pre-defines the "commonj.sdo/java" namespace as part of its initialization. According to JIRA issue TUSCANY-20, this used to not be the case. Now that TUSCANY-20 is fixed, the DAS should no longer be attempting to define the "commonj.sdo/java" types.
> The patch below removes these lines of code which are causing the memory leak. Please apply ASAP.
> Thanks,
> - Ron
> Index: C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
> ===================================================================
> --- C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(revision 584191)
> +++ C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(working copy)
> @@ -39,20 +39,6 @@
>      
>      public CommandImpl(String sqlString) {
>          statement = new Statement(sqlString);
> -
> -        try {
> -            URL url = getClass().getResource("/xml/sdoJava.xsd");
> -            if (url == null) {
> -                throw new RuntimeException("Could not find resource: xml/sdoJava.xsd");
> -            }
> -
> -            InputStream inputStream = url.openStream();
> -            XSDHelper.INSTANCE.define(inputStream, url.toString());
> -            inputStream.close();
> -        } catch (IOException ex) {
> -            throw new RuntimeException(ex);
> -        }
> -
>      }
>  
>      public CommandImpl(org.apache.tuscany.das.rdb.config.Command command) {

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


[jira] Assigned: (TUSCANY-1872) DAS CommandImpl(String) leaks EMF/XSD XSDImportImpl objects for sdoModel.xsd

Posted by "Luciano Resende (JIRA)" <tu...@ws.apache.org>.
     [ https://issues.apache.org/jira/browse/TUSCANY-1872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luciano Resende reassigned TUSCANY-1872:
----------------------------------------

    Assignee: Luciano Resende

> DAS CommandImpl(String) leaks EMF/XSD XSDImportImpl objects for sdoModel.xsd
> ----------------------------------------------------------------------------
>
>                 Key: TUSCANY-1872
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1872
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java DAS RDB
>    Affects Versions: Java-DAS-Next
>            Reporter: Ron Gavlin
>            Assignee: Luciano Resende
>            Priority: Critical
>             Fix For: Java-DAS-Next
>
>
> Whenever a DAS rdb.impl.CommandImpl is constructed, it attempts to re-load the schema definition for the "commonj.sdo/java" namespace which imports the "commonj.sdo" namespace. For each XSDHelper.define() invocation, an new XSDImportImpl is allocated which contains its own XSDSchemaImpl object for the "commonj.sdo" namespace which is 25K in size. Many constructions of the DAS rdb.impl.CommandImpl will eventually cause an OutOfMemoryException.
> Tuscany SDO already pre-defines the "commonj.sdo/java" namespace as part of its initialization. According to JIRA issue TUSCANY-20, this used to not be the case. Now that TUSCANY-20 is fixed, the DAS should no longer be attempting to define the "commonj.sdo/java" types.
> The patch below removes these lines of code which are causing the memory leak. Please apply ASAP.
> Thanks,
> - Ron
> Index: C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
> ===================================================================
> --- C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(revision 584191)
> +++ C:/development/working/1/tuscany-das/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java	(working copy)
> @@ -39,20 +39,6 @@
>      
>      public CommandImpl(String sqlString) {
>          statement = new Statement(sqlString);
> -
> -        try {
> -            URL url = getClass().getResource("/xml/sdoJava.xsd");
> -            if (url == null) {
> -                throw new RuntimeException("Could not find resource: xml/sdoJava.xsd");
> -            }
> -
> -            InputStream inputStream = url.openStream();
> -            XSDHelper.INSTANCE.define(inputStream, url.toString());
> -            inputStream.close();
> -        } catch (IOException ex) {
> -            throw new RuntimeException(ex);
> -        }
> -
>      }
>  
>      public CommandImpl(org.apache.tuscany.das.rdb.config.Command command) {

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org