You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Markus Wiederkehr (JIRA)" <se...@james.apache.org> on 2008/12/01 18:59:44 UTC

[jira] Created: (MIME4J-89) Improve thread synchronization in MultiReferenceStorage

Improve thread synchronization in MultiReferenceStorage
-------------------------------------------------------

                 Key: MIME4J-89
                 URL: https://issues.apache.org/jira/browse/MIME4J-89
             Project: JAMES Mime4j
          Issue Type: Improvement
    Affects Versions: 0.6
            Reporter: Markus Wiederkehr
             Fix For: 0.6


MultiReferenceStorage uses method based synchronization to protect the reference counting variable.

There are two problems with that:
1. storage is an interface and so storage.delete() represents a leak of the thread of execution.
2. storage.delete() may be a slow operation.

-- 
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[jira] Updated: (MIME4J-89) Improve thread synchronization in MultiReferenceStorage

Posted by "Markus Wiederkehr (JIRA)" <se...@james.apache.org>.
     [ https://issues.apache.org/jira/browse/MIME4J-89?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Markus Wiederkehr updated MIME4J-89:
------------------------------------

    Attachment: mime4j-storage-lock.patch

This patch should resolve both problems.

In addition it adds an IllegalStateException to delete in case the MultiReferenceStorage has already been deleted. This can only happen if a client invokes delete more than once which is prohibited by the contract.

> Improve thread synchronization in MultiReferenceStorage
> -------------------------------------------------------
>
>                 Key: MIME4J-89
>                 URL: https://issues.apache.org/jira/browse/MIME4J-89
>             Project: JAMES Mime4j
>          Issue Type: Improvement
>    Affects Versions: 0.6
>            Reporter: Markus Wiederkehr
>             Fix For: 0.6
>
>         Attachments: mime4j-storage-lock.patch
>
>
> MultiReferenceStorage uses method based synchronization to protect the reference counting variable.
> There are two problems with that:
> 1. storage is an interface and so storage.delete() represents a leak of the thread of execution.
> 2. storage.delete() may be a slow operation.

-- 
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[jira] Assigned: (MIME4J-89) Improve thread synchronization in MultiReferenceStorage

Posted by "Robert Burrell Donkin (JIRA)" <se...@james.apache.org>.
     [ https://issues.apache.org/jira/browse/MIME4J-89?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Burrell Donkin reassigned MIME4J-89:
-------------------------------------------

    Assignee: Robert Burrell Donkin

> Improve thread synchronization in MultiReferenceStorage
> -------------------------------------------------------
>
>                 Key: MIME4J-89
>                 URL: https://issues.apache.org/jira/browse/MIME4J-89
>             Project: JAMES Mime4j
>          Issue Type: Improvement
>    Affects Versions: 0.6
>            Reporter: Markus Wiederkehr
>            Assignee: Robert Burrell Donkin
>             Fix For: 0.6
>
>         Attachments: mime4j-storage-lock.patch
>
>
> MultiReferenceStorage uses method based synchronization to protect the reference counting variable.
> There are two problems with that:
> 1. storage is an interface and so storage.delete() represents a leak of the thread of execution.
> 2. storage.delete() may be a slow operation.

-- 
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[jira] Closed: (MIME4J-89) Improve thread synchronization in MultiReferenceStorage

Posted by "Robert Burrell Donkin (JIRA)" <se...@james.apache.org>.
     [ https://issues.apache.org/jira/browse/MIME4J-89?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Burrell Donkin closed MIME4J-89.
---------------------------------------

    Resolution: Fixed

Committed. Many thanks.

> Improve thread synchronization in MultiReferenceStorage
> -------------------------------------------------------
>
>                 Key: MIME4J-89
>                 URL: https://issues.apache.org/jira/browse/MIME4J-89
>             Project: JAMES Mime4j
>          Issue Type: Improvement
>    Affects Versions: 0.6
>            Reporter: Markus Wiederkehr
>            Assignee: Robert Burrell Donkin
>             Fix For: 0.6
>
>         Attachments: mime4j-storage-lock.patch
>
>
> MultiReferenceStorage uses method based synchronization to protect the reference counting variable.
> There are two problems with that:
> 1. storage is an interface and so storage.delete() represents a leak of the thread of execution.
> 2. storage.delete() may be a slow operation.

-- 
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org