台账功能报错
在台账页面,部分流程应用的数据正常,部分流程应用无法打开,提示String index out of range: 0,后台报错提示如下:java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.StringLatin1.charAt(StringLatin1.java:47) ~[?:?]
at java.lang.String.charAt(String.java:693) ~[?:?]
at com.x.custom.index.assemble.control.jaxrs.index.BaseAction.lambda$getDynamicFieldList$8(BaseAction.java:174) ~
是否存在未知bug呢。
详细截图一下,具体是哪里,怎么操作的? 本帖最后由 miexiaomie 于 2023-6-1 10:55 编辑
论坛管理员 发表于 2023-6-1 09:57
详细截图一下,具体是哪里,怎么操作的?
前台截图如上,点开台账,选择一个流程应用,就报错了,报错接口http://serveruri/x_custom_index_assemble_control/jaxrs/index?v=o2oa miexiaomie 发表于 2023-6-1 10:51
前台截图如上,点开台账,选择一个流程应用,就报错了,报错接口http://serveruri/x_custom_index_assembl ...
这个需要您把具体日志发出来看看 本帖最后由 miexiaomie 于 2023-6-8 10:13 编辑
xadmin 发表于 2023-6-1 17:43
这个需要您把具体日志发出来看看
2023-06-08 10:07:28.014 ERROR com.x.custom.index.assemble.control.jaxrs.index.IndexAction - id:2f9457e1-37ce-492a-bc51-3050b0196750, name:com.x.custom.index.
assemble.control.jaxrs.index.IndexAction, message:String index out of range: 0, exception:java.lang.StringIndexOutOfBoundsException, id:2f9457e1-37ce-492a-bc51-3050b0196750, name:com.x.custom.index.as
semble.control.jaxrs.index.IndexAction, message:String index out of range: 0, exception:java.lang.StringIndexOutOfBoundsException, person:信管测试@xinguantest@P, method:POST, request:http://server/x_custom_index_assemble_control/jaxrs/index?v=o2oa, remoteHost:xxxxx, emoteAddr:xxxx, head:Authorization:xxxxx
Origin:http://server
Cookie:xxxxxxx;
Accept:text/html,application/json,*/*
Connection:keep-alive
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
Referer:http://server/
Host:server
Accept-Language:zh-CN
Accept-Encoding:gzip, deflate
Content-Length:206
Content-Type:application/json; charset=UTF-8, body:{
"directoryList": [
{
"category": "processPlatform",
"key": "28b5c00b-ae0d-4e07-80fa-9c9da2150beb",
"name": "销售流程"
}
],
"page": 1,
"size": 50,
"fixedFieldList": [],
"dynamicFieldList": [],
"filterList": []
}..
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.StringLatin1.charAt(StringLatin1.java:47) ~[?:?]
at java.lang.String.charAt(String.java:693) ~[?:?]
at com.x.custom.index.assemble.control.jaxrs.index.BaseAction.lambda$getDynamicFieldList$8(BaseAction.java:174) ~
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[?:?]
at com.x.custom.index.assemble.control.jaxrs.index.BaseAction.lambda$getDynamicFieldList$11(BaseAction.java:180) ~
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
at com.x.custom.index.assemble.control.jaxrs.index.BaseAction.getDynamicFieldList(BaseAction.java:173) ~
at com.x.custom.index.assemble.control.jaxrs.index.ActionPost.execute(ActionPost.java:103) ~
at com.x.custom.index.assemble.control.jaxrs.index.IndexAction.post(IndexAction.java:54) ~
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52) ~
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124) ~
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167) ~
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159) ~
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79) ~
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475) ~
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397) ~
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) ~
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255) ~
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) ~
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) ~
at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~
at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~
at org.glassfish.jersey.internal.Errors.process(Errors.java:244) ~
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) ~
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234) ~
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684) ~
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) ~
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) ~
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366) ~
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319) ~
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) ~
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763) ~
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1633) ~
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228) ~
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1609) ~
at com.x.base.core.project.jaxrs.CipherManagerUserJaxrsFilter.doFilter(CipherManagerUserJaxrsFilter.java:51) ~
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1609) ~
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:561) ~
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) ~
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1612) ~
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434) ~
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) ~
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1582) ~
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349) ~
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59) ~
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:716) ~
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~
at org.eclipse.jetty.server.Server.handle(Server.java:516) ~
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) ~
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) ~
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) ~
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) ~
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375) ~
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773) ~
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905) ~
at java.lang.Thread.run(Thread.java:829) ~[?:?] 这是一个bug,原因是没有对空字符串进行判断
}).collect(Collectors.groupingBy(Pair::first)).entrySet().stream()
.sorted(Comparator.comparing(Map.Entry::getKey)).forEach(o -> o.getValue().stream().map(Pair::second)
.map(p -> Pair.of(p.getName().charAt(0), p)).map(p -> {
if (Character.UnicodeBlock.of(p.first()) == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS) {
return Pair.of(0, p.second());
} else {
return Pair.of(1, p.second());
}
}).collect(Collectors.groupingBy(Pair::first)).entrySet().stream()
.sorted(Comparator.comparing(Map.Entry::getKey))
.forEach(p -> p.getValue().stream().map(Pair::second)
.sorted(Comparator.nullsLast(Comparator.comparing(WoField::getName)))
.forEach(os::add)));
中的 .map(p -> Pair.of(p.getName().charAt(0), p)).map(p -> { 这一行
这段代码是用于防止cjk字符和拉丁字符混排导致的混乱,这里对cjk和拉丁分组排序再组合.
非常感谢您的指正.我们将在尽快修复并发布到新的更新版本中.
Ray 发表于 2023-6-9 11:09
这是一个bug,原因是没有对空字符串进行判断
是要重新安装台账还是? 会发布新的版本修复.需要重新安装. Ray 发表于 2023-6-9 16:56
会发布新的版本修复.需要重新安装.
什么时候发布? miexiaomie 发表于 2023-6-9 16:58
什么时候发布?
还未定时间,您可以关注一下我们的官网的平台下载页面
https://www.o2oa.net/
页:
[1]
2