You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During the process of saving an API through the Publisher portal encountered the following error when there is Subdirectory with Media Type:Unknown in the /Documentation registry path.
TID: [-1234] [api/am/publisher] [2024-08-20 09:07:04,857] ERROR {org.wso2.carbon.apimgt.rest.api.publisher.v1.impl.ApisApiServiceImpl} - Error while updating the swagger definition of the API: 212ddd0d-d198-4984-bdea-595f97c1aa7f - Error while updating API details org.wso2.carbon.apimgt.api.APIManagementException: Error while updating API details
at org.wso2.carbon.apimgt.impl.APIProviderImpl.updateAPI_aroundBody54(APIProviderImpl.java:863)
at org.wso2.carbon.apimgt.impl.APIProviderImpl.updateAPI(APIProviderImpl.java:1)
at org.wso2.carbon.apimgt.impl.UserAwareAPIProvider.updateAPI(UserAwareAPIProvider.java:1)
at org.wso2.carbon.apimgt.rest.api.publisher.v1.common.mappings.PublisherCommonUtils.updateSwagger(PublisherCommonUtils.java:1424)
at org.wso2.carbon.apimgt.rest.api.publisher.v1.common.mappings.PublisherCommonUtils.updateSwagger(PublisherCommonUtils.java:1396)
at org.wso2.carbon.apimgt.rest.api.publisher.v1.impl.ApisApiServiceImpl.updateSwagger(ApisApiServiceImpl.java:2536)
at org.wso2.carbon.apimgt.rest.api.publisher.v1.impl.ApisApiServiceImpl.updateAPISwagger(ApisApiServiceImpl.java:2496)
at org.wso2.carbon.apimgt.rest.api.publisher.v1.ApisApi.updateAPISwagger(ApisApi.java:1630)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:304)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:234)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:279)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:119)
at org.wso2.carbon.identity.context.rewrite.valve.OrganizationContextRewriteValve.invoke(OrganizationContextRewriteValve.java:116)
at org.wso2.carbon.tomcat.ext.valves.SameSiteCookieValve.invoke(SameSiteCookieValve.java:38)
at org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:165)
at org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:118)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:106)
at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:67)
at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:152)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:63)
at org.wso2.carbon.tomcat.ext.valves.RequestCorrelationIdValve.invoke(RequestCorrelationIdValve.java:137)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.wso2.carbon.apimgt.persistence.exceptions.APIPersistenceException: Error while performing registry transaction operation
at org.wso2.carbon.apimgt.persistence.RegistryPersistenceImpl.updateAPI(RegistryPersistenceImpl.java:636)
at org.wso2.carbon.apimgt.impl.APIProviderImpl.updateAPI_aroundBody54(APIProviderImpl.java:861)
... 61 more
Caused by: java.lang.NullPointerException
at org.wso2.carbon.governance.api.util.GovernanceUtils.findGovernanceArtifactConfigurationByMediaType(GovernanceUtils.java:247)
at org.wso2.carbon.governance.api.util.GovernanceUtils.getUniqueAttributesNames(GovernanceUtils.java:2791)
at org.wso2.carbon.governance.api.util.GovernanceUtils.retrieveGovernanceArtifactByPath(GovernanceUtils.java:1040)
at org.wso2.carbon.governance.api.util.GovernanceUtils.retrieveGovernanceArtifactById(GovernanceUtils.java:984)
at org.wso2.carbon.governance.api.common.GovernanceArtifactManager.getGovernanceArtifact(GovernanceArtifactManager.java:589)
at org.wso2.carbon.governance.api.generic.GenericArtifactManager.getGenericArtifact(GenericArtifactManager.java:231)
at org.wso2.carbon.apimgt.persistence.RegistryPersistenceImpl.updateAPI(RegistryPersistenceImpl.java:596)
... 62 more
Steps to Reproduce
Issue is reproducible when the U2 level is less than 77 by following the steps outlined below. Please note that the issue is also reproducible for U2 levels higher than 77 if a subdirectory is created under the /documentation registry path with an Unknown Media Type.
1.Add an API Document under subdirectory using the below Publisher REST API [1]. Sample CURL
curl --location 'https://127.0.0.1:9443/api/am/publisher/v4/apis/2b56e273-2e0f-46e3-aee7-4115258a62db/documents' \
--header 'Authorization: Bearer 80d7d972-c55b-34bb-a606-aea385945a66' \
--header 'Content-Type: application/json' \
--data '{
"name": "ttttt/PizzaShackDoc",
"type": "HOWTO",
"summary": "Summary of PizzaShackAPI Documentation",
"sourceType": "INLINE",
"inlineContent": "This is doc content. This can have many lines.",
"visibility": "API_LEVEL",
"createdBy": "admin"
}'
Description
Hi Team,
Steps to Reproduce
1.Add an API Document under subdirectory using the below Publisher REST API [1].
Sample CURL
2 - Try to save the API via the Publisher portal.
[1] - https://apim.docs.wso2.com/en/4.2.0/reference/product-apis/publisher-apis/publisher-v4/publisher-v4/#tag/API-Documents/operation/getAPIDocuments
Affected Component
APIM
Version
4.2.0
Product : wso2am-4.2.0
Update level : 96
WSO2 case id : FISGLOBALSUB-1207
Case number : CS0291065
The text was updated successfully, but these errors were encountered: