Odd "file date ... is before requested date" warning

Hi,

TeamCity 3.1.1, build 6828 is filling its logs with messages like the following:

WARN - jetbrains.buildServer.VCS - Cannot add file to change:
SomeFile.java: file date 2008/01/08 18:34:40 +0100 is before requested date 2007/12/11 10:07:10 +0100

What does that mean? And why does it think 2008 is before 2007?

Sascha

7 comments

Hello Sascha,

What JVM are you using?

0

Hello Sergey,

What JVM are you using?


I tried both the bundled JRE 1.5 from Sun as well as 1.6.0_06. I do not think this is a JVM-issue.
After some investigation I think the warning is related to VCS roots (CVS) that are configured for
non-HEAD versions. The condition that causes the warning in RLogMessagesParser seems to support
that. It's probably not an issue at all, but the warning should not be issued for this case.

Sascha

0

Hello Sascha,

The problem is that the first date definitely higher than the second one,
but looks like Date.before() returned true for it (I mean date1.before(date2)
== true)...
This is my assumtion and it may be wrong. The code where it happens is overcomplicated
a bit and I simplified it. I can send you the patch, so that you could try
and see what it says then.

Anyway, if it doesn't cause problems in builds there's no reason to worry.
This message indicates a strange situation. That's why it's given a warning
level. At the same time it isn't shown in the build log. So it doesn't bring
any unwanted noise to the user.

Hello Sergey,

>> What JVM are you using?
>>

I tried both the bundled JRE 1.5 from Sun as well as 1.6.0_06. I do
not think this is a JVM-issue. After some investigation I think the
warning is related to VCS roots (CVS) that are configured for non-HEAD
versions. The condition that causes the warning in RLogMessagesParser
seems to support that. It's probably not an issue at all, but the
warning should not be issued for this case.

Sascha

--
Sergey Anchipolevsky
Software Developer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


0

Hello Sergey,

sure, I can test the patch if you send it to me. But I do not think that the JVM treats 2007 > 2008.
I rather think this is due to the second part of the condition ("revisionIsSuitable"). Maybe this is
caused by some unexpected output of the CVS server (version 1.12.12), but I agree and confirm that
it doesn't seem to have any negative impact so far.

Even if it doesn't cause any noise for the user, it does for the administrator ;)

Sascha

Hello Sascha,

The problem is that the first date definitely higher than the second
one, but looks like Date.before() returned true for it (I mean
date1.before(date2) == true)...
This is my assumtion and it may be wrong. The code where it happens is
overcomplicated a bit and I simplified it. I can send you the patch, so
that you could try and see what it says then.

Anyway, if it doesn't cause problems in builds there's no reason to
worry. This message indicates a strange situation. That's why it's given
a warning level. At the same time it isn't shown in the build log. So it
doesn't bring any unwanted noise to the user.

>> Hello Sergey,
>>
>>> What JVM are you using?
>>>
>> I tried both the bundled JRE 1.5 from Sun as well as 1.6.0_06. I do
>> not think this is a JVM-issue. After some investigation I think the
>> warning is related to VCS roots (CVS) that are configured for non-HEAD
>> versions. The condition that causes the warning in RLogMessagesParser
>> seems to support that. It's probably not an issue at all, but the
>> warning should not be issued for this case.
>>
>> Sascha
>>

0

Hello Sascha,

Hadn't this been a warning would have you noticed it? ;)
Please tell me your email. I'll send you the patch.

Hello Sergey,

sure, I can test the patch if you send it to me. But I do not think
that the JVM treats 2007 > 2008. I rather think this is due to the
second part of the condition ("revisionIsSuitable"). Maybe this is
caused by some unexpected output of the CVS server (version 1.12.12),
but I agree and confirm that it doesn't seem to have any negative
impact so far.

Even if it doesn't cause any noise for the user, it does for the
administrator ;)

Sascha

>> Hello Sascha,
>>
>> The problem is that the first date definitely higher than the second
>> one, but looks like Date.before() returned true for it (I mean
>> date1.before(date2) == true)...
>> This is my assumtion and it may be wrong. The code where it happens
>> is
>> overcomplicated a bit and I simplified it. I can send you the patch,
>> so
>> that you could try and see what it says then.
>> Anyway, if it doesn't cause problems in builds there's no reason to
>> worry. This message indicates a strange situation. That's why it's
>> given a warning level. At the same time it isn't shown in the build
>> log. So it doesn't bring any unwanted noise to the user.
>>
>>> Hello Sergey,
>>>
>>>> What JVM are you using?
>>>>
>>> I tried both the bundled JRE 1.5 from Sun as well as 1.6.0_06. I do
>>> not think this is a JVM-issue. After some investigation I think the
>>> warning is related to VCS roots (CVS) that are configured for
>>> non-HEAD versions. The condition that causes the warning in
>>> RLogMessagesParser seems to support that. It's probably not an issue
>>> at all, but the warning should not be issued for this case.
>>>
>>> Sascha
>>>
--
Sergey Anchipolevsky
Software Developer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


0

Hello Sergey,

thanks for the patch, the warnings are all gone now.

Sascha

0

Hmm...

This means revisionIsSuitable() may produce different results for the same
parameters. That's quite strange.
OK. I'm glad I could help. You also helped me to see the problem.

Thank you!

Hello Sergey,

thanks for the patch, the warnings are all gone now.

Sascha

--
Sergey Anchipolevsky
Software Developer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


0

Please sign in to leave a comment.