How to use absolut container list ?

"Guillaume Sensenbrenner" <[email protected]>
Newsgroups gmane.comp.cms.jahia.template
Message-ID <[email protected]>
Hello,
 

     I define an absolute container list on a page called "Advanced Search".


Then, in other pages like "User", I get my absolute container list in order
to add containers in it, to update them and so on.

 

Here is the code in order to get my absolut container list :

 

JahiaContainerList my_container_list =
jData.containers().getAbsoluteContainerList( "my_container_list",
advanced_search_page_id);

 

I get big troubles when I reboot jahia. When I try to update elements from
my absolute container list in "User", I get an error message.

If I go first on the "Advanced Search" page, it work.

(see the error at the end of this post)

 
The following line causes the error:
 
test_container.getField("astron_photo_gallery_creator").setValue(user.getUse
rname());

 

So how can I solve this problem ?

 

Thanks for all the suggestions that you could give me,

 
Regards
 
 
 
Here is the code of the "User Page":
 
<%@ include file="astron_photo_gallery_page_id.jsp"%>
<%@ include file="astron_photo_gallery_entities_declaration.jsp"%>
<%@ include file="astron_photo_gallery_entities_tools.jsp"%>
<%@ include file="astron_photo_gallery_declaration.jsp"%>
 
 
<%
/////////Initialisation of filters
ContainerFilterBean astron_photo_gallery_container_filter_bean_first =new
ContainerFilterBean("astron_photo_gallery_builder_name",
jParams.getEntryLoadRequest()); // with the field name
astron_photo_gallery_container_filter_bean_first.addClause(ContainerFilterBe
an.COMP_EQUAL,"");
Vector astron_photo_gallery_container_filter_bean_vector_first = new
Vector();
astron_photo_gallery_container_filter_bean_vector_first.add(astron_photo_gal
lery_container_filter_bean_first);
ContainerFilters astron_photo_gallery_container_filter_beans_first = new
ContainerFilters(astron_photo_gallery_container_list_id,astron_photo_gallery
_container_filter_bean_vector_first);
request.setAttribute("astron_photo_gallery_container_list_filter_handler",as
tron_photo_gallery_container_filter_beans_first);
JahiaContainerList astron_photo_gallery_container_list
=jData.containers().getAbsoluteContainerList("astron_photo_gallery_container
_list",astron_photo_gallery_page_id_value
);
astron_photo_gallery_container_list.setIsContainersLoaded(false);
%>
 
<%
if(request.getParameter("astron_photo_gallery_add")!=null)
{
 // VJ
 
ServicesRegistry.getInstance().getJahiaContainersService().loadContainer
List(astron_photo_gallery_container_list.getID(),LoadFlags.ALL);
 
 FieldsChangeEventListener listener = new FieldsChangeEventListener();
 JahiaContainer test_container = new
JahiaContainer(0,jParams.getJahiaID(),astron_photo_gallery_page_id_value
,astron_photo_gallery_container_list.getID(),0,astron_photo_gallery_cont
ainer_list.getAclID(),astron_photo_gallery_container_list.getctndefid(),
0,ContentObjectEntryState.WORKFLOW_STATE_START_STAGING);
 
ServicesRegistry.getInstance().getJahiaContainersService().saveContainer
Info(test_container,astron_photo_gallery_container_list.getID(),
astron_photo_gallery_container_list.getAclID(),jParams);
 test_container.setLanguageCode(jParams.getLocale().toString());
 test_container.fieldsStructureCheck(jParams);
 
 
System.out.println("BField loaded ou
pas:"+test_container.isFieldsLoaded() + "      container list loaded ou
pas:"+test_container.isContainerListsLoaded() + "     Nb fields" +
test_container.getNbFields());
 
 Enumeration e = test_container.getFields(); 
 
 while (e.hasMoreElements()){
  JahiaField jf = (JahiaField)e.nextElement();
  System.out.println("Field name:"+jf.getID());
 }
 
 
test_container.getField("astron_photo_gallery_creator").setValue(user.ge
tUsername());
 
listener.notifyChange(test_container.getField("astron_photo_gallery_crea
tor").getID());

 

Here is the error message :

 

I get the following error when I try to update an element of the absolute
container list.

 

<!--
Error :

Array index out of range: 0


Exception StackTrace: Cause level : 0 (level 0 is the most precise
exception)
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
 at java.util.Vector.get(Vector.java:713)
 at
org.jahia.engines.updatecontainer.UpdateContainer_Engine.processCurrentScree
n(UpdateContainer_Engine.java:341)
 at
org.jahia.engines.updatecontainer.UpdateContainer_Engine.handleActions(Updat
eContainer_Engine.java:188)
 at
org.jahia.operations.OperationManager.handleOperations(OperationManager.java
:279)
 at org.jahia.bin.JahiaAction.execute(JahiaAction.java:50)
 at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.java:484)
 at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
 at org.jahia.bin.Jahia.process(Jahia.java:1467)
 at org.jahia.bin.Jahia.service(Jahia.java:792)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
 at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
 at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
 at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
 at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:392)
 at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
 at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:619)
 at java.lang.Thread.run(Thread.java:536)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.