Исключение нулевого указателя Groovy - PullRequest
0 голосов
/ 16 ноября 2011

Я получаю исключение нулевой точки, и моя оболочка Groovy больше не указывает, где это происходит. говорил, что их было 3, первый из которых произошел на линии scans.each {item ->

Если ты посмеешь ...:

use( groovy.time.TimeCategory ) {
new File( 'C:\\Users\\pro-services\\Documents\\ScanEngineDetailFake.log' ).eachLine { line ->

  m = line =~ d
  log = line
  matcher = (log =~ /\d{2}:\d{2}:\d{2},\d{3}/)

  matcher.count.times {
    a = matcher[it]

    if( a ) {
      if( !prevDate ) {
      prevDate = parseDate( a )
    }
    if (line ==~ c){
      starts ++
      prevDate = parseDate( a )
    }
    if (line ==~ d){
      finishes ++
      def nextDate = parseDate( a )
      deltas << nextDate - prevDate
      scans <<  line
    }
  }
}

def startDate = null
def finDate = null
def filediff = null

76    use( groovy.time.TimeCategory ) {

78  scans.each { item ->

  logs = item
  matcher = (logs =~ /\d{2}:\d{2}:\d{2},\d{3}/)

83  matcher.count.times {
    b = matcher[it]

    if (logs ==~ c){
      startDate = parseDate( b )
    }

    if (logs ==~ d){
      finDate = parseDate( b )

 96     filediff = finDate - startDate

      deltas.each { diff ->
        if (diff == filediff){
           n = logs =~ c
           println n[0][1]
           println diff     
        }    
      }   
    }
  }
}

Есть идеи? Я смотрел на другие проблемы с нулевым указателем, но все они кажутся специфичными для кода, поэтому я просто добавлю это в библиотеку.

1 Ответ

1 голос
/ 16 ноября 2011

NullPointerException в строке scans.each означает, что scans является нулевой ссылкой.scans не было инициализировано исправление.Должна быть строка, подобная этой: def scan = [], чтобы scan инициализировался как пустой список.Если вы написали def scan, сканирование инициализируется как нулевой указатель.

...