Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    13

    ConcurrentModificationException con shiftRows

    Salve a tutti,
    devo fare il caricamento di un file excel costituito da più fogli. Utilizzo i thread e la scrittura di un singolo foglio corrisponde ad un thread. Per popolare il file excel con i dati parto da un template vuoto e per ogni importo inserisco una nuova riga, ecco perchè utilizzo lo shiftRows.
    L'eccezione ch vi allego viene fuori in maniera random nel senso che nn esce sempre. Cercando sui forum ho visto ke questa è un'eccezione ke viene fuori sugli array o su liste qnd più processi tentano di fare operazioni incongruenti su questi oggetti. Ma con lo shiftRows quale può essere l'operazione incongruente? io so qnt sono gli importi che devo inserire e quindi so di qnt spostare le righe.

    codice:
    java.util.ConcurrentModificationException
            at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:448)
            at java.util.AbstractList$Itr.next(AbstractList.java:419)
            at org.apache.poi.hssf.usermodel.HSSFCell.findCellComment(HSSFCell.java:1011)
            at org.apache.poi.hssf.usermodel.HSSFSheet.getCellComment(HSSFSheet.java:1848)
            at org.apache.poi.hssf.usermodel.HSSFSheet.shiftRows(HSSFSheet.java:1260)
            at org.apache.poi.hssf.usermodel.HSSFSheet.shiftRows(HSSFSheet.java:1176)
            at org.apache.poi.hssf.usermodel.HSSFSheet.shiftRows(HSSFSheet.java:1155)
            at org.excel.thread.ThreadScriviFoglio.shiftRows(ThreadScriviFoglio.java:128)
            at org.excel.thread.ThreadScriviFoglio.run(ThreadScriviFoglio.java:95)
            at java.lang.Thread.run(Thread.java:534)
    Non capisco
    Help!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    quando ci sono thread di mezzo devi preoccuparti di come ogni thread accede alle risorse condivise.
    Suppongo avvenga una roba del genere

    thread1 inizia scrittura (o itera su una lista)
    thread2 interrompe thread1 (che non ha finito) e tenta la scrittura (o scorrere la lista)

    eccezione.

    Dovresti controllare l'accesso alle risorse condivise, sincronizzando dove opportuno.

    Guarda qui

    e qui

    sincronizza ad ogni accesso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.