cancel
Showing results for 
Search instead for 
Did you mean: 

Adding Dublin Core aspect to Sites (CMIS)

akerenyi
Champ in-the-making
Champ in-the-making
Hi,

I would like to add the Dublin Core aspect to my Alfresco Sites.
As a template, I used one of Jeff Potts's gists (https://gist.github.com/jpotts/7242070).*
However whenever I add do this it messes up the site and Share too and they will not be accessible from Share.
The received error message is "Internal Server Error" (see attached screenshot);
Removing the aspect does not fix it, the site has to be deleted altogether.

Could anyone help fix this issue? I need my sites to have a couple of field which would be available in the Dublin Core aspect.

I'm using Alfresco 5.0c, OpenCMIS 0.12.0 and Java 1.7.

Please find my java code below:


public void addAspect() {
        Folder site = (Folder) this.cmisSession.getObjectByPath("/Sites/xy-site");
       
        List<Object> aspects = site.getProperty("cmis:secondaryObjectTypeIds").getValues();
      // Add Dublin Core aspect
      if (!aspects.contains("P:cm:dublincore")) {
         aspects.add("P:cm:dublincore");
         HashMap<String, Object> props = new HashMap<String, Object>();
         props.put("cmis:secondaryObjectTypeIds", aspects);
         site.updateProperties(props);
         System.out.println("Added aspect");
      } else {
         System.out.println("Doc already had aspect");
      }
      
        /*
        Map<String, Object> newProps = new HashMap<String, Object>();
       
        List<String> subList = new ArrayList<String>();
        subList.add("P:cm:dublincore");   // Replace Dublincore String with Object
        newProps.put("cmis:secondaryObjectTypeIds", subList); // multi-value property
       
        site.updateProperties(newProps);
        */
    }


Thank you very much in advance!

Adam

*corrected link
5 REPLIES 5

mrogers
Star Contributor
Star Contributor
Is there any error in your alfresco.log?

akerenyi
Champ in-the-making
Champ in-the-making
Hi,

Thanks for looking at my issue and sorry for the late reply.
So I've just redid the whole process (create site and add aspect).

Here is what I have in my alfresco.log


09:27:06,525 ERROR [freemarker.runtime] [http-apr-8080-exec-17] Error executing FreeMarker template
FreeMarker template error:
The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (FTL stack trace):
———-
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]
    @siteLib.siteJSONManagers site=site r…  [in template "org/alfresco/repository/person/person.sites.get.json.ftl" at line 5, column 17]
———-

Java stack trace (for programmers):
———-
freemarker.core.InvalidReferenceException: [… Exception message was already printed; see it above …]
   at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:98)
   at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:382)
   at freemarker.core.Expression.evalAndCoerceToString(Expression.java:115)
   at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.EscapeBlock.accept(EscapeBlock.java:85)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.Macro$Context.runMacro(Macro.java:209)
   at freemarker.core.Environment.visit(Environment.java:694)
   at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
   at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:193)
   at freemarker.core.Environment.visitIteratorBlock(Environment.java:509)
   at freemarker.core.IteratorBlock.accept(IteratorBlock.java:103)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.Environment.process(Environment.java:243)
   at org.alfresco.repo.template.FreeMarkerProcessor.process(FreeMarkerProcessor.java:217)
   at org.springframework.extensions.webscripts.AbstractWebScript.renderTemplate(AbstractWebScript.java:955)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.renderFormatTemplate(DeclarativeWebScript.java:267)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:147)
   at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:463)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:454)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:532)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:600)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:380)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:261)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
   at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
09:27:06,641 ERROR [org.springframework.extensions.webscripts.AbstractRuntime] [http-apr-8080-exec-17] Exception from executeScript - redirecting to status template error: 02040023 Wrapped Exception (with status template): 02040094 Error during processing of the template 'The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (print stack trace for 1 more):
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]'. Please contact your system administrator.
org.springframework.extensions.webscripts.WebScriptException: 02040023 Wrapped Exception (with status template): 02040094 Error during processing of the template 'The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (print stack trace for 1 more):
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]'. Please contact your system administrator.
   at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:1126)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:171)
   at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:463)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:454)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:532)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:600)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:380)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:261)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
   at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Caused by: org.alfresco.service.cmr.repository.TemplateException: 02040094 Error during processing of the template 'The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (print stack trace for 1 more):
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]'. Please contact your system administrator.
   at org.alfresco.repo.template.FreeMarkerProcessor.process(FreeMarkerProcessor.java:221)
   at org.springframework.extensions.webscripts.AbstractWebScript.renderTemplate(AbstractWebScript.java:955)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.renderFormatTemplate(DeclarativeWebScript.java:267)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:147)
   … 33 more
Caused by: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (print stack trace for 1 more):
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]
   at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:98)
   at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:382)
   at freemarker.core.Expression.evalAndCoerceToString(Expression.java:115)
   at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.EscapeBlock.accept(EscapeBlock.java:85)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.Macro$Context.runMacro(Macro.java:209)
   at freemarker.core.Environment.visit(Environment.java:694)
   at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
   at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:193)
   at freemarker.core.Environment.visitIteratorBlock(Environment.java:509)
   at freemarker.core.IteratorBlock.accept(IteratorBlock.java:103)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.Environment.process(Environment.java:243)
   at org.alfresco.repo.template.FreeMarkerProcessor.process(FreeMarkerProcessor.java:217)
   … 36 more
