Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0054486
TypeCategorySeverityReproducibilityDate SubmittedLast Update
backport[Openbravo ERP] A. Platformminorhave not tried2024-01-24 13:372024-03-04 14:32
ReportershuehnerView Statuspublic 
Assigned ToTriage Platform Base 
PrioritynormalResolutionfixedFixed in VersionPR24Q1.1
StatusclosedFix in branchFixed in SCM revision
ProjectionnoneETAnoneTarget VersionPR24Q1.1
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned To
Web browser
ModulesCore
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0054486: Avoid compiler warning about implicit annotation processing by disabling it using -proc:none

DescriptionUntil Java<21 the java compiler implicitely looked for and ran any annotation processor found on the classpath.

Since Java21 the following warning is shown to inform users about upcoming change.

    [javac] Note: Annotation processing is enabled because one or more processors were found
    [javac] on the class path. A future release of javac may disable annotation processing
    [javac] unless at least one processor is specified by name (-processor), or a search
    [javac] path is specified (--processor-path, --processor-module-path), or annotation
    [javac] processing is enabled explicitly (-proc:only, -proc:full).
    [javac] Use -Xlint:-options to suppress this message.
    [javac] Use -proc:none to disable annotation processing.

Upstream intention/recommendation instead is to explicitely specify/configure annotation processing by the build tool.
However a "compatibility option" -proc:full was added to keep using the "old default policy"

Steps To ReproduceRunning compile with jdk-21
Proposed SolutionNot knowingly needing any annotation processing idea is to explicitely disable it using -proc:none
If usage should show up later it is better to explicitely notice this (i.e. in CI) and then work on properly supporting that.
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
blocks feature request 0054452 closedTriage Platform Base Avoid compiler warning about implicit annotation processing by disabling it using -proc:none 

-  Notes
(0160262)
hgbot (developer)
2024-02-05 15:10

Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/1126 [^]
(0161623)
hgbot (developer)
2024-03-04 14:32

Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: c8e33b7bff73cd1e1fd251c899a62166afa03c4e
Author: Stefan Huehner <stefan.huehner@openbravo.com>
Date: 04-03-2024 13:31:24
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/c8e33b7bff73cd1e1fd251c899a62166afa03c4e [^]

Fixed ISSUE-54486: Disable annotation processing with -proc:none to avoid warnings

Until Java<21 the java compiler implicitely looked for and ran any
annotation processor found on the classpath.
Since Java21 the following warning is shown to inform users about upcoming change of
default for this policy.

    [javac] Note: Annotation processing is enabled because one or more processors were found
    [javac] on the class path. A future release of javac may disable annotation processing
    [javac] unless at least one processor is specified by name (-processor), or a search
    [javac] path is specified (--processor-path, --processor-module-path), or annotation
    [javac] processing is enabled explicitly (-proc:only, -proc:full).
    [javac] Use -Xlint:-options to suppress this message.
    [javac] Use -proc:none to disable annotation processing.

- Add a new ant property javac.proc to specify value to be used via
  <compilerarg line> for all our various javac invocations
- For the value use -proc:none to explicitely disable annotation processing
  during compilation
  <compilearg line> was chosne as <compiler arg> value run into some
  cornercase issues in case value was empty.
- Reasoning:
  - Upstream recommends to explcitely specify and control annotation
    processors instead of them being 'found' implicitely
    https://github.com/openjdk/jdk/pull/14432#issuecomment-1714598354 [^]
  - Checking all jar libraries in mods/pmods (if they ship a
    META-INF/avax.annotation.processing.Processor) file found 1 single library
    shipping an annotation processor: log4j for its plugin system
    - However we do not use any shipped extra plugin
  - We have a few custom plugins ourself in src-test having @Plugin
    - Annotation processing was running before for those as shown on
      compile output
    [javac] Note: Processing Log4j annotations
    [javac] Note: Annotations processed
  - However not running it seems to have no impact on the functionality
    - Tested via existing DalTest which assert's on output of content of
      testLogAppender configured via those plugins

---
M build.xml
M src-core/build.xml
M src-test/build.xml
M src-trl/build.xml
M src-util/buildvalidation/build.xml
M src-util/modulescript/build.xml
M src-wad/build.xml
M src/build.xml
---
(0161624)
hgbot (developer)
2024-03-04 14:32

Merge request merged: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/1126 [^]

- Issue History
Date Modified Username Field Change
2024-01-29 10:52 shuehner Type feature request => backport
2024-01-29 10:52 shuehner Target Version => PR24Q1
2024-02-05 15:10 hgbot Note Added: 0160262
2024-02-13 13:50 AugustoMauch Target Version PR24Q1 => PR24Q1.1
2024-03-04 14:32 hgbot Resolution open => fixed
2024-03-04 14:32 hgbot Status scheduled => closed
2024-03-04 14:32 hgbot Fixed in Version => PR24Q1.1
2024-03-04 14:32 hgbot Note Added: 0161623
2024-03-04 14:32 hgbot Note Added: 0161624


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker