Confluence 9.1 release is available now

We are running in an issue with REST services that is rendered in the log files as this (essence: HK2 service reification failed for ...):

I have snipped the stack trace due to “An error occurred: Body is limited to 52000 characters; you entered 307152.”

confluence-1  | WARNING: HK2 service reification failed for [com.addonengine.addons.analytics.rest.filter.UserHasPermissionToViewSpaceAnalyticsFilter] with an exception:                                                                                                                                                                                                                                                                                                          
confluence-1  | MultiException stack 1 of 2                                                                                                                                                                                                                                                                                                                                                                                                                                        
confluence-1  | java.lang.NoSuchMethodException: Could not find a suitable constructor in com.addonengine.addons.analytics.rest.filter.UserHasPermissionToViewSpaceAnalyticsFilter class.
confluence-1  |         at org.glassfish.jersey.inject.hk2.JerseyClassAnalyzer.getConstructor(JerseyClassAnalyzer.java:168)                                                                                                                                                                                                                                                                                                                                                        
confluence-1  |         at org.jvnet.hk2.internal.Utilities.getConstructor(Utilities.java:156)                                                                                                                                                                                                                                                                                                                                                                                     
confluence-1  |         at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:105)
confluence-1  |         at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:156)                                                                                                                                                                                                                                                                                                                                                                                   
confluence-1  |         at org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:716)                                                                                                                                                                                                                                                                                                                                                                        
confluence-1  |         at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:670)                                                                                                                                                                                                                                                                                                                                                                                
confluence-1  |         at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:442)
confluence-1  |         at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2300)                                                                                                                                                                                                                                                                                                                                                                          
confluence-1  |         at org.jvnet.hk2.internal.ServiceLocatorImpl.access$1200(ServiceLocatorImpl.java:106)                                                                                                                                                                                                                                                                                                                                                                      
confluence-1  |         at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1385)
confluence-1  |         at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1380)                                                                                                                                                                                                                                                                                                                                                                      
confluence-1  |         at org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)                                                                                                                                                                                                                                                                                                                                                          
confluence-1  |         at 

<... snip ...>

confluence-1  |         at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)                                                                                                                                                                                                                                                                                                                                                                         
confluence-1  |         at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
confluence-1  |         at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)                                                                                                                                                                                                                                                                                                                                                               
confluence-1  |         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)                                                                                                                                                                                                                                                                                                                                                                      
confluence-1  |         at java.base/java.lang.Thread.run(Thread.java:840)
confluence-1  | MultiException stack 2 of 2                                                                                                                                                                                                                                                                                                                                                                                                                                        
confluence-1  | java.lang.IllegalArgumentException: Errors were discovered while reifying SystemDescriptor(                                                                                                                                                                                                                                                                                                                                                                        
confluence-1  |         implementation=com.addonengine.addons.analytics.rest.filter.UserHasPermissionToViewSpaceAnalyticsFilter
confluence-1  |         contracts={javax.ws.rs.container.ContainerRequestFilter,javax.ws.rs.container.ContainerResponseFilter}                                                                                                                                                                                                                                                                                                                                                     
confluence-1  |         scope=javax.inject.Singleton                                                                                                                                                                                                                                                                                                                                                                                                                               
confluence-1  |         qualifiers={org.glassfish.jersey.internal.inject.Custom}
confluence-1  |         descriptorType=CLASS                                                                                                                                                                                                                                                                                                                                                                                                                                       
confluence-1  |         descriptorVisibility=NORMAL                                                                                                                                                                                                                                                                                                                                                                                                                                
confluence-1  |         metadata=
confluence-1  |         rank=0                                                                                                                                                                                                                                                                                                                                                                                                                                                     
confluence-1  |         loader=null                                                                                                                                                                                                                                                                                                                                                                                                                                                
confluence-1  |         proxiable=null
confluence-1  |         proxyForSameScope=null                                                                                                                                                                                                                                                                                                                                                                                                                                     
confluence-1  |         analysisName=null                                                                                                                                                                                                                                                                                                                                                                                                                                          
confluence-1  |         id=220
confluence-1  |         locatorId=41                                                                                                                                                                                                                                                                                                                                                                                                                                               
confluence-1  |         identityHashCode=881808534                                                                                                                                                                                                                                                                                                                                                                                                                                 
confluence-1  |         reified=false)
confluence-1  |         at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:681)                                                                                                                                                                                                                                                                                                                                                                                
confluence-1  |         at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:442)                                                                                                                                                                                                                                                                                                                                                                  
confluence-1  |         at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2300)

<... snip ...>

confluence-1  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)                                                                                                                                                                                                                                                                                                                                                                            
confluence-1  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
confluence-1  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)                                                                                                                                                                                                                                                                                                                                                                             
confluence-1  |         at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)                                                                                                                                                                                                                                                                                                                                                                              
confluence-1  |         at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)                                                                                                                                                                                                                                                                                                                                                                        
confluence-1  |         at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
confluence-1  |         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)                                                                                                                                                                                                                                                                                                                                                                     
confluence-1  |         at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)                                                                                                                                                                                                                                                                                                                                                                         
confluence-1  |         at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
confluence-1  |         at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)                                                                                                                                                                                                                                                                                                                                                               
confluence-1  |         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)                                                                                                                                                                                                                                                                                                                                                                      
confluence-1  |         at java.base/java.lang.Thread.run(Thread.java:840)

The reason I mention this is because it has nothing to do with our app. I can reproduce the issue simply by starting and installing a new Confluence server in a container, install the REST API Browser and let it show me the private API services via the UI.

When I shutdown the server after its installation and do the same procedure, I do get a lot of stack traces, but not the one shown above.

Why do I post such a silly question? I get the issue also when I deploy our app and I have read MarekTokarski’s answer to this question Platform 7 upgrade in progress: Learn about the first highlights and changes - #64 by ashraf.teleb85 that this may be related to:

Based on the error message I suspect the resource lack @Inject annotation that is required on REST v2 resources.

As I am using Spring Java Config this brings me back to my question I posted about a month ago: REST Services on Platform 7 / Confluence 9. I am somewhat convinced that the user who posted the question Marek answered is also using Spring Java Config, due to his post here: Preparing for Confluence 9.0 - EAP out now - #109 by ashraf.teleb85.

So my question boils down to this:

  1. If I am using Spring Java Config do I need to add @Inject annotations for REST services?
  2. Do I need to declare REST Services via Spring Java Config (I assume yes) and do I need to export it (I assume no) or is it sufficient to declar the services via the atlassian-plugin.xml?
    3.Is there some documentation I have missed?

Thank you in advance! :grinning: