You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2020/10/26 16:12:35 UTC

[Bug 64849] New: Embedded EL module descriptor missing uses and provides clauses

https://bz.apache.org/bugzilla/show_bug.cgi?id=64849

            Bug ID: 64849
           Summary: Embedded EL module descriptor missing uses and
                    provides clauses
           Product: Tomcat 9
           Version: 9.0.39
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: EL
          Assignee: dev@tomcat.apache.org
          Reporter: rob.platt@dai.co.uk
  Target Milestone: -----

Tomcat Embedded EL has a bug closely related to one reported and fixed to the
core module, issue 64751 "Incomplete module info descriptor". This is the
stacktrace:

java.util.ServiceConfigurationError: javax.el.ExpressionFactory: module
org.apache.tomcat.embed.el does not declare `uses`
[ERROR]         at
java.base/java.util.ServiceLoader.fail(ServiceLoader.java:588)
[ERROR]         at
java.base/java.util.ServiceLoader.checkCaller(ServiceLoader.java:574)
[ERROR]         at
java.base/java.util.ServiceLoader.<init>(ServiceLoader.java:503)
[ERROR]         at
java.base/java.util.ServiceLoader.load(ServiceLoader.java:1646)
[ERROR]         at
org.apache.tomcat.embed.el@9.0.39/javax.el.ExpressionFactory.getClassNameServices(ExpressionFactory.java:372)
[ERROR]         at
org.apache.tomcat.embed.el@9.0.39/javax.el.ExpressionFactory.discoverClassName(ExpressionFactory.java:330)
[ERROR]         at
org.apache.tomcat.embed.el@9.0.39/javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:134)
[ERROR]         at
org.apache.tomcat.embed.el@9.0.39/javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:86)

Looking at module-info.java and the contents of META-INF/services I think there
are two missing lines for this module descriptor; not just the uses clause, but
also and the provides clauses. Both of these lines need adding:

uses javax.el.ExpressionFactory;
provides javax.el.ExpressionFactory with org.apache.el.ExpressionFactoryImpl;

Both lines are necessary to recreate the service provider / loader mechanism
with the module system; ExpressionFactory has static methods to look up the
implementation (as part of the public newInstance method), so the module uses
its own provided implementation.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 64849] Embedded EL module descriptor missing uses and provides clauses

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64849

--- Comment #1 from Mark Thomas <ma...@apache.org> ---
The first thing we are going to need to do is fix the JPMS names so they agree
with the names used by the spec APIs.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 64849] Embedded EL module descriptor missing uses and provides clauses

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64849

Mark Thomas <ma...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from Mark Thomas <ma...@apache.org> ---
Thanks for the report. This highlighted a number of additional issues which
have all been fixed.

Fixed in:
- 10.0.x for 10.0.0-M10 onwards
- 9.0.x for 9.0.40 onwards

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org