You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Albert Lee (JIRA)" <ji...@apache.org> on 2007/09/09 16:29:29 UTC

[jira] Created: (OPENJPA-362) Object Locking API problems

Object Locking API problems
---------------------------

                 Key: OPENJPA-362
                 URL: https://issues.apache.org/jira/browse/OPENJPA-362
             Project: OpenJPA
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.0.0
         Environment: All platforms
            Reporter: Albert Lee


The manual describes the following Object Locking API

public void lock(Object pc);
public void lock(Object pc, LockModeType mode, long timeout);
public void lockAll(Object... pcs);
public void lockAll(Object... pcs, LockModeType mode, long timeout);
public void lockAll(Collection pcs);
public void lockAll(Collection pcs, LockModeType mode, long timeout);

Problems observed:

1)  In EntityManagerImpl,

  Missing method implementation
        public void lockAll(Object... pcs, LockModeType mode, long timeout);
  But found this instead.
        public void lockAll(Object[] entities, LockModeType mode, int timeout) {

2) For those API methods with timeout argument, what is the behavior when timeout occurs? Will an exception be thrown? Since these method has void return, no return value can be used to indicate the timeout condition.

3) For those API methods with timeout argument, the timeout value does not seem to be used at all, hence the timeout feature is a NOP. 
      i.e. EntityManagerImpl.lock*() -> BrokerImpl.lock() --> VersionLockManager | NonLockManager

    a) Is the API just an architected feature?
    b)  Is the timeout feature not implemented and require user to implements its lock manager that support the timeout feature?

Albert Lee.

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


[jira] Resolved: (OPENJPA-362) Object Locking API problems

Posted by "Albert Lee (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Albert Lee resolved OPENJPA-362.
--------------------------------

    Resolution: Invalid

Patrick, 

Thanks for the clarifications.

I was looking for lockInternal() definitions but missed the one in PessimisticLockManager using Eclipse.

> Object Locking API problems
> ---------------------------
>
>                 Key: OPENJPA-362
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-362
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.0.0
>         Environment: All platforms
>            Reporter: Albert Lee
>
> The manual describes the following Object Locking API
> public void lock(Object pc);
> public void lock(Object pc, LockModeType mode, long timeout);
> public void lockAll(Object... pcs);
> public void lockAll(Object... pcs, LockModeType mode, long timeout);
> public void lockAll(Collection pcs);
> public void lockAll(Collection pcs, LockModeType mode, long timeout);
> Problems observed:
> 1)  In EntityManagerImpl,
>   Missing method implementation
>         public void lockAll(Object... pcs, LockModeType mode, long timeout);
>   But found this instead.
>         public void lockAll(Object[] entities, LockModeType mode, int timeout) {
> 2) For those API methods with timeout argument, what is the behavior when timeout occurs? Will an exception be thrown? Since these method has void return, no return value can be used to indicate the timeout condition.
> 3) For those API methods with timeout argument, the timeout value does not seem to be used at all, hence the timeout feature is a NOP. 
>       i.e. EntityManagerImpl.lock*() -> BrokerImpl.lock() --> VersionLockManager | NonLockManager
>     a) Is the API just an architected feature?
>     b)  Is the timeout feature not implemented and require user to implements its lock manager that support the timeout feature?
> Albert Lee.

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


[jira] Closed: (OPENJPA-362) Object Locking API problems

Posted by "Albert Lee (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Albert Lee closed OPENJPA-362.
------------------------------


> Object Locking API problems
> ---------------------------
>
>                 Key: OPENJPA-362
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-362
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.0.0
>         Environment: All platforms
>            Reporter: Albert Lee
>
> The manual describes the following Object Locking API
> public void lock(Object pc);
> public void lock(Object pc, LockModeType mode, long timeout);
> public void lockAll(Object... pcs);
> public void lockAll(Object... pcs, LockModeType mode, long timeout);
> public void lockAll(Collection pcs);
> public void lockAll(Collection pcs, LockModeType mode, long timeout);
> Problems observed:
> 1)  In EntityManagerImpl,
>   Missing method implementation
>         public void lockAll(Object... pcs, LockModeType mode, long timeout);
>   But found this instead.
>         public void lockAll(Object[] entities, LockModeType mode, int timeout) {
> 2) For those API methods with timeout argument, what is the behavior when timeout occurs? Will an exception be thrown? Since these method has void return, no return value can be used to indicate the timeout condition.
> 3) For those API methods with timeout argument, the timeout value does not seem to be used at all, hence the timeout feature is a NOP. 
>       i.e. EntityManagerImpl.lock*() -> BrokerImpl.lock() --> VersionLockManager | NonLockManager
>     a) Is the API just an architected feature?
>     b)  Is the timeout feature not implemented and require user to implements its lock manager that support the timeout feature?
> Albert Lee.

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


[jira] Commented: (OPENJPA-362) Object Locking API problems

Posted by "Patrick Linskey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OPENJPA-362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12526259 ] 

Patrick Linskey commented on OPENJPA-362:
-----------------------------------------

> 1) In EntityManagerImpl,
> 
>  Missing method implementation
>        public void lockAll(Object... pcs, LockModeType mode, long timeout);
>  But found this instead.
>        public void lockAll(Object[] entities, LockModeType mode, int timeout) { 

That's a docs problem; it's only possible to do varargs at the end of the args list.

> 2) For those API methods with timeout argument, what is the behavior
> when timeout occurs? Will an exception be thrown? Since these method
> has void return, no return value can be used to indicate the timeout condition. 

A LockException will be thrown, IIRC.

> 3) For those API methods with timeout argument, the timeout value does not 
> seem to be used at all, hence the timeout feature is a NOP.
>      i.e. EntityManagerImpl.lock*() -> BrokerImpl.lock() --> VersionLockManager | NonLockManager
>
>    a) Is the API just an architected feature?
>    b) Is the timeout feature not implemented and require user to implements its
>         lock manager that support the timeout feature?

The information is provided to the LockManager; it's up to the LockManager to take advantage of it. So, for example, PessimisticLockManager uses this information (PessimisticLockManager.java:142).

> Object Locking API problems
> ---------------------------
>
>                 Key: OPENJPA-362
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-362
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.0.0
>         Environment: All platforms
>            Reporter: Albert Lee
>
> The manual describes the following Object Locking API
> public void lock(Object pc);
> public void lock(Object pc, LockModeType mode, long timeout);
> public void lockAll(Object... pcs);
> public void lockAll(Object... pcs, LockModeType mode, long timeout);
> public void lockAll(Collection pcs);
> public void lockAll(Collection pcs, LockModeType mode, long timeout);
> Problems observed:
> 1)  In EntityManagerImpl,
>   Missing method implementation
>         public void lockAll(Object... pcs, LockModeType mode, long timeout);
>   But found this instead.
>         public void lockAll(Object[] entities, LockModeType mode, int timeout) {
> 2) For those API methods with timeout argument, what is the behavior when timeout occurs? Will an exception be thrown? Since these method has void return, no return value can be used to indicate the timeout condition.
> 3) For those API methods with timeout argument, the timeout value does not seem to be used at all, hence the timeout feature is a NOP. 
>       i.e. EntityManagerImpl.lock*() -> BrokerImpl.lock() --> VersionLockManager | NonLockManager
>     a) Is the API just an architected feature?
>     b)  Is the timeout feature not implemented and require user to implements its lock manager that support the timeout feature?
> Albert Lee.

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