Jxpath требует много времени при попытке выполнить getValueJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Jxpath требует много времени при попытке выполнить getValue

Сообщение Гость »


Я пытаюсь выполнить поиск по прототипному сообщению с помощью jxPath. Мое прототипное сообщение помещено в суть (из-за ограничения размера тела stackoverflow)

Мой код выглядит примерно так:

класс PNRListBuilderTest { ... @Тест недействительный testJxPathCtx() { // Считывает прото-сообщение, показанное выше, из текстового файла val protoStr = getStringFromFile("путь к классам:BookingEnginePnrUpdateEventProto.txt"); val msgBld = BookingEnginePNRUpdateEvent.newBuilder(); TextFormat.getParser().merge(protoStr, msgBld); val msgCtx = JXPathContext.newContext(msgBld.build()); System.out.println(msgCtx.getValue("//employeeId")); } } Я заметил, что msgCtx.getValue("//employeeId") занимает много времени. Я ждал около 30 минут. Оно все еще не завершено.

Если я укажу весь путь, как показано ниже, все будет работать нормально.

msgCtx.getValue("/metadata/bookerInfo/traveler/userBusinessInfo/employeeId") Может кто-нибудь сообщить мне, что происходит не так? Ожидается ли это?

Дампы потоков в различных точках показаны ниже

Через 1 минуту

"main" prio=0 tid=0x0 nid=0x0 работоспособный java.lang.Thread.State: ВЫПОЛНЯЕМЫЙ в приложении //org.apache.commons.jxpath.ri.model.NodePointer.newChildNodePointer(NodePointer.java:106) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyPointer.getImmediateValuePointer(PropertyPointer.java:161) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.getValuePointer(NodePointer.java:297) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyIterator.getNodePointer(PropertyIterator.java:121) в приложении //org.apache.commons.jxpath.ri.axes.DescendantContext.isRecursive(DescendantContext.java:148) в приложении //org.apache.commons.jxpath.ri.axes.DescendantContext.nextNode(DescendantContext.java:116) в приложении //org.apache.commons.jxpath.ri.EvalContext.nextSet(EvalContext.java:349) в приложении //org.apache.commons.jxpath.ri.axes.ChildContext.getSingleNodePointer(ChildContext.java:70) в приложении //org.apache.commons.jxpath.ri.compiler.Path.searchForPath(Path.java:201) в приложении //org.apache.commons.jxpath.ri.compiler.Path.getSingleNodePointerForSteps(Path.java:176) в приложении //org.apache.commons.jxpath.ri.compiler.LocationPath.computeValue(LocationPath.java:87) в приложении //org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:353) в приложении //org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:313) в приложении //com.spotnana.webhooks.isos.PNRListBuilderTest.testJxPathCtx(PNRListBuilderTest.java:366) Через 2 минуты

java.lang.Thread.State: RUNNABLE по адресу java.base@17.0.5/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) по адресу java.base@17.0.5/java.lang.reflect.Method.invoke(Method.java:568) в приложении //org.apache.commons.jxpath.util.ValueUtils.getIndexedPropertyLength(ValueUtils.java:122) в приложении //org.apache.commons.jxpath.ri.model.beans.BeanPropertyPointer.getLength(BeanPropertyPointer.java:202) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyIterator.getLength(PropertyIterator.java:318) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyIterator.setPositionAllProperties(PropertyIterator.java:206) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyIterator.setPosition(PropertyIterator.java:139) в приложении //org.apache.commons.jxpath.ri.axes.DescendantContext.nextNode(DescendantContext.java:114) в приложении //org.apache.commons.jxpath.ri.EvalContext.nextSet(EvalContext.java:349) в приложении //org.apache.commons.jxpath.ri.axes.ChildContext.getSingleNodePointer(ChildContext.java:70) в приложении //org.apache.commons.jxpath.ri.compiler.Path.searchForPath(Path.java:201) в приложении //org.apache.commons.jxpath.ri.compiler.Path.getSingleNodePointerForSteps(Path.java:176) в приложении //org.apache.commons.jxpath.ri.compiler.LocationPath.computeValue(LocationPath.java:87) в приложении //org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:353) в приложении //org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:313) в приложении //com.spotnana.webhooks.isos.PNRListBuilderTest.testJxPathCtx(PNRListBuilderTest.java:366) Через 5 минут

"основной" prio=0 tid=0x0 nid=0x0 работоспособен java.lang.Thread.State: ВЫПОЛНЯЕМЫЙ по адресу java.base@17.0.5/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) по адресу java.base@17.0.5/java.lang.reflect.Method.invoke(Method.java:568) в приложении //org.apache.commons.jxpath.util.ValueUtils.getIndexedPropertyLength(ValueUtils.java:122) в приложении //org.apache.commons.jxpath.ri.model.beans.BeanPropertyPointer.getLength(BeanPropertyPointer.java:202) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyIterator.getLength(PropertyIterator.java:318) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyIterator.setPositionAllProperties(PropertyIterator.java:206) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyIterator.setPosition(PropertyIterator.java:139) в приложении //org.apache.commons.jxpath.ri.axes.DescendantContext.nextNode(DescendantContext.java:114) в приложении //org.apache.commons.jxpath.ri.EvalContext.nextSet(EvalContext.java:349) в приложении //org.apache.commons.jxpath.ri.axes.ChildContext.getSingleNodePointer(ChildContext.java:70) в приложении //org.apache.commons.jxpath.ri.compiler.Path.searchForPath(Path.java:201) в приложении //org.apache.commons.jxpath.ri.compiler.Path.getSingleNodePointerForSteps(Path.java:176) в приложении //org.apache.commons.jxpath.ri.compiler.LocationPath.computeValue(LocationPath.java:87) в приложении //org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:353) в приложении //org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:313) в приложении //com.spotnana.webhooks.isos.PNRListBuilderTest.testJxPathCtx(PNRListBuilderTest.java:366) Через 7 минут
main" prio=0 tid=0x0 nid=0x0 работоспособный java.lang.Thread.State: ВЫПОЛНЯЕМЫЙ в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:715) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:717) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:717) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:717) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:717) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:717) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:717) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:717) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.clone(NodePointer.java:717) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyPointer.getImmediateValuePointer(PropertyPointer.java:161) в приложении //org.apache.commons.jxpath.ri.model.NodePointer.getValuePointer(NodePointer.java:297) в приложении //org.apache.commons.jxpath.ri.model.beans.PropertyIterator.getNodePointer(PropertyIterator.java:121) в приложении //org.apache.commons.jxpath.ri.axes.DescendantContext.nextNode(DescendantContext.java:115) в приложении //org.apache.commons.jxpath.ri.EvalContext.nextSet(EvalContext.java:349) в приложении //org.apache.commons.jxpath.ri.axes.ChildContext.getSingleNodePointer(ChildContext.java:70) в приложении //org.apache.commons.jxpath.ri.compiler.Path.searchForPath(Path.java:201) в приложении //org.apache.commons.jxpath.ri.compiler.Path.getSingleNodePointerForSteps(Path.java:176) в приложении //org.apache.commons.jxpath.ri.compiler.LocationPath.computeValue(LocationPath.java:87) в приложении //org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:353) в приложении //org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:313) в приложении //com.spotnana.webhooks.isos.PNRListBuilderTest.testJxPathCtx(PNRListBuilderTest.java:366)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»