final MarkupSourceStringMarkupImpl source = (MarkupSourceStringMarkupImpl)in.readObject(); // Puede ser null (lo normal)
int size = in.readInt();
DeserialPendingTask task = null;
if (size > 0)
{
final int posDocTemplateVersion = in.readInt();
final ArrayList<String[]> templateIds = new ArrayList<String[]>(size);
for(int i = 0; i < size; i++)
{
String[] templateId = MarkupTemplateVersionImpl.readObject(in);
templateIds.add(templateId);
}
task = new DeserialPendingTask()
{
public void process(ItsNatServletImpl itsNatServlet,ItsNatServletRequest request, ItsNatServletResponse response)
{
ItsNatDocumentImpl.this.usedTemplatesWithCachedNodes = createUsedTemplateVersionsWithCachedNodesMap(itsNatServlet);
for(int i = 0; i < templateIds.size(); i++)
{
// Recargamos los templates, si no han cambiado todo ser� igual
// pero si ha cambiado alguno no se si funcionar� bien pues
// en teor�a los templates del documento no deben cambiar,
// la alternativa de serializar los MarkupTemplateVersionImpl
// podr�a ser peor
String[] templateId = templateIds.get(i);
MarkupTemplateVersionImpl templateVersion;
if (i == posDocTemplateVersion)
{
templateVersion = MarkupTemplateVersionImpl.getNewestMarkupTemplateVersion(itsNatServlet,templateId,source,request,response);
ItsNatDocumentImpl.this.docTemplateVersion = (ItsNatDocumentTemplateVersionImpl)templateVersion;
}
else
templateVersion = MarkupTemplateVersionImpl.getNewestMarkupTemplateVersion(itsNatServlet,templateId,null,request,response);
usedTemplatesWithCachedNodes.put(templateVersion);
}
}
};
}
else
{
final String[] templateId = MarkupTemplateVersionImpl.readObject(in);
task = new DeserialPendingTask()
{
public void process(ItsNatServletImpl itsNatServlet,ItsNatServletRequest request, ItsNatServletResponse response)
{
MarkupTemplateVersionImpl templateVersion = MarkupTemplateVersionImpl.getNewestMarkupTemplateVersion(itsNatServlet,templateId,source,request,response);
ItsNatDocumentImpl.this.docTemplateVersion = (ItsNatDocumentTemplateVersionImpl)templateVersion;