[ 
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-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to