You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2015/06/18 12:50:00 UTC

[jira] [Created] (DIRSTUDIO-1059) The schema is written twice ondisk when a connection is created

Emmanuel Lecharny created DIRSTUDIO-1059:
--------------------------------------------

             Summary: The schema is written twice ondisk when a connection is created
                 Key: DIRSTUDIO-1059
                 URL: https://issues.apache.org/jira/browse/DIRSTUDIO-1059
             Project: Directory Studio
          Issue Type: Bug
          Components: studio-connection
    Affects Versions: 2.0.0-M9 (2.0.0.v20150606-M9)
            Reporter: Emmanuel Lecharny
            Priority: Minor
             Fix For: 2.0.0-M10


When we create a new connection, we will fetch the schema from this server (if it's available) or use a default schema. This schema will be associated with this connection, and stored on disk by a call to this method : {{BrowserConnectionManager.saveSchema( IBrowserConnection browserConnection )}}

This is done twice, becuase this method is called when two events are fired :

{code}
    public void browserConnectionUpdated( BrowserConnectionUpdateEvent browserConnectionUpdateEvent )
    {
        if ( browserConnectionUpdateEvent.getDetail() == BrowserConnectionUpdateEvent.Detail.BROWSER_CONNECTION_OPENED
            || browserConnectionUpdateEvent.getDetail() == BrowserConnectionUpdateEvent.Detail.SCHEMA_UPDATED )
        {
            saveSchema( browserConnectionUpdateEvent.getBrowserConnection() );
        }
    }
{code}

and those events are fired in the {{BrowseConnectionListener.connectionOpened}} method :

{code}
    public void connectionOpened( Connection connection, StudioProgressMonitor monitor )
    {
        IBrowserConnection browserConnection = BrowserCorePlugin.getDefault().getConnectionManager()
            .getBrowserConnection( connection );
        if ( browserConnection != null )
        {
            try
            {
                ...
            }
            finally
            {
                ....
                BrowserConnectionUpdateEvent browserConnectionUpdateEvent = new BrowserConnectionUpdateEvent(
                    browserConnection, BrowserConnectionUpdateEvent.Detail.BROWSER_CONNECTION_OPENED );
                ...
                BrowserConnectionUpdateEvent schemaUpdateEvent = new BrowserConnectionUpdateEvent( browserConnection,
                    BrowserConnectionUpdateEvent.Detail.SCHEMA_UPDATED );
                ....
            }
        }
    }
{code}

I suspect we can get rid of the second event, except that I think it was added to do more than just saving the schema. 

Ideally, we should *not* save the schema when the {{BROWSER_CONNECTION_OPENED}} event is fired.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)