Issue Summary

      Sorting of assets attributes of type IP Address fails when there are addresses of IPV6 format. Though IPV6 validation is working fine, the sorting functionality is breaking. With just IPV4 addresses it works fine.

      This is reproducible on Data Center: Yes

      Steps to Reproduce

      1. Create an attribute of the type IP address.
      2. Add some IPV4 formats and IPV6 format IP addresses.
      3. Sort the objects by clicking on the column name in the objects view screen.
      4. We see this error on the screen 

      Expected Results

      Sorting fails, and we get a message "Something wrong. Contact Administrator" on the screen when there are  IPV6 format IP addresses. 

      Actual Results

      The below exception is thrown in the atlassian-jira.log file. 

      2023-08-21 19:37:06,436+0530 http-nio-8940-exec-20 ERROR admin 1177x1594x1 15my82v 0:0:0:0:0:0:0:1 /rest/insight/1.0/object/navlist [c.r.j.p.i.c.w.a.r.exception.mapper.DefaultMapper] Unexpected exception was thrown while processing the request
      com.riadalabs.jira.plugins.insight.common.exception.RuntimeInsightException: InsightRuntimeException: java.util.InputMismatchException; nested exception is: null
      java.util.InputMismatchException
              at java.util.Scanner.throwFor(Scanner.java:864)
              at java.util.Scanner.next(Scanner.java:1485)
              at java.util.Scanner.nextLong(Scanner.java:2222)
              at java.util.Scanner.nextLong(Scanner.java:2182)
              at io.riada.insight.services.comparator.ObjectBeanAttributeComparatorBase$ObjectAttributeIPAddressValueBeanComparator.toNumeric(ObjectBeanAttributeComparatorBase.java:173)
              at io.riada.insight.services.comparator.ObjectBeanAttributeComparatorBase$ObjectAttributeIPAddressValueBeanComparator.compareSpecific(ObjectBeanAttributeComparatorBase.java:182)
              at io.riada.insight.services.comparator.ObjectBeanAttributeComparatorBase$ObjectAttributeValueBeanComparator.compare(ObjectBeanAttributeComparatorBase.java:162)
              at io.riada.insight.services.comparator.ObjectBeanAttributeComparatorBase.sortByValues(ObjectBeanAttributeComparatorBase.java:109)
              at io.riada.insight.services.comparator.ObjectBeanAttributeComparatorBase.compare(ObjectBeanAttributeComparatorBase.java:80)
              at io.riada.insight.services.comparator.ObjectBeanAttributeComparatorBase.compare(ObjectBeanAttributeComparatorBase.java:27)
              at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
              at java.util.TimSort.sort(TimSort.java:220)
              at java.util.Arrays.sort(Arrays.java:1438)
              at kotlin.collections.ArraysKt___ArraysJvmKt.sortWith(_ArraysJvm.kt:2557)
              at kotlin.collections.CollectionsKt___CollectionsKt.sortedWith(_Collections.kt:1073)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.sortResultBeans(ObjectFilterManagerImpl.kt:341)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.sortReferenceResultBeansOnLabel(ObjectFilterManagerImpl.kt:251)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.sortBeansBasedOnFilter(ObjectFilterManagerImpl.kt:179)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.filterObjectBeansInThread(ObjectFilterManagerImpl.kt:142)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.findObjectsBasedOnFilter(ObjectFilterManagerImpl.kt:84)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.findObjectsByFilter(ObjectFilterManagerImpl.kt:62)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.findObjectsByFilter(ObjectFilterManagerImpl.kt:53)
              at com.riadalabs.jira.plugins.insight.services.core.iql.impl.IQLManagerImpl.findObjects(IQLManagerImpl.java:228)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectServiceImpl.loadObjectResultWithoutPermissionCheckOnAttributes(ObjectServiceImpl.java:1060)
              at com.riadalabs.jira.plugins.insight.services.core.ObjectServiceImpl.loadObjectResult(ObjectServiceImpl.java:1046)
              at com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.object.ObjectResource.findObjectsByIQL(ObjectResource.java:621)
              at com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.object.ObjectResource.findObject(ObjectResource.java:548)
              ... 2 filtered
              at java.lang.reflect.Method.invoke(Method.java:498)
              ... 19 filtered
              at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:171)
              ... 1 filtered
              at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:75)
              ... 32 filtered
              at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)
              ... 8 filtered
              at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:59)
              ... 4 filtered
              at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
              ... 3 filtered
              at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:54)
              ... 8 filtered
              at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
              ... 43 filtered
              at com.atlassian.oauth2.scopes.web.ReadWriteScopeFilter.doFilter(ReadWriteScopeFilter.java:46)
              ... 3 filtered
              at com.atlassian.ratelimiting.internal.filter.RateLimitFilter.doFilter(RateLimitFilter.java:73)
              ... 3 filtered
              at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
              ... 17 filtered
              at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
              ... 1 filtered 

      Workaround

      Currently, there is no known workaround for this behavior. A workaround will be added here when available

          Form Name

            [JSDSERVER-14019] Sorting by attributes of type IP Address fails with IPV6 format

            There are no comments yet on this issue.

              ad6a80463119 Amisha -
              1463fcb5e3fd Sireesha
              Affected customers:
              3 This affects my team
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: