Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upgrading from quarkus 3.5.3 to 3.6.0 java.lang.IllegalArgumentException: A case block for the string value already exist #37493

Closed
psini opened this issue Dec 4, 2023 · 20 comments · Fixed by #37565
Labels
area/arc Issue related to ARC (dependency injection) kind/bug Something isn't working
Milestone

Comments

@psini
Copy link

psini commented Dec 4, 2023

Describe the bug

after upgrading some of our project started to fail during the build with
[ERROR] [error]: Build step io.quarkus.arc.deployment.ArcProcessor#generateResources threw an exception: java.lang.IllegalStateException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: A case block for the string value [ka18bVEx2xqfTttwWUmpZsCNNWk] already exists
[ERROR] at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:858)
[ERROR] at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
[ERROR] at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
[ERROR] at java.base/java.lang.Thread.run(Thread.java:857)
[ERROR] at org.jboss.threads.JBossThread.run(JBossThread.java:501)
[ERROR] Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: A case block for the string value [ka18bVEx2xqfTttwWUmpZsCNNWk] already exists
[ERROR] at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
[ERROR] at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
[ERROR] at io.quarkus.arc.processor.BeanProcessor.generateResources(BeanProcessor.java:382)
[ERROR] at io.quarkus.arc.deployment.ArcProcessor.generateResources(ArcProcessor.java:519)
[ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[ERROR] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[ERROR] at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
[ERROR] ... 6 more
[ERROR] Caused by: java.lang.IllegalArgumentException: A case block for the string value [ka18bVEx2xqfTttwWUmpZsCNNWk] already exists
[ERROR] at io.quarkus.gizmo.StringSwitchImpl.addCaseBlock(StringSwitchImpl.java:153)
[ERROR] at io.quarkus.gizmo.StringSwitchImpl.caseOf(StringSwitchImpl.java:123)
[ERROR] at io.quarkus.gizmo.StringSwitchImpl.caseOf(StringSwitchImpl.java:18)
[ERROR] at io.quarkus.arc.processor.ContextInstancesGenerator.implementComputeIfAbsent(ContextInstancesGenerator.java:260)
[ERROR] at io.quarkus.arc.processor.ContextInstancesGenerator.generate(ContextInstancesGenerator.java:85)
[ERROR] at io.quarkus.arc.processor.BeanProcessor$7.call(BeanProcessor.java:374)
[ERROR] at io.quarkus.arc.processor.BeanProcessor$7.call(BeanProcessor.java:369)
[ERROR] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[ERROR] ... 5 more

Expected behavior

the build is successful

Actual behavior

the build is broken

How to Reproduce?

No response

Output of uname -a or ver

Macos arm64

Output of java -version

openjdk version "17.0.9" 2023-10-17 IBM Semeru Runtime Open Edition 17.0.9.0 (build 17.0.9+9) Eclipse OpenJ9 VM 17.0.9.0 (build openj9-0.41.0, JRE 17 Mac OS X aarch64-64-Bit 20231017_458 (JIT enabled, AOT enabled) OpenJ9 - 461bf3c70 OMR - 5eee6ad9d JCL - 3699725139c based on jdk-17.0.9+9)

Quarkus version or git rev

3.6.0

Build tool (ie. output of mvnw --version or gradlew --version)

Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)

Additional information

No response

@psini psini added the kind/bug Something isn't working label Dec 4, 2023
@psini psini changed the title upgrading from quarku 3.5.3 to 3.6.0 java.lang.IllegalArgumentException: A case block for the string value already exist upgrading from quarkus 3.5.3 to 3.6.0 java.lang.IllegalArgumentException: A case block for the string value already exist Dec 4, 2023
@psini
Copy link
Author

psini commented Dec 4, 2023

If I use the following option quarkus.arc.optimize-contexts=false the build is successful

@gsmet gsmet added area/arc Issue related to ARC (dependency injection) and removed triage/needs-triage labels Dec 4, 2023
Copy link

quarkus-bot bot commented Dec 4, 2023

/cc @Ladicek (arc), @manovotn (arc), @mkouba (arc)

@Ladicek
Copy link
Contributor

Ladicek commented Dec 4, 2023

OK that is weird. Either we have one bean multiple times in the list of all beans, or we have multiple beans with the same ID. @psini I assume you don't have a small reproducer?

EDIT: or even a large reproducer :-)

@mkouba
Copy link
Contributor

mkouba commented Dec 4, 2023

OK that is weird. Either we have one bean multiple times in the list of all beans, or we have multiple beans with the same ID. @psini I assume you don't have a small reproducer?

EDIT: or even a large reproducer :-)

Ladislav is right. We'll need a reproducer of any size for this one...

@psini
Copy link
Author

psini commented Dec 4, 2023

I don't have a reproducer because the code i have is a closed source project and I cannot use it for a reproducer . How can I find which class is the one that create the issue ? In that way i could build a reproducer .

@mkouba
Copy link
Contributor

mkouba commented Dec 5, 2023

I don't have a reproducer because the code i have is a closed source project and I cannot use it for a reproducer . How can I find which class is the one that create the issue ? In that way i could build a reproducer .

