James Server
  1. James Server
  2. JAMES-781

James will not start if there is directory with too many files and folders in the repostiory path

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.3.0
    • Fix Version/s: 3.0-M1, 3.0.0
    • Component/s: None
    • Labels:
      None
    • Environment:
      RedHat EL3, JVM 1.4.2_13,

      Description

      The real path to my repository is /var/james/var, James is installed in /usr/local/james-2.3.0. In /var/james/var/mail/ except all James store directories (address-error, ougoing ...) there is one MYOWN where I have a lot of emails sorted in many sub, sub .. folders. This is folder and everything in it have 755 SOMEUSER.SOMEUSER permissions.

      James will start successfully if it uses it's self created /var. When I link /usr/local/james-2.3.0/apps/james/var/mail/
      to the real store /var/james/var/mail it won't start, will not create any of it's store directories and the last message in phoenix.log is
      Verify that if target is null then actions is null.

      I created a new directory /var/james/var/newmail and linked it with /usr/local/james-2.3.0/apps/james/var/mail/. James started and it created all it's store directories successfully. I stopped it and then made a link in /var/james/var/newmail/ to /var/james/var/mail/MYOWN. After this changes James is not starting up again and the last message in the log again is
      Verify that if target is null then actions is null.

      Have in mind that this MYOWN directory contains a really big tree of folders and files - ~50GB. It will be really slow even if james|phoenix tries only to go trough all of them.

      The phoenix stack trace:

      STARTED Phoenix Fri Mar 30 03:13:04 PDT 2007

      Phoenix 4.2

      Full thread dump Java HotSpot(TM) Client VM (1.4.2_13-b06 mixed mode):

      "Thread-0" daemon prio=1 tid=0xaa4e5880 nid=0x6591 waiting on condition [0xaa102000..0xaa102868]
      at java.lang.Thread.sleep(Native Method)
      at org.apache.avalon.excalibur.monitor.impl.ActiveMonitor.run(ActiveMonitor.java:101)
      at java.lang.Thread.run(Thread.java:534)

      "Signal Dispatcher" daemon prio=1 tid=0xaab14470 nid=0x658e waiting on condition [0x00000000..0x00000000]

      "Finalizer" daemon prio=1 tid=0xaab00690 nid=0x658c in Object.wait() [0xaacad000..0xaacad868]
      at java.lang.Object.wait(Native Method)

      • waiting on <0xab31f998> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
      • locked <0xab31f998> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      "Reference Handler" daemon prio=1 tid=0x0808d770 nid=0x658b in Object.wait() [0xaad2e000..0xaad2e868]
      at java.lang.Object.wait(Native Method)

      • waiting on <0xab31fa00> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
      • locked <0xab31fa00> (a java.lang.ref.Reference$Lock)

      "main" prio=1 tid=0x08057c98 nid=0x6588 runnable [0xbfffa000..0xbfffbeb8]
      at java.io.ExpiringCache.cleanup(ExpiringCache.java:99)
      at java.io.ExpiringCache.get(ExpiringCache.java:51)

      • locked <0xab3224f8> (a java.io.ExpiringCache)
        at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:137)
        at java.io.File.getCanonicalPath(File.java:513)
        at java.io.FilePermission$1.run(FilePermission.java:218)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.FilePermission.init(FilePermission.java:212)
        at java.io.FilePermission.<init>(FilePermission.java:264)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:863)
        at java.io.File.isDirectory(File.java:699)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:168)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
        at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.resolveFileSet(DefaultLoaderResolver.java:131)
        at org.apache.avalon.phoenix.components.classloader.SarLoaderResolver.resolveFileSet(SarLoaderResolver.java:169)
        at org.realityforge.classman.builder.LoaderBuilder.buildRegularClassLoader(LoaderBuilder.java:210)
        at org.realityforge.classman.builder.LoaderBuilder.processClassLoader(LoaderBuilder.java:126)
        at org.realityforge.classman.builder.LoaderBuilder.addAllClassLoaders(LoaderBuilder.java:71)
        at org.realityforge.classman.builder.LoaderBuilder.buildClassLoaders(LoaderBuilder.java:48)
        at org.apache.avalon.phoenix.components.classloader.DefaultClassLoaderManager.createClassLoaderSet(DefaultClassLoaderManager.java:233)
        at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.deploy(DefaultDeployer.java:331)
        at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:542)
      • locked <0xab343058> (a org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor)
        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)
        at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.execute(DefaultEmbeddor.java:268)
        at org.apache.avalon.phoenix.frontends.CLIMain.run(CLIMain.java:198)
        at org.apache.avalon.phoenix.frontends.CLIMain.execute(CLIMain.java:184)
        at org.apache.avalon.phoenix.frontends.CLIMain.main(CLIMain.java:145)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.avalon.phoenix.launcher.Main.startup(Main.java:128)
        at org.apache.avalon.phoenix.launcher.Main.main(Main.java:83)

      "VM Thread" prio=1 tid=0x0808c508 nid=0x658a runnable

      "VM Periodic Task Thread" prio=1 tid=0xaab16c88 nid=0x6590 waiting on condition
      "Suspend Checker Thread" prio=1 tid=0xaab139c8 nid=0x658d runnable
      Full thread dump Java HotSpot(TM) Client VM (1.4.2_13-b06 mixed mode):

      "Thread-0" daemon prio=1 tid=0xaa4e5880 nid=0x6591 waiting on condition [0xaa102000..0xaa102868]
      at java.lang.Thread.sleep(Native Method)
      at org.apache.avalon.excalibur.monitor.impl.ActiveMonitor.run(ActiveMonitor.java:101)
      at java.lang.Thread.run(Thread.java:534)

      "Signal Dispatcher" daemon prio=1 tid=0xaab14470 nid=0x658e waiting on condition [0x00000000..0x00000000]

      "Finalizer" daemon prio=1 tid=0xaab00690 nid=0x658c in Object.wait() [0xaacad000..0xaacad868]
      at java.lang.Object.wait(Native Method)

      • waiting on <0xab31f998> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
      • locked <0xab31f998> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      "Reference Handler" daemon prio=1 tid=0x0808d770 nid=0x658b in Object.wait() [0xaad2e000..0xaad2e868]
      at java.lang.Object.wait(Native Method)

      • waiting on <0xab31fa00> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
      • locked <0xab31fa00> (a java.lang.ref.Reference$Lock)

      "main" prio=1 tid=0x08057c98 nid=0x6588 runnable [0xbfffa000..0xbfffbeb8]
      at java.security.AccessController.doPrivileged(Native Method)
      at java.io.FilePermission.init(FilePermission.java:212)
      at java.io.FilePermission.<init>(FilePermission.java:264)
      at java.lang.SecurityManager.checkRead(SecurityManager.java:863)
      at java.io.File.isDirectory(File.java:699)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:168)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.resolveFileSet(DefaultLoaderResolver.java:131)
      at org.apache.avalon.phoenix.components.classloader.SarLoaderResolver.resolveFileSet(SarLoaderResolver.java:169)
      at org.realityforge.classman.builder.LoaderBuilder.buildRegularClassLoader(LoaderBuilder.java:210)
      at org.realityforge.classman.builder.LoaderBuilder.processClassLoader(LoaderBuilder.java:126)
      at org.realityforge.classman.builder.LoaderBuilder.addAllClassLoaders(LoaderBuilder.java:71)
      at org.realityforge.classman.builder.LoaderBuilder.buildClassLoaders(LoaderBuilder.java:48)
      at org.apache.avalon.phoenix.components.classloader.DefaultClassLoaderManager.createClassLoaderSet(DefaultClassLoaderManager.java:233)
      at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.deploy(DefaultDeployer.java:331)
      at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:542)

      • locked <0xab343058> (a org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor)
        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)
        at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.execute(DefaultEmbeddor.java:268)
        at org.apache.avalon.phoenix.frontends.CLIMain.run(CLIMain.java:198)
        at org.apache.avalon.phoenix.frontends.CLIMain.execute(CLIMain.java:184)
        at org.apache.avalon.phoenix.frontends.CLIMain.main(CLIMain.java:145)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.avalon.phoenix.launcher.Main.startup(Main.java:128)
        at org.apache.avalon.phoenix.launcher.Main.main(Main.java:83)

      "VM Thread" prio=1 tid=0x0808c508 nid=0x658a runnable

      "VM Periodic Task Thread" prio=1 tid=0xaab16c88 nid=0x6590 waiting on condition
      "Suspend Checker Thread" prio=1 tid=0xaab139c8 nid=0x658d runnable
      Full thread dump Java HotSpot(TM) Client VM (1.4.2_13-b06 mixed mode):

      "Thread-0" daemon prio=1 tid=0xaa4e5880 nid=0x6591 waiting on condition [0xaa102000..0xaa102868]
      at java.lang.Thread.sleep(Native Method)
      at org.apache.avalon.excalibur.monitor.impl.ActiveMonitor.run(ActiveMonitor.java:101)
      at java.lang.Thread.run(Thread.java:534)

      "Signal Dispatcher" daemon prio=1 tid=0xaab14470 nid=0x658e waiting on condition [0x00000000..0x00000000]

      "Finalizer" daemon prio=1 tid=0xaab00690 nid=0x658c in Object.wait() [0xaacad000..0xaacad868]
      at java.lang.Object.wait(Native Method)

      • waiting on <0xab31f998> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
      • locked <0xab31f998> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      "Reference Handler" daemon prio=1 tid=0x0808d770 nid=0x658b in Object.wait() [0xaad2e000..0xaad2e868]
      at java.lang.Object.wait(Native Method)

      • waiting on <0xab31fa00> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
      • locked <0xab31fa00> (a java.lang.ref.Reference$Lock)

      "main" prio=1 tid=0x08057c98 nid=0x6588 runnable [0xbfffa000..0xbfffbeb8]
      at java.security.AccessController.doPrivileged(Native Method)
      at java.io.FilePermission.init(FilePermission.java:212)
      at java.io.FilePermission.<init>(FilePermission.java:264)
      at java.lang.SecurityManager.checkRead(SecurityManager.java:863)
      at java.io.File.isDirectory(File.java:699)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:168)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.scanDir(DefaultLoaderResolver.java:170)
      at org.apache.avalon.phoenix.components.classloader.DefaultLoaderResolver.resolveFileSet(DefaultLoaderResolver.java:131)
      at org.apache.avalon.phoenix.components.classloader.SarLoaderResolver.resolveFileSet(SarLoaderResolver.java:169)
      at org.realityforge.classman.builder.LoaderBuilder.buildRegularClassLoader(LoaderBuilder.java:210)
      at org.realityforge.classman.builder.LoaderBuilder.processClassLoader(LoaderBuilder.java:126)
      at org.realityforge.classman.builder.LoaderBuilder.addAllClassLoaders(LoaderBuilder.java:71)
      at org.realityforge.classman.builder.LoaderBuilder.buildClassLoaders(LoaderBuilder.java:48)
      at org.apache.avalon.phoenix.components.classloader.DefaultClassLoaderManager.createClassLoaderSet(DefaultClassLoaderManager.java:233)
      at org.apache.avalon.phoenix.components.deployer.DefaultDeployer.deploy(DefaultDeployer.java:331)
      at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.deployFile(DefaultEmbeddor.java:542)

      • locked <0xab343058> (a org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor)
        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)
        at org.apache.avalon.phoenix.components.embeddor.DefaultEmbeddor.execute(DefaultEmbeddor.java:268)
        at org.apache.avalon.phoenix.frontends.CLIMain.run(CLIMain.java:198)
        at org.apache.avalon.phoenix.frontends.CLIMain.execute(CLIMain.java:184)
        at org.apache.avalon.phoenix.frontends.CLIMain.main(CLIMain.java:145)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.avalon.phoenix.launcher.Main.startup(Main.java:128)
        at org.apache.avalon.phoenix.launcher.Main.main(Main.java:83)

      "VM Thread" prio=1 tid=0x0808c508 nid=0x658a runnable

      "VM Periodic Task Thread" prio=1 tid=0xaab16c88 nid=0x6590 waiting on condition
      "Suspend Checker Thread" prio=1 tid=0xaab139c8 nid=0x658d runnable
      JVM exiting abnormally. Shutting down Phoenix.
      STOPPED Fri Mar 30 03:18:05 PDT 2007

      1. phoenix-engine.jar
        197 kB
        Stefano Bagnara

        Activity

        Hide
        Stefano Bagnara added a comment -

        This seems to be related to the new classloader in the new phoenix.
        If there is no <classloaders> section in environment.xml then phoenix build this configuration:

        private ClassLoaderSetMetaData createDefaultLoaderMetaData()
        {
        final String[] includes = new String[]

        {"SAR-INF/lib/*.jar"}

        ;
        final String[] excludes = new String[ 0 ];
        final FileSetMetaData fileSet =
        new FileSetMetaData( ".",
        includes,
        excludes );
        final String name = "default";
        final String parent = "system";
        final String[] entrys = new String[]

        {"SAR-INF/classes/"}

        ;
        final Extension[] extensions = new Extension[ 0 ];
        final FileSetMetaData[] filesets = new FileSetMetaData[]

        {fileSet}

        ;
        final ClassLoaderMetaData loader =
        new ClassLoaderMetaData( name, parent, entrys, extensions, filesets );
        final String[] predefined = new String[]

        {parent}

        ;
        final ClassLoaderMetaData[] classLoaders = new ClassLoaderMetaData[]

        {loader}

        ;
        final JoinMetaData[] joins = new JoinMetaData[ 0 ];
        return
        new ClassLoaderSetMetaData( name,
        predefined,
        classLoaders,
        joins );
        }

        so it uses "." as folder "SAR-INF/classes/" as entry and "SAR-INF/lib/*.jar" as include.

        Maybe this ends up scanning the whole "." in search of paths matching SAR-INF classes and SAR-INF/lib.

        One first attempt to fix this could be to specify a custom classloader scheme using "./SAR-INF" as the folder and "lib/*.jar" as include. I never tested or used something similar, but you could try adding to your environment.xml this configuration (inside the server note, as a brother of logs entry):
        -----------
        <classloaders default="default" version="1.0">
        <classloader name="default" parent="system">
        <entry location="./SAR-INF/classes" />
        <fileset dir="./SAR-INF">
        <include name="lib/*.jar" />
        </fileset>
        </classloader>
        <!-- <predefined name="" /> -->
        </classloaders>
        --------------

        Show
        Stefano Bagnara added a comment - This seems to be related to the new classloader in the new phoenix. If there is no <classloaders> section in environment.xml then phoenix build this configuration: private ClassLoaderSetMetaData createDefaultLoaderMetaData() { final String[] includes = new String[] {"SAR-INF/lib/*.jar"} ; final String[] excludes = new String[ 0 ]; final FileSetMetaData fileSet = new FileSetMetaData( ".", includes, excludes ); final String name = "default"; final String parent = " system "; final String[] entrys = new String[] {"SAR-INF/classes/"} ; final Extension[] extensions = new Extension[ 0 ]; final FileSetMetaData[] filesets = new FileSetMetaData[] {fileSet} ; final ClassLoaderMetaData loader = new ClassLoaderMetaData( name, parent, entrys, extensions, filesets ); final String[] predefined = new String[] {parent} ; final ClassLoaderMetaData[] classLoaders = new ClassLoaderMetaData[] {loader} ; final JoinMetaData[] joins = new JoinMetaData[ 0 ]; return new ClassLoaderSetMetaData( name, predefined, classLoaders, joins ); } so it uses "." as folder "SAR-INF/classes/" as entry and "SAR-INF/lib/*.jar" as include. Maybe this ends up scanning the whole "." in search of paths matching SAR-INF classes and SAR-INF/lib. One first attempt to fix this could be to specify a custom classloader scheme using "./SAR-INF" as the folder and "lib/*.jar" as include. I never tested or used something similar, but you could try adding to your environment.xml this configuration (inside the server note, as a brother of logs entry): ----------- <classloaders default="default" version="1.0"> <classloader name="default" parent=" system "> <entry location="./SAR-INF/classes" /> <fileset dir="./SAR-INF"> <include name="lib/*.jar" /> </fileset> </classloader> <!-- <predefined name="" /> --> </classloaders> --------------
        Hide
        Stefano Bagnara added a comment -

        I tried to add this on my local james and I had to uncomment the predefined tag and use system as name to be able to boot.

        <classloaders default="default" version="1.0">
        <classloader name="default" parent="system">
        <entry location="./SAR-INF/classes" />
        <fileset dir="./SAR-INF">
        <include name="lib/*.jar" />
        </fileset>
        </classloader>
        <predefined name="system" />
        </classloaders>

        Please try this and let us know if this fix the problem.

        Show
        Stefano Bagnara added a comment - I tried to add this on my local james and I had to uncomment the predefined tag and use system as name to be able to boot. <classloaders default="default" version="1.0"> <classloader name="default" parent=" system "> <entry location="./SAR-INF/classes" /> <fileset dir="./SAR-INF"> <include name="lib/*.jar" /> </fileset> </classloader> <predefined name=" system " /> </classloaders> Please try this and let us know if this fix the problem.
        Hide
        Ozkan Mehmedali added a comment -

        I gave it a quick try but it didn't work. I will be able to test it more tomorrow because now the server is too busy.

        Show
        Ozkan Mehmedali added a comment - I gave it a quick try but it didn't work. I will be able to test it more tomorrow because now the server is too busy.
        Hide
        Ozkan Mehmedali added a comment -

        Modifying environment.xml did not help.

        Is it possible to move the mail store out the of the james path?

        Show
        Ozkan Mehmedali added a comment - Modifying environment.xml did not help. Is it possible to move the mail store out the of the james path?
        Hide
        Stefano Bagnara added a comment -

        I changed the DefaultLoaderResolver class from phoenix to correctly make use of filesets from the environment.
        Using this jar and changing the environment.xml to include the classloader customization should fix the scanDir issue.

        Show
        Stefano Bagnara added a comment - I changed the DefaultLoaderResolver class from phoenix to correctly make use of filesets from the environment. Using this jar and changing the environment.xml to include the classloader customization should fix the scanDir issue.
        Hide
        Ozkan Mehmedali added a comment -

        With the new jar and the environment.xml change james works fine. It restarted it several times and there were no problems.

        Show
        Ozkan Mehmedali added a comment - With the new jar and the environment.xml change james works fine. It restarted it several times and there were no problems.
        Hide
        Stefano Bagnara added a comment -

        Applied to trunk and backported to v2.3 branch for the 2.3.1.

        Show
        Stefano Bagnara added a comment - Applied to trunk and backported to v2.3 branch for the 2.3.1.
        Hide
        Danny Angus added a comment -

        Closing issue fixed in released version.

        Show
        Danny Angus added a comment - Closing issue fixed in released version.

          People

          • Assignee:
            Stefano Bagnara
            Reporter:
            Ozkan Mehmedali
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development