You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Vincent Kirsch (JIRA)" <se...@james.apache.org> on 2015/11/05 15:27:27 UTC

[jira] [Comment Edited] (JAMES-1631) Can't start James 2.3.2.1 on Windows

    [ https://issues.apache.org/jira/browse/JAMES-1631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14991721#comment-14991721 ] 

Vincent Kirsch edited comment on JAMES-1631 at 11/5/15 2:27 PM:
----------------------------------------------------------------

Hi again,

I discovered that by changing the default provided configuration file (apps\james\SAR-INF\config.xml) and adapting 

<users-store>
         <destination URL="file://var/users/"/>
</users-store>

And putting a real name there, the original error goes away. Note that it did not happen in James 2.3.2
I had a look in the source code and it's due to this new code in UsersFileRepository:

		try {
			destinationCanonicalFile = new File(destination).getCanonicalFile();
		} catch (IOException e) {
			throw new ConfigurationException("destination>>URL", e);
		}
		getLogger().debug("Canonical destination: " + destinationCanonicalFile);

which wasn't there in 2.3.2

However, after putting a folder in the configuration file, I get another error:

{{
ERROR   2015-11-05 14:55:26.116 [Phoenix.] (): There was an error running phase "startup" for Block named "localusersrepository". (Reason: Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).).
org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.fail(LifecycleHelper.java:354)
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:226)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
	at org.apache.avalon.framework.container.ContainerUtil.start(ContainerUtil.java:260)
rethrown from
org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')
	at org.apache.james.core.LocalUsersRepository.initialize(LocalUsersRepository.java:45)
	at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:200)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
INFO    2015-11-05 14:55:26.126 [Phoenix.] (): exception while starting:Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).

WARN    2015-11-05 14:55:26.136 [Phoenix.] (): Failed to start application james.
org.apache.avalon.framework.CascadingException: Failed to start application james.
	at org.apache.avalon.phoenix.components.kernel.DefaultKernel.startup(DefaultKernel.java:313)
	at org.apache.avalon.phoenix.components.kernel.DefaultKernel.addApplication(DefaultKernel.java:376)
	at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.deploy(DefaultDeployer.java:357)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:542)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:535)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFiles(DefaultEmbeddor.java:520)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployDefaultApplications(DefaultEmbeddor.java:509)
rethrown from
org.apache.avalon.phoenix.interfaces.ApplicationException: Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:186)
	at org.apache.avalon.framework.container.ContainerUtil.start(ContainerUtil.java:260)
	at org.apache.avalon.phoenix.components.kernel.DefaultKernel.startup(DefaultKernel.java:295)
	at org.apache.avalon.phoenix.components.kernel.DefaultKernel.addApplication(DefaultKernel.java:376)
	at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.deploy(DefaultDeployer.java:357)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:542)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:535)
rethrown from
org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.fail(LifecycleHelper.java:354)
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:226)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
	at org.apache.avalon.framework.container.ContainerUtil.start(ContainerUtil.java:260)
rethrown from
org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')
	at org.apache.james.core.LocalUsersRepository.initialize(LocalUsersRepository.java:45)
	at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:200)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
}}


So, an NPE...

Further questions: it seems the "very important security fix" is actually just a change of the default root password from "root" to "!changeme!"

Is that correct? Because I don't need the rest of the fixes (Javadoc and users validation), so if that's all there is to it, I'll revert to James 2.3.2 which actually works out of the box. 

Please answer in a timely fashion, I'm totally stuck in my project because of this!

I would debug myself but I am at a loss about how to start this from an Eclipse environment (couldn't find any help on this) and don't have too much time to spend on it.

Thanks
Vincent


was (Author: vincent.kirsch):
Hi again,

I discovered that by changing the default provided configuration file (apps\james\SAR-INF\config.xml) and adapting 

<users-store>
         <destination URL="file://var/users/"/>
</users-store>

And putting a real name there, the original error goes away. Note that it did not happen in James 2.3.2
I had a look in the source code and it's due to this new code in UsersFileRepository:

		try {
			destinationCanonicalFile = new File(destination).getCanonicalFile();
		} catch (IOException e) {
			throw new ConfigurationException("destination>>URL", e);
		}
		getLogger().debug("Canonical destination: " + destinationCanonicalFile);

which wasn't there in 2.3.2

However, after putting a folder in the configuration file, I get another error:

{{monospaced}}
ERROR   2015-11-05 14:55:26.116 [Phoenix.] (): There was an error running phase "startup" for Block named "localusersrepository". (Reason: Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).).
org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.fail(LifecycleHelper.java:354)
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:226)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
	at org.apache.avalon.framework.container.ContainerUtil.start(ContainerUtil.java:260)
rethrown from
org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')
	at org.apache.james.core.LocalUsersRepository.initialize(LocalUsersRepository.java:45)
	at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:200)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
INFO    2015-11-05 14:55:26.126 [Phoenix.] (): exception while starting:Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).

WARN    2015-11-05 14:55:26.136 [Phoenix.] (): Failed to start application james.
org.apache.avalon.framework.CascadingException: Failed to start application james.
	at org.apache.avalon.phoenix.components.kernel.DefaultKernel.startup(DefaultKernel.java:313)
	at org.apache.avalon.phoenix.components.kernel.DefaultKernel.addApplication(DefaultKernel.java:376)
	at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.deploy(DefaultDeployer.java:357)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:542)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:535)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFiles(DefaultEmbeddor.java:520)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployDefaultApplications(DefaultEmbeddor.java:509)
