2016-05-09 4 views
1

при попытке сохранить строгания результата маршрутизации транспортных средств для 665 клиентов (с помощью «Сохранить как ..» кнопка) Я получаю стек переполнение исключения:optaplanner переполнение стека исключения при сохранении строгания результата

Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError: null 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 
    at com.thoughtworks.xstream.mapper.MapperWrapper.isImmutableValueType(MapperWrapper.java:42) 

с 10 (или больше) клиентов меньше (655 или меньше), он работает правильно. Любые идеи, что не так

исключение выглядит по-разному в разных случаях, вначале я это разбираюсь в каком-то странном характере (который сглаживает сериализацию XML-сумасшедшего - как это были методы сериализации xml в стеке вызовов), поэтому я заменил все адреса идентификаторы. чем мне кажется, что, возможно, если адреса в области узлов не имеют имени uniqe, но это было не так. Я также пробовал 32 и 64 бит Java, но это не помогло.

полный стек последней попытки здесь https://dl.dropboxusercontent.com/u/10874009/stack-overflow-exception.txt и это зип моего VRP файла, исключение составляет 100% repordoucable с thid набор данных https://dl.dropboxusercontent.com/u/10874009/generated-n666-k36.zip

Я использую бинарные файлы из: optaplanner-распределение-6.4.0. Заключительный заранее заблаговременно

+0

Что такое версия xstream в вашем пути к классу? –

+0

это optaplanner - версия дистрибутива 6.4.0 – zebra

ответ

1

После того, как набор данных VRP станет определенным размером, структура связанного списка вызывает stackoverflow в XStream. При таком размере XML-формат также становится очень многословным: например, клиенты 10k в формате XML могут принимать объем дискового пространства GB ... Лучше всего экспортировать в формате txt при сохранении больших файлов на диске (или их сохранении в базе данных). См. VehicleRoutingSolutionFileIO.

+0

Могу ли я сделать это через интерфейс или конфигурацию optaplanner, или мне нужно использовать код для использования этих параметров? спасибо – zebra

+0

i Удалось решить проблему с помощью опции -Xss256m, однако размер файла XML составляет 3 ГБ. поэтому я предполагаю, что мне придется использовать варианты, о которых вы упомянули. Остается только вопрос, если это нужно сделать в коде (я не был кодированием в java уже много лет, но он швы, я начну снова :), или я могу его каким-то образом настроить? – zebra

+0

Нет VehicleRoutingExporter (еще?), Но посмотрите на 'TspExporter' для вдохновения. Особенно посмотрите на метод 'writeSolution()'. –