Confirm, it is a bug in plexus-util when try to get basename of this string


C:\dev\mojo\maven-native\native-maven-plugin\src\it\jni\native\win32\..\src\main\native\HelloWorld2

this is windows path,

if I convert it unix path then it is ok.

-D



On 9/20/06, dan tran <[EMAIL PROTECTED]> wrote:

 that is a bug, please file it with a sample pom.

Thanks

-Dan


 On 9/20/06, Brad Harper <[EMAIL PROTECTED]> wrote:
>
> Dan:
>
> That put me on to the solution. There was a <fileName> element
> following 'reindex.cpp ' that didn't have file extension [a
> cut/paste error in the pom file], like
>
>   <fileName>abc</fileName>
>
> Mea culpa.
>
> Even so, I would think that things shouldn't crater with such
> an obscure error. Basically, the named file didn't exist in
> the source directory.
>
> Maybe AbstractCompiler shouldn't attempt to construct the object
> filename (and perhaps perform other operations) until it has been
> determined that the source file actually exists in the source
> directory.
>
> Thanks.
>
> Brad
>
> > -----Original Message-----
> > From: dan tran [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, September 20, 2006 6:03 PM
> > To: Maven Users List
> > Subject: Re: Error: java.lang.StringIndexOutOfBoundsException [MORE]
> >
> >
> > reindex.cpp compilation is ok,
> >
> > The compilation after reindex.cpp is the main problem
> >
> > -Dan
> >
> > On 9/20/06, dan tran <[EMAIL PROTECTED]> wrote:
> > >
> > >  Hi Brad, thanks for looking into this problem, do you have
> > reproducable
> > > test case?
> > >
> > > -D
> > >
> > >
> > >  On 9/20/06, Brad Harper <[EMAIL PROTECTED]> wrote:
> > > >
> > > > 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]
> > > >
> > > >
> > >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to