On Sun, 21 Apr 2002, Torsten Curdt wrote:

> > Can someone enlighten me... the ActiveMonitor does not report any file
> > changes hear as he is supposed to... I just don't get the events :(
>
> ok... I have been debugging the active monitor... and I run into this:
>
>
> in FileResource.java:
>
>     public long lastModified()
>     {
>         return m_file.lastModified();
>     }
>
>
> in Resource.java:
>
>     public void testModifiedAfter( long time )
>     {
>         long lastModified = this.lastModified();
>         if( lastModified > time )
>         {
>             m_eventSupport.firePropertyChange( Resource.MODIFIED,
>                                                new Long( m_previousModified ),
>                                                new Long( lastModified ) );
>             m_previousModified = lastModified;
>         }
>     }
>
> Now what the active monitor does is to call the "testModifiedAfter" with
> the "System.currentTimeMillis()" as an argument. On a change the
> "testModifierAfter" is supposed to fire the "Resource.MODIFIED" event.
>
> But AFAICS the current code does something else.... If you break it down
> you get:
>
>    if ( file.lastModified() > System.currentTimeMillis() ) {
>       // fire event
>    }
>
> Which is not much likely to happen... ;-)
> Shouldn't it be:
>
>   if ( file.lastModified() > m_previousModified ) {
>     // fire event
>     m_previousModified = file.lastModified()
>   }
>
> But then the "time" argument wouldn't make much sense...

One way to solve this is to replace this:

in ActiveMonitor:

   for( int i = 0; i < resources.length; i++ )
   {
        resources[ i ].testModifiedAfter( currentTestTime );
                                          ~~~~~~~~~~~~~~~
   }

by this:

   for( int i = 0; i < resources.length; i++ )
   {
        resources[ i ].testModifiedAfter( resources[i].m_previousModified );
                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   }

question is only if this is really desired...

Berin, how did you wanted this to work?
Do you want me to provide a patch?
--
Torsten


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

Reply via email to