You can try to run your app in the dev mode (with context optimization disabled) and then HTTP GET /q/arc/beans

@Ladicek
Copy link
Contributor

Ladicek commented Dec 5, 2023

I added some debug printing that I believe would be useful for diagnosing this issue in my branch here: https://github.com/Ladicek/quarkus/commits/context-instances-debugging

@psini If you can build Quarkus from that branch:

git clone https://github.com/Ladicek/quarkus.git my-quarkus-clone
cd my-quarkus-clone
git checkout origin/context-instances-debugging
mvn -Dquickly -Dno-test-modules -T 1C

then switch your project to Quarkus 999-SNAPSHOT and build your application (mvn clean package -DskipTests), you should observe that the Quarkus Maven plugin produces output similar to:

[INFO] --- quarkus-maven-plugin:999-SNAPSHOT:build (default) @ conprop ---
[INFO] [!!!] === Generating `ContextInstances` class for scope jakarta.enterprise.context.ApplicationScoped, 4 bean(s) ===
[INFO] [!!!] QdZg1cXs34dPRiG8Uz7lyUDudlo -> 1 bean(s):
[INFO] [!!!] - CLASS bean [types=[io.smallrye.config.inject.ConfigProducer, java.lang.Object], qualifiers=[@Default, @Any], target=io.smallrye.config.inject.ConfigProducer]
[INFO] [!!!] N80A159oF8msb0BBZG1sW4wdTGk -> 1 bean(s):
[INFO] [!!!] - SYNTHETIC bean [types=[org.eclipse.microprofile.context.ManagedExecutor, java.lang.Object, io.smallrye.context.SmallRyeManagedExecutor], qualifiers=[@Default, @Any], target=n/a]
[INFO] [!!!] cAsQhMqDYUnGxT4AN4njjudQ50I -> 1 bean(s):
[INFO] [!!!] - SYNTHETIC bean [types=[java.util.concurrent.Executor, java.util.concurrent.ExecutorService, java.lang.Object, java.util.concurrent.ScheduledExecutorService], qualifiers=[@Default, @Any], target=n/a]
[INFO] [!!!] DXAgdn0Uq14IR-Udb4sr9S6ViFE -> 1 bean(s):
[INFO] [!!!] - CLASS bean [types=[cz.ladicek.quarkus.tiny.conprop.MyConPropUser, java.lang.Object], qualifiers=[@Default, @Any], target=cz.ladicek.quarkus.tiny.conprop.MyConPropUser]
[INFO] [!!!] === Generating `ContextInstances` class for scope jakarta.enterprise.context.RequestScoped, 1 bean(s) ===
[INFO] [!!!] H-Bvroair5uMN67Jf7Myxy4Lxo8 -> 1 bean(s):
[INFO] [!!!] - CLASS bean [types=[java.lang.Object, cz.ladicek.quarkus.tiny.conprop.MyReqData], qualifiers=[@Default, @Any], target=cz.ladicek.quarkus.tiny.conprop.MyReqData]
[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 545ms

The [!!!] part is interesting. It should contain at least one line that says [some bean ID] -> 2 bean(s), or more than 2. Could you please paste here those lines?

I'm afraid we don't have a better way to diagnose the problem. If you hit any roadblocks, feel free to ping me on the Quarkus Zulip.

@gsmet
Copy link
Member

gsmet commented Dec 5, 2023

then switch your project to Quarkus 999-SNAPSHOT

when doing so, make sure you also update the groupId of the BOM and the plugin from io.quarkus.platform to io.quarkus.

@mkouba
Copy link
Contributor

mkouba commented Dec 5, 2023

I added some debug printing that I believe would be useful for diagnosing this issue in my branch here: ...

I think that we should actually fail the build if multiple beans of the same identifier are found (for any reason) because it would break a lot of things anyway. Currently we only detect synthetic beans with non-unique identifiers.

For the record, a bean identifier for class-based beans is sha1 of toString() (which includes bean types + qualifiers + target class FQCN + target of declaringBean for producers) + deployment id.

@Ladicek
Copy link
Contributor

Ladicek commented Dec 5, 2023

I think that we should actually fail the build if multiple beans of the same identifier are found

That's a good point. If you don't beat me to it, I'll submit a PR tomorrow.

@psini
Copy link
Author

psini commented Dec 6, 2023

Hi all i did as you asked but what i get is quite obscure to me, it seams the same class, but i checked and i'm sure there is only one copy of it, so it's not duplicated:
[INFO] [!!!] 9oN_LOho_5UeSuctOqg1jQwvIzY -> 2 bean(s):
[INFO] [!!!] - CLASS bean [types=[mypackage.util.IClearable, mypackage.context.threadlocal.ApiContextUtil, java.lang.Object], qualifiers=[@default, @Any], target=mypackage.context.threadlocal.ApiContextUtil]
[INFO] [!!!] - CLASS bean [types=[mypackage.util.IClearable, mypackage.context.threadlocal.ApiContextUtil, java.lang.Object], qualifiers=[@default, @Any], target=mypackage.context.threadlocal.ApiContextUtil]

How i can help you ? What's more it seams random because mypackage.util.IClearable is an interface and i have other 4 class that implements and another one has the same issue , instead the other two are clean.

Let me know

@Ladicek
Copy link
Contributor

Ladicek commented Dec 7, 2023

IClearable is not an issue here, that's one of the bean types of the ApiContextUtil bean. For some reason, that bean exists twice.

Since you're sure that there's only one copy of the mypackage.context.threadlocal.ApiContextUtil class, we'll have to figure out why is the class discovered twice. That really shouldn't happen.

I have to do the same thing for #37565, so I'll try to prepare some more debug logging.

@psini
Copy link
Author

psini commented Dec 7, 2023

Yes i'm sure that the class is inside a common lib that's imported from all the other and doesn't exist anywhere else, it seams that is discovered twice but i don't know why .

@Ladicek
Copy link
Contributor

Ladicek commented Dec 7, 2023

Could you show the source code of that class? There might be something (most likely an annotation) that causes some Quarkus extension to register the class as an "additional" bean.

@psini
Copy link
Author

psini commented Dec 7, 2023

It's trivial it starts as below and don't use any annotation inside it. We only manage a ThreadLocal variable
@ApplicationScoped
public final class ApiContextUtil implements IClearable {

@Ladicek
Copy link
Contributor

Ladicek commented Dec 7, 2023

OK, thanks. That class is certainly subject to bytecode transformation, as we need to make it non-final (to be able to generate a client proxy). Just out of curiosity, could you try removing the final keyword? I'm not holding my breath, but it would be interesting if that fixed the issue.

@Ladicek
Copy link
Contributor

Ladicek commented Dec 7, 2023

Also, we'll probably just have to adjust type discovery to skip already seen classes. There are many different reasons why one class can occur in the bean archive index multiple times and it isn't really practical to get all the "bean contributors" to agree.

@Ladicek
Copy link
Contributor

Ladicek commented Dec 7, 2023

@psini Could you also please check if your build log contains this message?

Detected a split package usage which is considered a bad practice and should be avoided. Following packages were detected in multiple archives:

If so, that might point to a reason.

@Ladicek
Copy link
Contributor

Ladicek commented Dec 7, 2023

we'll probably just have to adjust type discovery to skip already seen classes

I did this in #37565, so that will also fix this issue.

EDIT: and of course, the comment above is wrong in one technical aspect. This doesn't adjust type discovery, this adjusts bean discovery. Probably not interesting for most readers, but I felt compelled to correct myself :-)

@quarkus-bot quarkus-bot bot added this to the 3.7 - main milestone Dec 7, 2023
@psini
Copy link
Author

psini commented Dec 7, 2023

I compiled the main and tested it. It works flawless . Is there any chance that will be back ported to 3.6.x ?

@gsmet gsmet modified the milestones: 3.7 - main, 3.6.2 Dec 11, 2023
benkard pushed a commit to benkard/mulkcms2 that referenced this issue Dec 23, 2023
This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [flow-bin](https://github.com/flowtype/flow-bin) ([changelog](https://github.com/facebook/flow/blob/master/Changelog.md)) | devDependencies | minor | [`^0.223.0` -> `^0.224.0`](https://renovatebot.com/diffs/npm/flow-bin/0.223.0/0.224.0) |
| [org.postgresql:postgresql](https://jdbc.postgresql.org) ([source](https://github.com/pgjdbc/pgjdbc)) | build | patch | `42.7.0` -> `42.7.1` |
| [net.java.dev.jna:jna](https://github.com/java-native-access/jna) | compile | minor | `5.13.0` -> `5.14.0` |
| [org.hibernate.orm:hibernate-envers](https://hibernate.org/orm) ([source](https://github.com/hibernate/hibernate-orm)) | build | patch | `6.4.0.Final` -> `6.4.1.Final` |
| [org.hibernate.orm:hibernate-core](https://hibernate.org/orm) ([source](https://github.com/hibernate/hibernate-orm)) | build | patch | `6.4.0.Final` -> `6.4.1.Final` |
| [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) | build | patch | `2.41.0` -> `2.41.1` |
| [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | patch | `3.6.0` -> `3.6.3` |
| [io.quarkus:quarkus-universe-bom](https://github.com/quarkusio/quarkus-platform) | import | patch | `3.6.0` -> `3.6.3` |

---

### Release Notes

<details>
<summary>flowtype/flow-bin</summary>

### [`v0.224.0`](flow/flow-bin@e730887...e6104a1)

[Compare Source](flow/flow-bin@e730887...e6104a1)

### [`v0.223.3`](flow/flow-bin@6e1e3f7...e730887)

[Compare Source](flow/flow-bin@6e1e3f7...e730887)

### [`v0.223.2`](flow/flow-bin@5bb7bcf...6e1e3f7)

[Compare Source](flow/flow-bin@5bb7bcf...6e1e3f7)

</details>

<details>
<summary>pgjdbc/pgjdbc</summary>

### [`v42.7.1`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#&#8203;4271-2023-12-06-083400--0500)

##### Changed

-   perf: improve performance of PreparedStatement.setBlob, BlobInputStream, and BlobOutputStream with dynamic buffer sizing [MR #&#8203;3044](pgjdbc/pgjdbc#3044)

##### Fixed

-   fix: Apply connectTimeout before SSLSocket.startHandshake to avoid infinite wait in case the connection is broken [MR #&#8203;3040](pgjdbc/pgjdbc#3040)
-   fix: support waffle-jna 2.x and 3.x by using reflective approach for ManagedSecBufferDesc [MR #&#8203;2720](pgjdbc/pgjdbc#2720) Fixes [Issue #&#8203;2690](pgjdbc/pgjdbc#2720).
-   fix: NoSuchMethodError on ByteBuffer#position When Running on Java 8  when accessing arrays, fixes [Issue #&#8203;3014](pgjdbc/pgjdbc#3014)
-   Revert "[MR #&#8203;2925](pgjdbc/pgjdbc#2925) Use canonical DateStyle name" [MR #&#8203;3035](pgjdbc/pgjdbc#3035)
    Fixes  [Issue #&#8203;3008](pgjdbc/pgjdbc#3008)
-   Revert "[MR ##&#8203;2973](pgjdbc/pgjdbc#2973) feat: support SET statements combining with other queries with semicolon in PreparedStatement" [MR #&#8203;3010](pgjdbc/pgjdbc#3010)
    Fixes [Issue #&#8203;3007](pgjdbc/pgjdbc#3007)
-   fix: avoid timezone conversions when sending LocalDateTime to the database [#&#8203;2852](pgjdbc/pgjdbc#3010)  Fixes [Issue #&#8203;1390](pgjdbc/pgjdbc#1390)
    ,[Issue #&#8203;2850](pgjdbc/pgjdbc#2850)
    Closes \[Issue [#&#8203;1391](pgjdbc/pgjdbc#1391)

</details>

<details>
<summary>java-native-access/jna</summary>

### [`v5.14.0`](https://github.com/java-native-access/jna/blob/HEAD/CHANGES.md#Release-5140)

[Compare Source](java-native-access/jna@5.13.0...5.14.0)

\==============

## Features

-   [#&#8203;1556](java-native-access/jna#1556): Add `SetJob`, `SetPrinter` to `c.s.j.p.w.Winspool` - [@&#8203;tresf](https://github.com/tresf).
-   [#&#8203;1534](java-native-access/jna#1534): Add `GetMethod`, `Put`, `SpawnInstance` to `c.s.j.p.win32.COM.WbemCli#IWbemClassObject` and `ExecMethod` to `c.s.j.p.win32.COM.WbemCli#IWbemServices` - [@&#8203;faddom](https://github.com/faddom).
-   [#&#8203;1544](java-native-access/jna#1544): Add `GetPriorityClass`, `SetPriorityClass`, `GetThreadPriority`, `SetThreadPriority` and associated constants to `c.s.j.p.win32.Kernel32` - [@&#8203;dEajL3kA](https://github.com/dEajL3kA).
-   [#&#8203;1548](java-native-access/jna#1548): Make interface `c.s.j.p.mac.XAttr public` - [@&#8203;matthiasblaesing](https://github.com/matthiasblaesing).
-   [#&#8203;1551](java-native-access/jna#1551): Add `c.s.j.p.bsd.ExtAttr` and `c.s.j.p.bsd.ExtAttrUtil` to wrap BSD [\<sys/extattr.h>](https://man.freebsd.org/cgi/man.cgi?query=extattr\&sektion=2) system calls. [@&#8203;rednoah](https://github.com/rednoah).
-   [#&#8203;1517](java-native-access/jna#1517): Add missing `O_*` (e.g. `O_APPEND`, `O_SYNC`, `O_DIRECT`, ...) to `c.s.j.p.linux.Fcntl` - [@&#8203;matthiasblaesing](https://github.com/matthiasblaesing).
-   [#&#8203;1521](java-native-access/jna#1521): Shutdown CleanerThread once the last cleanable is removed - [@&#8203;matthiasblaesing](https://github.com/matthiasblaesing).
-   [#&#8203;1557](java-native-access/jna#1557): Build linux-riscv64 on Ubuntu focal to improve compatibility with older glibc versions - [@&#8203;matthiasblaesing](https://github.com/matthiasblaesing).

## Bug Fixes

-   [#&#8203;1501](java-native-access/jna#1501): `Library.OPTION_STRING_ENCODING` is ignore for string arguments function calls - [@&#8203;matthiasblaesing](https://github.com/matthiasblaesing).
-   [#&#8203;1504](java-native-access/jna#1504): Increase maximum supported fixed args on varargs calls from 3 to 255 - [@&#8203;andrew-nowak](https://github.com/andrew-nowak).
-   [#&#8203;1545](java-native-access/jna#1545): Fix Java 6 incompatibility in `c.s.j.p.win32.Kerne32Util` and `c.s.j.p.win32.DBT` - [@&#8203;matthiasblaesing](https://github.com/matthiasblaesing).

## Important Changes

-   The interfaces between Java and native code have changed, so `libjnidispatch`
    must be rebuilt to be compatible with this release.
-   Release drops support for JDKs 6 + 7, so you'll need at least JDK 8 to
    update to use this version.

</details>

<details>
<summary>hibernate/hibernate-orm</summary>

### [`v6.4.1.Final`](https://github.com/hibernate/hibernate-orm/blob/HEAD/changelog.txt#Changes-in-641Final-December-15-2023)

[Compare Source](hibernate/hibernate-orm@6.4.0...6.4.1)

https://hibernate.atlassian.net/projects/HHH/versions/32216

\*\* Bug
\* \[HHH-17570] - Wrong name provided when checking Oracle autonomous JSON database
\* \[HHH-17561] - NullPointerException at OracleServerConfiguration class
\* \[HHH-17555] - equals hashcode combined with naturalId
\* \[HHH-17553] - java.util.ConcurrentModificationException: null when loading an entity
\* \[HHH-17551] - Gradle Enterprise improvements
\* \[HHH-17528] - Explicit selection of an [@&#8203;Embeddable](https://github.com/Embeddable) property containing associated collections doesn't work
\* \[HHH-17525] - StackOverflowError when using [@&#8203;ManyToMany](https://github.com/ManyToMany) with composite id
\* \[HHH-17520] - Schema creation fails with interval second data type on PostgreSQL
\* \[HHH-17519] - Initializing a lazy association with a non aggregate id causes a NPE
\* \[HHH-17515] - DynamicInstantiationResult wrong java type constructor selected
\* \[HHH-17499] - SemanticException when querying embedded id entity with positional parameter
\* \[HHH-17494] - Metamodel generator produces an uncompilable class when an EntityGraph name contains a comma
\* \[HHH-17491] - UnknownEntityTypeException thrown when multiple subclasses define an attribute with the same name and one is a MappedSuperclass
\* \[HHH-17489] - ConcurrentModificationException after upgrading to 6.4.0
\* \[HHH-17466] - Exception on query: Could not convert 'java.util.Locale' to 'java.util.Locale' using 'org.hibernate.type.descriptor.java.LocaleJavaType' to wrap
\* \[HHH-17464] - 6.4.0 regression: NullPointerException in DefaultEvictEventListener#onEvict
\* \[HHH-17456] - java.util.UnknownFormatConversionException thrown why logging set to TRACE
\* \[HHH-17445] - Subquery correlated path expressions do not work with nullness predicates
\* \[HHH-17418] - Bytecode enchanced read accessor for a final field uses "missing" writer method
\* \[HHH-17416] - Using tuples in WHERE clause throws SemanticException
\* \[HHH-17413] - Invalid SQL with TYPE() function and CASE expression in SELECT clause
\* \[HHH-17408] - Unproxying leads to uninitialized one-to-one associations in some cases involving polymorphism
\* \[HHH-17407] - AssertionError when using JpaEntityJoin with correlated subqery if criteria copy tree is enabled
\* \[HHH-17405] - Cannot resolve path of generic mapped-superclass association path
\* \[HHH-17402] - UnknownEntityTypeException: Unable to locate persister - when comparing generic interface ToOne attribute to parameter
\* \[HHH-17397] - Count with right join returns count on the left entity although requested by the right one
\* \[HHH-17395] - Refresh with PESSIMISTIC_WRITE ignored for lazy loaded entity
\* \[HHH-17393] - Incorrect return type for List attribute, wrap in additional list
\* \[HHH-17392] - UnsupportedOperationException when using row_number() window function without top level GROUP BY
\* \[HHH-17391] - AssertionError when using row_number() window function with ORDER BY
\* \[HHH-17387] - Can't use EAGER ManyToOne on parent abstract class of joined table entity
\* \[HHH-17379] - Right join does not return records from the right table if there is condition on ID field and there's no matching record in the from clause
\* \[HHH-17359] - Query Cache contains null values for entity associations when entity was already loaded
\* \[HHH-17334] - Duplicated columns when updating indexed [@&#8203;ElementCollection](https://github.com/ElementCollection) with non updatable fields
\* \[HHH-17293] - Schema validation fails on postgres interval seconds type
\* \[HHH-17280] - UnknownTableReferenceException in subquery selecting embeddable foreign key
\* \[HHH-16967] - Missing join on inheritance parent table to validate [@&#8203;Where](https://github.com/Where) condition
\* \[HHH-16756] - orphanRemoval does not work when bytecode enhancement is enabled
\* \[HHH-16306] - CountExpressionTest.testCountDistinctTuple fails on Sybase
\* \[HHH-16100] - Dynamic-map entity mode does not register a column for one-to-one associations
\* \[HHH-1645] - refresh with LockMode on an unitialized proxy does not work

\*\* Improvement
\* \[HHH-17554] - No join on the table of the parent class with JOINED inheritance strategy when the select not contains a column used in [@&#8203;Where](https://github.com/Where) or [@&#8203;SQLRestriction](https://github.com/SQLRestriction)
\* \[HHH-16809] - Add JavaType#createArray

\*\* Task
\* \[HHH-17565] - Add testing for JDK 22-ea
\* \[HHH-17546] - Update Cockroach CI testing to 23.1.12
\* \[HHH-17545] - Update SAP HANA JDBC driver to 2.19.11
\* \[HHH-17544] - Update SAP HANA CI testing to 2.00.072.00.20231123.1
\* \[HHH-17543] - Update DB2 CI testing to 11.5.9.0
\* \[HHH-17542] - Update DB2 JDBC driver to 11.5.9.0
\* \[HHH-17541] - Update SQL Server JDBC driver to 12.4.2

</details>

<details>
<summary>quarkusio/quarkus</summary>

### [`v3.6.3`](https://github.com/quarkusio/quarkus/releases/tag/3.6.3)

[Compare Source](quarkusio/quarkus@3.6.2...3.6.3)

##### Complete changelog

-   [#&#8203;37690](quarkusio/quarkus#37690) - Regression in 3.6.2: ConfigDiagnostic `NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "s" is null`
-   [#&#8203;37688](quarkusio/quarkus#37688) - Do not use build cache when releasing
-   [#&#8203;37669](quarkusio/quarkus#37669) - OIDC: Fix DEV UI startup when OIDC or Keycloak Dev Services is disabled
-   [#&#8203;37667](quarkusio/quarkus#37667) - Disabling of Dev Services for Keycloak leads to startup error
-   [#&#8203;37651](quarkusio/quarkus#37651) - Fix GraalVM version checker in order to accept other implementations
-   [#&#8203;37563](quarkusio/quarkus#37563) - Consistent file URI for folders and jars
-   [#&#8203;37559](quarkusio/quarkus#37559) - Quarkus throws NPE when trying to match unknown config files

### [`v3.6.2`](https://github.com/quarkusio/quarkus/releases/tag/3.6.2)

[Compare Source](quarkusio/quarkus@3.6.1...3.6.2)

##### Complete changelog

-   [#&#8203;37686](quarkusio/quarkus#37686) - Use standard URL when updating the website
-   [#&#8203;37653](quarkusio/quarkus#37653) - Improve error message in REST Client when no matching readers found
-   [#&#8203;37640](quarkusio/quarkus#37640) - Handle expireAfterWrite properly in the redis-cache config
-   [#&#8203;37639](quarkusio/quarkus#37639) - Logging docs include build time config reference
-   [#&#8203;37638](quarkusio/quarkus#37638) - Add scope tag to all injected MP Metrics
-   [#&#8203;37623](quarkusio/quarkus#37623) - Add quarkus-funqy-amazon-lambda-deployment to the quarkus-bom
-   [#&#8203;37617](quarkusio/quarkus#37617) - SmallRye GraphQL 2.6.1
-   [#&#8203;37611](quarkusio/quarkus#37611) - Fix configuration of custom port for Elasticsearch dev services
-   [#&#8203;37610](quarkusio/quarkus#37610) - Elasticsearch devservice port incorrect binding
-   [#&#8203;37605](quarkusio/quarkus#37605) - Fix type in HeartbeatFilter example of rest-client-reactive doc
-   [#&#8203;37599](quarkusio/quarkus#37599) - Bump kafka3.version from 3.6.0 to 3.6.1
-   [#&#8203;37594](quarkusio/quarkus#37594) - Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.6.1 to 1.6.2
-   [#&#8203;37590](quarkusio/quarkus#37590) - Microprofile Metric Missing "Scope" Tag Only When Using Constructor Injection
-   [#&#8203;37588](quarkusio/quarkus#37588) - Update the import.cypher script to use newer syntax
-   [#&#8203;37581](quarkusio/quarkus#37581) - Support using commas to add extensions with CLI
-   [#&#8203;37570](quarkusio/quarkus#37570) - Prevent concurrently running Jacoco ReportCreators to avoid report corruption
-   [#&#8203;37565](quarkusio/quarkus#37565) - ArC: prevent duplicate bean discovery & detect duplicate bean identifiers
-   [#&#8203;37564](quarkusio/quarkus#37564) - Invalid documentation for 'quarkus extension add'
-   [#&#8203;37557](quarkusio/quarkus#37557) - Make docs/sync-web-site.sh recoverable
-   [#&#8203;37553](quarkusio/quarkus#37553) - Register OpenAPI custom filters for reflection
-   [#&#8203;37549](quarkusio/quarkus#37549) - Bump commons-io:commons-io from 2.15.0 to 2.15.1
-   [#&#8203;37546](quarkusio/quarkus#37546) - Bump io.quarkus:quarkus-platform-bom-maven-plugin from 0.0.99 to 0.0.100
-   [#&#8203;37545](quarkusio/quarkus#37545) - Bump org.junit.jupiter:junit-jupiter from 5.10.0 to 5.10.1
-   [#&#8203;37536](quarkusio/quarkus#37536) - Fix != expression in `@PreAuthorize` check
-   [#&#8203;37535](quarkusio/quarkus#37535) - Fix Snappy note about native
-   [#&#8203;37526](quarkusio/quarkus#37526) - Spring security annotatiton PreAuthorize process equals and not equals in the same way
-   [#&#8203;37520](quarkusio/quarkus#37520) - Properly match unknown config files for Windows
-   [#&#8203;37513](quarkusio/quarkus#37513) - Save pathParamValues encoded and perform decoding when requested
-   [#&#8203;37505](quarkusio/quarkus#37505) - Bump org.jboss.logmanager:log4j2-jboss-logmanager from 1.1.1.Final to 1.1.2.Final
-   [#&#8203;37496](quarkusio/quarkus#37496) - Quarkus 3.6.0 generate wrong jacoco xml
-   [#&#8203;37493](quarkusio/quarkus#37493) - upgrading from quarkus 3.5.3 to 3.6.0  java.lang.IllegalArgumentException: A case block for the string value already exist
-   [#&#8203;37479](quarkusio/quarkus#37479) - Redis Cache ttl default value invalid setting
-   [#&#8203;37357](quarkusio/quarkus#37357) - Runtime OpenAPI filters are not registered for reflection
-   [#&#8203;37298](quarkusio/quarkus#37298) - Bump Keycloak version to 23.0.0
-   [#&#8203;37187](quarkusio/quarkus#37187) - Bump org.apache.commons:commons-compress from 1.24.0 to 1.25.0
-   [#&#8203;37129](quarkusio/quarkus#37129) - Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.6.0 to 1.6.1
-   [#&#8203;37128](quarkusio/quarkus#37128) - Bump org.junit:junit-bom from 5.10.0 to 5.10.1
-   [#&#8203;37035](quarkusio/quarkus#37035) - Register methods of RESTeasy reactive parameter containers for reflection
-   [#&#8203;36986](quarkusio/quarkus#36986) - Native not index method with SSE and throw NoSuchMethodException
-   [#&#8203;36813](quarkusio/quarkus#36813) - config-yaml warning - unrecognized configuration file on Windows
-   [#&#8203;36773](quarkusio/quarkus#36773) - "Unrecognized configuration file" when using YAML
-   [#&#8203;35960](quarkusio/quarkus#35960) - PathParam URL encoded in quarkus-resteasy-reactive since quarkus 3.2.x

### [`v3.6.1`](https://github.com/quarkusio/quarkus/releases/tag/3.6.1)

[Compare Source](quarkusio/quarkus@3.6.0...3.6.1)

##### Complete changelog

-   [#&#8203;37486](quarkusio/quarkus#37486) - Revert "Unlist quarkus-resteasy-qute and quarkus-resteasy-reactive-qute"
-   [#&#8203;37478](quarkusio/quarkus#37478) - Qute resteasy change in 3.6.0
-   [#&#8203;37454](quarkusio/quarkus#37454) - Config: detect injected config value mismatch for missing values
-   [#&#8203;37453](quarkusio/quarkus#37453) - Fix Panache bytecode enhancement for `@Embeddable` records
-   [#&#8203;37449](quarkusio/quarkus#37449) - Update Apache Maven to 3.9.6
-   [#&#8203;37447](quarkusio/quarkus#37447) - Add Content-Range header to 206 Partial Content file response
-   [#&#8203;37444](quarkusio/quarkus#37444) - Injecting ConfigProperty of type Optional\<List<String>> not working in the native mode
-   [#&#8203;37436](quarkusio/quarkus#37436) - Respect comma escapes in property value for `@RolesAllowed.`
-   [#&#8203;37428](quarkusio/quarkus#37428) - Fix various minor issues in quarkus update
-   [#&#8203;37426](quarkusio/quarkus#37426) - Fix typo configMapRefKey -> configMapKeyRef
-   [#&#8203;37421](quarkusio/quarkus#37421) - Scheduler: register ApplicationNotRunning as bean even if quartz is used
-   [#&#8203;37417](quarkusio/quarkus#37417) - Build fails when using the Quartz extension and `@Scheduled`(..., skipExecutionIf = Scheduled.ApplicationNotRunning.class)
-   [#&#8203;37415](quarkusio/quarkus#37415) - Make Truffle from GraalVM 23.1 work in all Quarkus modes
-   [#&#8203;37401](quarkusio/quarkus#37401) - Print correct profiles in native image
-   [#&#8203;37400](quarkusio/quarkus#37400) - Improve reliability when downloading builder images from Quay.io
-   [#&#8203;37398](quarkusio/quarkus#37398) - Revert "Build cache - Upload quarkus-ide-launcher-999-SNAPSHOT.jar"
-   [#&#8203;37395](quarkusio/quarkus#37395) - Update Gradle to 8.5
-   [#&#8203;37393](quarkusio/quarkus#37393) - Disable new Http2RSTFloodProtectionConfigTest on Windows
-   [#&#8203;37392](quarkusio/quarkus#37392) - Update gradle to 8.5 and backport if possible to finish Java 21 dependencies
-   [#&#8203;37384](quarkusio/quarkus#37384) - Stop disabling unsafe in netty at native-executable runtime
-   [#&#8203;37382](quarkusio/quarkus#37382) - Update MAX_LTS_SUPPORTED_BY_KOTLIN to 21
-   [#&#8203;37367](quarkusio/quarkus#37367) - Documentation: security auth mechanism guide must also list runtime form auth properties alongside build-time ones
-   [#&#8203;37366](quarkusio/quarkus#37366) - Documentation: Fix OIDC credentials reference to secret key
-   [#&#8203;37364](quarkusio/quarkus#37364) - Improve Docker Desktop detection
-   [#&#8203;37361](quarkusio/quarkus#37361) - Do not fail the request in OidcClient filters if OidcClient is disabled
-   [#&#8203;37360](quarkusio/quarkus#37360) - Disable OidcClientFilter at runtime for simpler application testing
-   [#&#8203;37359](quarkusio/quarkus#37359) - Fix incorrect log dependency
-   [#&#8203;37354](quarkusio/quarkus#37354) - Update Boucycastle to 1.77 and Boucycastle FIPS to 1.0.2.4
-   [#&#8203;37351](quarkusio/quarkus#37351) - Upgrade to Jandex 3.1.6
-   [#&#8203;37350](quarkusio/quarkus#37350) - Unlist quarkus-resteasy-reactive-qute and quarkus-resteasy-qute
-   [#&#8203;37347](quarkusio/quarkus#37347) - Runtime (re)initialize Netty's PlatformDependent classes
-   [#&#8203;37318](quarkusio/quarkus#37318) - Use batch mode for update-version.sh
-   [#&#8203;37317](quarkusio/quarkus#37317) - Avoid asking for GPG passphrase on CI
-   [#&#8203;37314](quarkusio/quarkus#37314) - Fix deprecated dev-v1 url with dev-ui in a few places
-   [#&#8203;37300](quarkusio/quarkus#37300) - Prepare docs/sync-web-site.sh for automated releases
-   [#&#8203;37294](quarkusio/quarkus#37294) - Fix the major version of Java 21
-   [#&#8203;37292](quarkusio/quarkus#37292) - Bump testcontainers to 1.19.3 and use docker-java-bom
-   [#&#8203;37291](quarkusio/quarkus#37291) - Bump org.jetbrains.kotlin:kotlin-gradle-plugin-api from 1.9.20 to 1.9.21 in /devtools/gradle
-   [#&#8203;37280](quarkusio/quarkus#37280) - Bump Microsoft SQL Server JDBC driver to 12.4.2
-   [#&#8203;37279](quarkusio/quarkus#37279) - Bump Microsoft SQL Server JDBC driver to 12.4.2
-   [#&#8203;37271](quarkusio/quarkus#37271) - Docs: add keywords to Vert.x guides
-   [#&#8203;37270](quarkusio/quarkus#37270) - Vert.x: report exception for blocking message consumer methods
-   [#&#8203;37268](quarkusio/quarkus#37268) - Reactive REST Client: check for ClientRequestFilter when skipping `@Provider` auto-discovery
-   [#&#8203;37252](quarkusio/quarkus#37252) - Use the default tenant resolver if the custom one does not resolve a tenant
-   [#&#8203;37251](quarkusio/quarkus#37251) - Add a test showing how OIDC ID token can be propagated
-   [#&#8203;37247](quarkusio/quarkus#37247) - Update kindcontainer to 1.4.4
-   [#&#8203;37244](quarkusio/quarkus#37244) - Always execute a JPA password action
-   [#&#8203;37228](quarkusio/quarkus#37228) - Add classes from additional JPA model build items to pre-generate proxies
-   [#&#8203;37224](quarkusio/quarkus#37224) - Qute: dev mode - debug a problem with no-restart-template
-   [#&#8203;37222](quarkusio/quarkus#37222) - RuntimeException in vertx is silently swallowed for blocking ConsumeEvents
-   [#&#8203;37177](quarkusio/quarkus#37177) - QUARKUS_MROFILE=dev and '-Dquarkus.profile=dev' not working for native image
-   [#&#8203;37108](quarkusio/quarkus#37108) - Warning about build time generated proxy for entity OutboxEvent in Hibernate Search
-   [#&#8203;36892](quarkusio/quarkus#36892) - Update Kotlin to version 1.9.21, Mockito to 5.7.0
-   [#&#8203;36747](quarkusio/quarkus#36747) - NoSuchMethodException when reading `@Embeddable` record
-   [#&#8203;36735](quarkusio/quarkus#36735) - Failure to bump BouncyCastle FIPS version to 1.0.2.4 due to a native build failure
-   [#&#8203;36242](quarkusio/quarkus#36242) - Quarkus cannot load Truffle/polyglot languages with the custom class loader.
-   [#&#8203;17839](quarkusio/quarkus#17839) - Invalid memory configuration for netty maxDirectMemory in native image

</details>

<details>
<summary>quarkusio/quarkus-platform</summary>

### [`v3.6.3`](quarkusio/quarkus-platform@3.6.2...3.6.3)

[Compare Source](quarkusio/quarkus-platform@3.6.2...3.6.3)

### [`v3.6.2`](quarkusio/quarkus-platform@3.6.1...3.6.2)

[Compare Source](quarkusio/quarkus-platform@3.6.1...3.6.2)

### [`v3.6.1`](quarkusio/quarkus-platform@3.6.0...3.6.1)

[Compare Source](quarkusio/quarkus-platform@3.6.0...3.6.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This MR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMCJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/arc Issue related to ARC (dependency injection) kind/bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants