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)