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

[APIM][4.2.0] Error while updating the APIs #3090

Closed
Hashini-Deshappriya opened this issue Sep 2, 2024 · 0 comments · Fixed by wso2/carbon-apimgt#12536
Closed

[APIM][4.2.0] Error while updating the APIs #3090

Hashini-Deshappriya opened this issue Sep 2, 2024 · 0 comments · Fixed by wso2/carbon-apimgt#12536

Comments

@Hashini-Deshappriya
Copy link

Hashini-Deshappriya commented Sep 2, 2024

Description

Hi Team,

  • 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"
}'

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant