Hello,

 

There is a mistake in the code samples of the "Managers and Caching"
reference page. It is on section "Invalidating the Cache":

 

public void addedObject(Persistent om)
{
    if (om instanceof Foo)
    {
        getMethodResult().removeAll(om, "getFoos");
    }
    else if (om instanceof X)
    {
        getMethodResult().remove(om, GET_URLS);
        getMethodResult().removeAll(om, GET_COMMENTS);
    }
    ...
}
 
The problem is the first parameter at the getMethodResult().removeAll and
getMethodResult().remove method calls. First, they will not compile because
om is a Persistent, while a Serializable is expected. Secondly, om is an
instance of Foo (in the first case), but we want to invalidate the cache for
Bar, so the appropriate Bar instance should be passed instead.

The correct code should be something like this:

 

public void addedObject(Persistent om)
{
    if (om instanceof Foo)
    {
        getMethodResult().removeAll(((Foo) om).getBar(), "getFoos");
    }
    ...
}
 
Actually, the if block must be surrounded with try/catch because
Foo.getBar() throws a TorqueException.

 

 

Luciano Medina



------------------------------------------------------------------------------------------------------------------------------------
Nota Legal: Este correo electronico puede contener informacion estrictamente 
confidencial y es de uso exclusivo del destinatario, quedando prohibida a 
cualquier otra persona su revelacion, copia, distribucion, o el ejercicio de 
cualquier accion relativa a su contenido. Si ha recibido este correo 
electronico por error, por favor, conteste al remitente, y posteriormente 
proceda a borrarlo de su sistema. Gracias por su colaboracion.

Confidentiality notice: This e-mail message may contain confidential and/or 
legally privileged information and is solely for the attention and use of the 
intended recipient. Any disclosure, copying, distribution or the taking of any 
action with relation to  the contents of this e-mail by any other person is 
strictly prohibited. If you believe that this e-mail has been mistakenly sent  
to you, please reply to the sender from whom you received the message in error 
and then delete the original e-mail from your system. Thank you for your 
co-operation.
------------------------------------------------------------------------------------------------------------------------------------

Reply via email to