09:27:16,460 ERROR [freemarker.runtime] [http-apr-8080-exec-9] Error executing FreeMarker template
FreeMarker template error:
The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (FTL stack trace):
———-
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]
    @siteLib.siteJSONManagers site=site r…  [in template "org/alfresco/repository/person/person.sites.get.json.ftl" at line 5, column 17]
———-

Java stack trace (for programmers):
———-
freemarker.core.InvalidReferenceException: [… Exception message was already printed; see it above …]
   at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:98)
   at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:382)
   at freemarker.core.Expression.evalAndCoerceToString(Expression.java:115)
   at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.EscapeBlock.accept(EscapeBlock.java:85)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.Macro$Context.runMacro(Macro.java:209)
   at freemarker.core.Environment.visit(Environment.java:694)
   at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
   at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:193)
   at freemarker.core.Environment.visitIteratorBlock(Environment.java:509)
   at freemarker.core.IteratorBlock.accept(IteratorBlock.java:103)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.Environment.process(Environment.java:243)
   at org.alfresco.repo.template.FreeMarkerProcessor.process(FreeMarkerProcessor.java:217)
   at org.springframework.extensions.webscripts.AbstractWebScript.renderTemplate(AbstractWebScript.java:955)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.renderFormatTemplate(DeclarativeWebScript.java:267)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:147)
   at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:463)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:454)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:532)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:600)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:380)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:261)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
   at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
09:27:16,462 ERROR [org.springframework.extensions.webscripts.AbstractRuntime] [http-apr-8080-exec-9] Exception from executeScript - redirecting to status template error: 02040024 Wrapped Exception (with status template): 02040095 Error during processing of the template 'The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (print stack trace for 1 more):
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]'. Please contact your system administrator.
org.springframework.extensions.webscripts.WebScriptException: 02040024 Wrapped Exception (with status template): 02040095 Error during processing of the template 'The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (print stack trace for 1 more):
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]'. Please contact your system administrator.
   at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:1126)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:171)
   at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:463)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:454)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:532)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:600)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:380)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:261)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
   at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441)
   at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Caused by: org.alfresco.service.cmr.repository.TemplateException: 02040095 Error during processing of the template 'The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (print stack trace for 1 more):
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]'. Please contact your system administrator.
   at org.alfresco.repo.template.FreeMarkerProcessor.process(FreeMarkerProcessor.java:221)
   at org.springframework.extensions.webscripts.AbstractWebScript.renderTemplate(AbstractWebScript.java:955)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.renderFormatTemplate(DeclarativeWebScript.java:267)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:147)
   … 33 more
Caused by: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> jsonUtils.encodeJSONString(x)  [in template "org/alfresco/repository/site/site.lib.ftl" at line 7, column 15]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

The failing instruction (print stack trace for 1 more):
==> ${site.description} auto-escaped  [in template "org/alfresco/repository/site/site.lib.ftl" in macro "siteJSONManagers" at line 13, column 25]
   at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:98)
   at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:382)
   at freemarker.core.Expression.evalAndCoerceToString(Expression.java:115)
   at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.EscapeBlock.accept(EscapeBlock.java:85)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.Macro$Context.runMacro(Macro.java:209)
   at freemarker.core.Environment.visit(Environment.java:694)
   at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
   at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:193)
   at freemarker.core.Environment.visitIteratorBlock(Environment.java:509)
   at freemarker.core.IteratorBlock.accept(IteratorBlock.java:103)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.MixedContent.accept(MixedContent.java:93)
   at freemarker.core.Environment.visit(Environment.java:265)
   at freemarker.core.Environment.process(Environment.java:243)
   at org.alfresco.repo.template.FreeMarkerProcessor.process(FreeMarkerProcessor.java:217)
   … 36 more


Thanks again!

Best regards,
Adam

akerenyi
Champ in-the-making
Champ in-the-making
A few additional information:
- If I add the aspect to the site manually from Share it seems to be working fine.
- If I add the aspect manually using the Apache CMIS Workbench it produces the same error.

So my initial presumption, that sites cannot have this aspect is false. They can, yet if I add it via CMIS something goes wrong.

Any Ideas?

akerenyi
Champ in-the-making
Champ in-the-making
Tested on version 4.2f with the same results, so it is not a version specific issue.

rjohnson
Star Contributor
Star Contributor
When you manually add the aspect then it will use Javascript action code, the other methods will likely use some other code. The problem is probably a value that is being set in one of the properties of the aspect added is "unexpected" by the FreeMarker template.

When Alfresco reports an error on jsonUtils.encodeJSONString(x) it is being disingenuous. The error is actually elsewhere in the output and jsonUtils.encodeJSONString(x) can't encode the output to a JSON string so it throws the error on jsonUtils.encodeJSONString(x).

To track it you need to comment out jsonUtils.encodeJSONString(x) and run the code and look at the output to see which property is actually causing the error, fix that and then uncomment out jsonUtils.encodeJSONString(x)