You may try to query the view V$ACCESS and see if someone is using the object where you get the lock.
Then you may try to wait them to end their work or KILL them if you own the rights.
another option you can test is to
alter system flush shared_pool
this command clears all the shared pool, so its content needs to be re-created (a performance issue.)
let me know if this works,
astropp