rethrown from
org.apache.avalon.phoenix.interfaces.ApplicationException: Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:186)
	at org.apache.avalon.framework.container.ContainerUtil.start(ContainerUtil.java:260)
	at org.apache.avalon.phoenix.components.kernel.DefaultKernel.startup(DefaultKernel.java:295)
	at org.apache.avalon.phoenix.components.kernel.DefaultKernel.addApplication(DefaultKernel.java:376)
	at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.deploy(DefaultDeployer.java:357)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:542)
	at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:535)
rethrown from
org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "localusersrepository" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')).
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.fail(LifecycleHelper.java:354)
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:226)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
	at org.apache.avalon.framework.container.ContainerUtil.start(ContainerUtil.java:260)
rethrown from
org.apache.avalon.framework.service.ServiceException: The user repository could not be found. (Key='')
	at org.apache.james.core.LocalUsersRepository.initialize(LocalUsersRepository.java:45)
	at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
	at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:200)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
	at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
{{monospaced}}


So, an NPE...

Further questions: it seems the "very important security fix" is actually just a change of the default root password from "root" to "!changeme!"

Is that correct? Because I don't need the rest of the fixes (Javadoc and users validation), so if that's all there is to it, I'll revert to James 2.3.2 which actually works out of the box. 

Please answer in a timely fashion, I'm totally stuck in my project because of this!

I would debug myself but I am at a loss about how to start this from an Eclipse environment (couldn't find any help on this) and don't have too much time to spend on it.

Thanks
Vincent

> Can't start James 2.3.2.1 on Windows
> ------------------------------------
>
>                 Key: JAMES-1631
>                 URL: https://issues.apache.org/jira/browse/JAMES-1631
>             Project: James Server
>          Issue Type: Bug
>          Components: James Core
>    Affects Versions: 2.3.2.1
>            Reporter: Vincent Kirsch
>            Priority: Blocker
>
> Hi,
> I get the issue on 2 separate Windows machines: Windows 7 64-bit and Windows 2012.
> In each case, the Java version is the latest update of JDK 7 (jdk7u80). It happens with both 32-bit and 64-bit versions of the JDK.
> Procedre:
> - Unzip James files on the disk
> - Launch cmd.exe as Administrator
> - Go in James' bin directory, and launch run.bat
> James doesn't start, and the phoenix.log file contains this:
> ERROR   2015-10-27 12:50:14.903 [Phoenix.] (): There was an error running phase "startup" for Block named "users-store". (Reason: Component named "users-store" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.configuration.ConfigurationException: destination>>URL).).
> org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "users-store" failed to pass through the Starting stage. (Reason: org.apache.avalon.framework.configuration.ConfigurationException: destination>>URL).
>                 at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.fail(LifecycleHelper.java:354)
>                 at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:226)
>                 at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
>                 at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
>                 at org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409)
>                 at org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180)
>                 at org.apache.avalon.framework.container.ContainerUtil.start(ContainerUtil.java:260)
> rethrown from
> org.apache.avalon.framework.configuration.ConfigurationException: destination>>URL
>                 at org.apache.james.userrepository.UsersFileRepository.configure(UsersFileRepository.java:134)
>                 at org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201)
>                 at org.apache.james.core.AvalonUsersStore.initialize(AvalonUsersStore.java:130)
>                 at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
>                 at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:200)
>                 at org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530)
>                 at org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478)
> rethrown from
> java.io.IOException: The filename, directory name, or volume label syntax is incorrect
>                 at java.io.WinNTFileSystem.canonicalize0(Native Method)
>                 at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:414)
>                 at java.io.File.getCanonicalPath(File.java:618)
>                 at java.io.File.getCanonicalFile(File.java:643)
>                 at org.apache.james.userrepository.UsersFileRepository.configure(UsersFileRepository.java:132)
>                 at org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201)
>                 at org.apache.james.core.AvalonUsersStore.initialize(AvalonUsersStore.java:130)
> Upon exit, there's an additional warning because files in the work directory cannot be deleted:
> WARN    2015-10-27 12:50:15.028 [Phoenix.] (): Error deleting Work Directory "D:\James\work\james-1445946613419". (Reason: File D:\James\work\james-1445946613419\SAR-INF\lib\mailet-api-2.3.jar unable to be deleted.)
> java.io.IOException: File D:\James\work\james-1445946613419\SAR-INF\lib\mailet-api-2.3.jar unable to be deleted.
> 	at org.apache.avalon.excalibur.io.FileUtil.forceDelete(FileUtil.java:743)
> 	at org.apache.avalon.excalibur.io.FileUtil.cleanDirectory(FileUtil.java:910)
> 	at org.apache.avalon.excalibur.io.FileUtil.deleteDirectory(FileUtil.java:866)
> 	at org.apache.avalon.excalibur.io.FileUtil.forceDelete(FileUtil.java:735)
> 	at org.apache.avalon.excalibur.io.FileUtil.cleanDirectory(FileUtil.java:910)
> 	at org.apache.avalon.excalibur.io.FileUtil.deleteDirectory(FileUtil.java:866)
> 	at org.apache.avalon.excalibur.io.FileUtil.forceDelete(FileUtil.java:735)
> This is a very blocking issue for me as I rely on James in production environments, so I can't just use the previous version with a security issue in it.
> Thanks
> Vincent



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org