title: How do I get a valid Alfresco application context to create folders?
body: <p>I'm modifying InboundSMTP to create folders for the new messages.  It appears that requires fileFolderService.create, with parameters for a folder content type.  Working back from that I need a ServiceRegistry, which in turn needs ApplicationContext.</p>
  
  <p>Here's what I'm attempting to do:</p>
  
  <pre><code>ApplicationContext appContext = new ClassPathXmlApplicationContext("alfresco/application-context.xml");
  ServiceRegistry serviceRegistry = (ServiceRegistry) appContext.getBean(ServiceRegistry.SERVICE_REGISTRY);
  FileFolderService fileFolderService=serviceRegistry.getFileFolderService();
  FileInfo object = fileFolderService.create(nodeRef, messageSubject, ContentModel.TYPE_FOLDER);
  </code></pre>
  
  <p>However, this causes the inbound e-mails to be rejected.  I can comment out the last 3 lines and it still fails the same way, so something is wrong with my ApplicationContext call.  With even just that call in place, I get the following error (which makes no sense to me):</p>
  
  <pre><code>ERROR [org.springframework.extensions.surf.util.AbstractLifecycleBean] [org.subethamail.smtp.server.Session-/2001:470:c27d:18:0:0:0:17:62204] 06300186 Email message processing failed
  org.alfresco.error.AlfrescoRuntimeException: 06300186 Email message processing failed
      at org.alfresco.email.server.EmailServiceImpl.processMessage(EmailServiceImpl.java:324)
      at org.alfresco.email.server.EmailServiceImpl.importMessage(EmailServiceImpl.java:180)
      at org.alfresco.email.server.impl.subetha.SubethaEmailServer$Handler.processDelivery(SubethaEmailServer.java:223)
      at org.alfresco.email.server.impl.subetha.SubethaEmailServer$Handler.data(SubethaEmailServer.java:184)
      at org.subethamail.smtp.command.DataCommand.execute(DataCommand.java:61)
      at org.subethamail.smtp.server.RequireTLSCommandWrapper.execute(RequireTLSCommandWrapper.java:27)
      at org.subethamail.smtp.server.CommandHandler.handleCommand(CommandHandler.java:98)
      at org.subethamail.smtp.server.Session.runCommandLoop(Session.java:222)
      at org.subethamail.smtp.server.Session.run(Session.java:125)
  Caused by: org.alfresco.error.AlfrescoRuntimeException: 06300185 Not all patches could be applied
      at org.alfresco.repo.admin.patch.PatchExecuter.applyOutstandingPatches(PatchExecuter.java:111)
      at org.alfresco.repo.admin.patch.PatchExecuter$1.doWork(PatchExecuter.java:124)
      at org.alfresco.repo.admin.patch.PatchExecuter$1.doWork(PatchExecuter.java:120)
      at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:548)
      at org.alfresco.repo.admin.patch.PatchExecuter.onBootstrap(PatchExecuter.java:128)
      at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
      at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEventInternal(SafeApplicationEventMulticaster.java:209)
      at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEvent(SafeApplicationEventMulticaster.java:180)
      at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
      at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
      at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:139)
      at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:83)
      at com.sscorp.CustomFolderEmailMessageHandler.addAlfrescoContent(CustomFolderEmailMessageHandler.java:132)
      at com.sscorp.CustomFolderEmailMessageHandler.processMessage(CustomFolderEmailMessageHandler.java:94)
      at org.alfresco.email.server.EmailServiceImpl$3.execute(EmailServiceImpl.java:296)
      at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:454)
      at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:342)
      at org.alfresco.email.server.EmailServiceImpl$4.doWork(EmailServiceImpl.java:304)
      at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:548)
      at org.alfresco.email.server.EmailServiceImpl.processMessage(EmailServiceImpl.java:307)
      ... 8 more
  </code></pre>
  
  <p>What am I doing wrong while trying to get ApplicationContext?  Or, should I try another approach/is there a <em>better</em> way to create folders programmatically in Alfresco?</p>