Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-6961

ExtractEmailHeaders does not work with Java 11

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.10.0
    • 1.14.0
    • Extensions
    • None

    Description

      Reported on Slack channel:

      2019-12-19 21:16:28,225 ERROR [Timer-Driven Process Thread-22] o.a.n.p.email.ExtractEmailHeaders ExtractEmailHeaders[id=1f93582d-016f-1000-0000-00004cb581ad] ExtractEmailHeaders[id=1f93582d-016f-1000-0000-00004cb581ad] failed to process session due to java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport; Processor Administratively Yielded for 1 sec: java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport
       2949 java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport
       2950 at javax.activation.MailcapCommandMap.<init>(MailcapCommandMap.java:179)
       2951 at javax.activation.CommandMap.getDefaultCommandMap(CommandMap.java:85)
       2952 at javax.activation.DataHandler.getCommandMap(DataHandler.java:167)
       2953 at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:626)
       2954 at javax.activation.DataHandler.getContent(DataHandler.java:554)
       2955 at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1454)
       2956 at org.apache.commons.mail.util.MimeMessageParser.parse(MimeMessageParser.java:194)
       2957 at org.apache.commons.mail.util.MimeMessageParser.parse(MimeMessageParser.java:95)
       2958 at org.apache.nifi.processors.email.ExtractEmailHeaders$1.process(ExtractEmailHeaders.java:173)
       2959 at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2315)
       2960 at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2283)
       2961 at org.apache.nifi.processors.email.ExtractEmailHeaders.onTrigger(ExtractEmailHeaders.java:165)
       2962 at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
       2963 at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176)
       2964 at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213)
       2965 at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
       2966 at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
       2967 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
       2968 at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
       2969 at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
       2970 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       2971 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       2972 at java.base/java.lang.Thread.run(Thread.java:834)
       2973 2019-12-19 21:16:28,225 WARN [Timer-Driven Process Thread-22] o.a.n.controller.tasks.ConnectableTask Administratively Yielding ExtractEmailHeaders[id=1f93582d-016f-1000-0000-00004cb581ad] due to uncaught Exception: java.lang.NoCl assDefFoundError: com/sun/activation/registries/LogSupport
       2974 java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport
       2975 at javax.activation.MailcapCommandMap.<init>(MailcapCommandMap.java:179)
       2976 at javax.activation.CommandMap.getDefaultCommandMap(CommandMap.java:85)
       2977 at javax.activation.DataHandler.getCommandMap(DataHandler.java:167)
       2978 at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:626)
       2979 at javax.activation.DataHandler.getContent(DataHandler.java:554)
       2980 at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1454)
       2981 at org.apache.commons.mail.util.MimeMessageParser.parse(MimeMessageParser.java:194)
       2982 at org.apache.commons.mail.util.MimeMessageParser.parse(MimeMessageParser.java:95)
       2983 at org.apache.nifi.processors.email.ExtractEmailHeaders$1.process(ExtractEmailHeaders.java:173)
       2984 at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2315)
       2985 at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2283)
       2986 at org.apache.nifi.processors.email.ExtractEmailHeaders.onTrigger(ExtractEmailHeaders.java:165)
       2987 at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
       2988 at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176)
       2989 at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213)
       2990 at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
       2991 at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
       2992 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
       2993 at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
       2994 at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
       2995 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       2996 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       2997 at java.base/java.lang.Thread.run(Thread.java:834)

      Found some mentions about the issue on the internet:

      https://issues.openbravo.com/view.php?id=39576

        It was not possible because mail libraries relies on some classes that were
        in hidden modules by default starting from JDK 10 and completelly reomved in
        11.
       
        Fixed by replacing javax.activation-api-1.2.0 by javax.activation-1.2.0
        (com.sun.activation:javax.activation).
       
        Note javax.activation-api is not purely an API but it also includes implementation
        for classes in javax.activation package (which was included in previous JDKs)
        but it depends on classes in com.sun.activation which have also been removed
        from JDK and not included in activation-api jar but yes in activation one.
       
        The contents of javax.activation package are identicall in both jars.
       
        Note also javax.mail-1.6.1 depends on activation-1.1 (javax.activation:activation)
        to manage MIME data, that version was released in 2009; newer javax.activation-1.2.0
        (2017) has same API including new fixes.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              pvillard Pierre Villard
              Votes:
              11 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: