[EXTDAM-236] Cloud: Error in ExternalDamSearchResultSupplier when magnolia-dam-jcr is excluded Created: 24/Feb/21 Updated: 17/Mar/21 Resolved: 17/Mar/21 |
|
| Status: | Closed |
| Project: | External DAMs |
| Component/s: | core |
| Affects Version/s: | 1.0.5 |
| Fix Version/s: | 1.2.0 |
| Type: | Improvement | Priority: | Neutral |
| Reporter: | Jesus Alonso | Assignee: | Jesus Alonso |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Template: |
|
| Acceptance criteria: |
Empty
|
| Task DoD: |
[X]*
Doc/release notes changes? Comment present?
[X]*
Downstream builds green?
[X]*
Solution information and context easily available?
[X]*
Tests
[X]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
| Epic Link: | Imaging and External DAM |
| Sprint: | Cloud Service 2, Cloud Service 3 |
| Story Points: | 2 |
| Description |
|
When the magnolia-dam-jcr module is not included in the webapp, there is an exception using ExternalDamSearchResultSupplier (a.k.a. using periscope) java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: info/magnolia/dam/jcr/JcrAssetProviderjava.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: info/magnolia/dam/jcr/JcrAssetProvider at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_231] at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[?:1.8.0_231] at java.util.concurrent.CompletableFuture$AsyncSupply.run$$$capture(CompletableFuture.java:1592) ~[?:1.8.0_231] at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java) ~[?:1.8.0_231] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_231] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_231] at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:652) ~[?:1.8.0_231] at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:649) ~[?:1.8.0_231] at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_231] at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:649) ~[?:1.8.0_231] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_231]Caused by: java.lang.NoClassDefFoundError: info/magnolia/dam/jcr/JcrAssetProvider at info.magnolia.external.dam.search.categories.ExternalDamSearchResultSupplier.lambda$search$1(ExternalDamSearchResultSupplier.java:66) ~[magnolia-external-dam-1.0.5-cloud-SNAPSHOT.jar:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267) ~[?:1.8.0_231] at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1359) ~[?:1.8.0_231] at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) ~[?:1.8.0_231] at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499) ~[?:1.8.0_231] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486) ~[?:1.8.0_231] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_231] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_231] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_231] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_231] at info.magnolia.periscope.Periscope.fetchSupplierAwareSearchResults(Periscope.java:137) ~[magnolia-periscope-core-1.2.3.jar:?] at info.magnolia.periscope.Periscope.lambda$null$0(Periscope.java:123) ~[magnolia-periscope-core-1.2.3.jar:?] at info.magnolia.context.AsynchronousContext$OperationFactory.lambda$wrap$0(AsynchronousContext.java:122) ~[magnolia-core-6.3-cloud-SNAPSHOT.jar:?] at info.magnolia.periscope.Periscope.lambda$search$1(Periscope.java:123) ~[magnolia-periscope-core-1.2.3.jar:?] The reason is ExternalDamSearchResultSupplier has this code @Override public Stream<SearchResult> search(SearchQuery query) throws SearchException { return Lists.newArrayList(registry.getAllProviders()).stream() .flatMap(provider -> { if (provider instanceof JcrAssetProvider) { return null; } AC:
|