2016-01-11 1 views
0
 FlatBufferBuilder fbb = new FlatBufferBuilder(1024); 

     String directory = "/Users/samarnath/RmsOne/CreateFlatBuffer/src/com/rms/objects/resources"; 
     File [] policyfiles = ReturnFilesWithPattern(directory, "singlecoverriskpolicy"); 

     for (File file: policyfiles) 
     { 

      Long StructureId = 0L; 
      int insurer = 0; 
      int insured = 0; 
      int UnderWriter = 0; 
      int inception = 0; 
      int Expiration = 0; 
      int ExternalID = 0; 
      Long SubjectId =0L; 
      int SubjectName = 0; 
      int SubjectStructureName = 0; 
      int Share = 0; 
      Double blanketLimit = 0.0; 
      Double attachment = 0.0; 
      int causeofLoss = 0; 
      int maxDeductible = 0; 
      int attachmentCurrency = 0; 
      int offset= 0; 
      int deductibleCurrencyOffset = 0; 
      int createOffset =0; 
      int blanketLimitCurrency = 0; 


      String folderName = "nfs://dev-spark-share.lab.rmsonecloud.net/mnt/data/UserData/import/outputfiles/Job_5/SmokeTest_2M/eufl_only_client4_2_edm__20151203-134544__24/contract/"; 
      List<String> lines = Files.readAllLines(file.toPath()); 
      List<String> actualLines = lines.subList(1, lines.size()); 

      for (String line:actualLines) 
      { 
       String [] riskitems = line.split("~"); 

       SingleCoverRiskPolicy.startSingleCoverRiskPolicy(fbb); 
       Long Id = Long.parseLong(riskitems[0]); 
       int policyName = fbb.createString(riskitems[1]); 

После предыдущей строки я получаю сообщение об ошибке говорящее исключение в потоке «основные» java.lang.AssertionError: FlatBuffers: объект сериализации не должен быть nested.I получить ошибку в fbb.createString.Плоские буферы: Сериализация объектов не должны быть вложенными

код прост и я не могу понять, что случилось здесь

+0

Видимо, ваш фрагмент кода не является полным – lrleon

+0

Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [Минимальный, полный, проверяемый пример] (http://stackoverflow.com/help/mcve) применим здесь. Мы не можем эффективно помочь вам, пока вы не опубликуете свой код и не сможете точно описать проблему. – Prune

ответ

2

Из documentation: «Все остальное (другие таблицы, строки, векторы) должно быть создано до начала таблицы они ссылаются в.»

Итак, переместите int policyName = fbb.createString(riskitems[1]) и любые другие строки/векторы/таблицы, которые вы указали в SingleCoverRiskPolicy до startSingleCoverRiskPolicy.

+0

Спасибо, что сработали. – user3897533