Looking at the source code for classes

   org.codehaus.mojo.natives.compiler.AbstractCompiler

and

  org.codehaus.plexus.util.FileUtils

it seems singularly odd that String.substring() would
suddenly be receiving an index with a value of -17
passed by the FileUtils.basename() methods.

I haven't been able to affect the outcome by altering
the order or names of the files involved.

Method AbstractCompiler.getObjectFile() is attempting to
construct the string name of the object file associated
with the current source file. Looking in the target/
directory, I see that the object file for source file
'reindex.cpp' has been created and exists with the expected
name: 'reindex.obj'.

Brad

> -----Original Message-----
> From: Brad Harper 
> Sent: Wednesday, September 20, 2006 9:38 AM
> To: users
> Subject: Error: java.lang.StringIndexOutOfBoundsException
> 
> 
> Hello:
> 
> See the FATAL ERROR from captured maven output below.
> 
> In context, the native maven plugin is being used to compile a C++
> source file, prior to linking an .exe application.
> 
> Has anyone seen this sort of thing before? Thanks.
> 
> Brad
> 
> ....
> recmods.cpp
> [INFO] cl /MT /W3 /GX /DWINDOWS-X86 /DWIN32 /D_WINDOWS /Zi 
> /Od /DDEBUG /DHAVE_DONGLE 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\include\common 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\include\gui 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\include\crypt 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\include\record 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\bin\dxrecord 
> /Fop:\exodus\dxr\WINDOWS-X86\dxrecord\target\recorder.obj -c 
> p:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.ep
> siia.dxr\bin\dxrecord\recorder.cpp
> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 
> 12.00.8804 for 80x86
> Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
> 
> recorder.cpp
> p:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.ep
> siia.dxr\bin\dxrecord\recorder.cpp(4050) : warning C4101: 
> 'ucplogrek' : unreferenced local variable
> [INFO] cl /MT /W3 /GX /DWINDOWS-X86 /DWIN32 /D_WINDOWS /Zi 
> /Od /DDEBUG /DHAVE_DONGLE 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\include\common 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\include\gui 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\include\crypt 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\include\record 
> -Ip:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.
> epsiia.dxr\bin\dxrecord 
> /Fop:\exodus\dxr\WINDOWS-X86\dxrecord\target\reindex.obj -c 
> p:\exodus\dxr\WINDOWS-X86\dxrecord\..\..\src\main\c-cpp\com.ep
> siia.dxr\bin\dxrecord\reindex.cpp
> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 
> 12.00.8804 for 80x86
> Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
> 
> reindex.cpp
> [INFO] 
> --------------------------------------------------------------
> ----------
> [ERROR] FATAL ERROR
> [INFO] 
> --------------------------------------------------------------
> ----------
> [INFO] String index out of range: -17
> [INFO] 
> --------------------------------------------------------------
> ----------
> [DEBUG] Trace
> java.lang.StringIndexOutOfBoundsException: String index out 
> of range: -17
>       at java.lang.String.substring(String.java:1768)
>       at 
> org.codehaus.plexus.util.FileUtils.basename(FileUtils.java:215)
>       at 
> org.codehaus.plexus.util.FileUtils.basename(FileUtils.java:200)
>       at 
> org.codehaus.mojo.natives.compiler.AbstractCompiler.getObjectF
> ile(AbstractCompiler.java:120)
>       at 
> org.codehaus.mojo.natives.compiler.AbstractCompiler.compile(Ab
> stractCompiler.java:66)
>       at 
> org.codehaus.mojo.natives.plugin.NativeCompileMojo.execute(Nat
> iveCompileMojo.java:162)
>       at 
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(Defau
> ltPluginManager.java:412)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoa
> ls(DefaultLifecycleExecutor.java:534)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoa
> lWithLifecycle(DefaultLifecycleExecutor.java:475)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoa
> l(DefaultLifecycleExecutor.java:454)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoa
> lAndHandleFailures(DefaultLifecycleExecutor.java:306)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTas
> kSegments(DefaultLifecycleExecutor.java:273)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(De
faultLifecycleExecutor.java:140)
>       at 
> org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess
> orImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
> odAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at 
> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>       at 
> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> [INFO] 
> --------------------------------------------------------------
> ----------
> [INFO] Total time: 4 minutes 56 seconds
> [INFO] Finished at: Wed Sep 20 09:35:18 CDT 2006
> [INFO] Final Memory: 8M/16M
> [INFO] 
> --------------------------------------------------------------
> ----------
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to