Hi Wayne

Thank you Wayne for this excellent Analysis. If a routine belonging to the file 
system returns something badly,
there is a little chance to influence by a logical JAVA$FILENAME_CONTROL which 
can be set to so many values 
used to control filename encodings, particular how to deal with dot's in file 
names.

Josef

-----Ursprüngliche Nachricht-----
Von: Wayne Fay [mailto:wayne...@gmail.com] 
Gesendet: Donnerstag, 20. Oktober 2011 23:51
An: Maven Users List
Betreff: Re: Problems with MAVEN's-ANT on OpenVMS

> With knowing the details about our environment
> would you expect that Lucene written in clean Java
> is not operating on such a platform?

Without a comprehensive analysis of the source code for Lucene (and
potentially, some or all of its dependencies) it is impossible to say
anything conclusive about how well it may operate on OpenVMS or any
other operating system except for those explicitly supported (and
tested) by the dev team. Java isn't truly write-once run-anywhere,
despite such claims ~10-15 years back.

I looked at your stacktrace and the problem seemed to be related to a
NumberFormatException thrown by java.lang.Long.parseLong() that is not
being caught and handled by Lucene:

Caused by: java.lang.NumberFormatException: For input string: "1."
        at 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Long.parseLong(Long.java:419)
        at 
org.apache.lucene.index.SegmentInfos.generationFromSegmentsFileName(SegmentInfos.java:199)

I found a Lucene JIRA issue that is loosely related:
https://issues.apache.org/jira/browse/LUCENE-3008

Looks like line 211 in trunk is the issue (was line 199 in the stacktrace):
http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/SegmentInfos.java?view=markup

The source code is:
   return Long.parseLong(fileName.substring(1+IndexFileNames.SEGMENTS.length()),
      Character.MAX_RADIX);

A quick look at the Java API shows:
http://download.oracle.com/javase/1,5.0/docs/api/java/lang/Long.html#parseLong(java.lang.String,%20int)
 An exception of type NumberFormatException is thrown if any of the
following situations occurs:
    * Any character of the string is not a digit of the specified
radix, except that the first character may be a minus sign '-'
('\u002d') provided that the string is longer than length 1.

The decimal character in the string "1." is not valid in the radix
defined by Character.MAX_RADIX. So, you'll need to figure out where
that filename of "1." is coming from -- either OpenVMS or Lucene --
and somehow get rid of the decimal in the filename. Or just rename
that file from 1. to simply 1 in your filesystem.

Without access to an OpenVMS system and having no real understanding
of Lucene's internals, I can't really look into it any more at this
point. You probably need to email the Lucene Users list and ask if
anyone has successfully gotten it to run on OpenVMS (I'm guessing not)
and get things patched up before you can make more progress with
getting Nexus running on it. Or take the more reasonable approach and
simply install Nexus on a Windows box in your office. ;-)

Wayne

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to