<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<STYLE type=text/css>DIV {
        MARGIN: 0px
}
</STYLE>

<META content="MSHTML 6.00.5730.11" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=256272911-22012007><FONT face=Arial 
color=#0000ff size=2>We must get one thing straight : regressions tests - except 
for paralleltest - are using</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=256272911-22012007><FONT face=Arial 
color=#0000ff size=2>only one thread.&nbsp; All other tests are not multi 
threaded.</FONT></SPAN></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> mondrian-bounces@pentaho.org 
[mailto:mondrian-bounces@pentaho.org] <B>On Behalf Of </B>michael 
bienstein<BR><B>Sent:</B> maandag 22 januari 2007 12:28<BR><B>To:</B> Mondrian 
developer mailing list<BR><B>Subject:</B> Re : [Mondrian] 
Re:VirtualCubeTest.testCalculatedMemberAcrossCubesfailing on 
SMP<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV 
style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">
<DIV 
style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman,new york,times,serif">I 
think a debugger won't work because debugging multi-threaded apps is really 
really difficult.<BR><BR>I did a code review but couldn't work out where it came 
from.&nbsp; I assume the thread ID is positive and unique so that if the same 
Thread object is attached to an underlying os thread it won't be doing the same 
thing, otherwise the == operator would fail.&nbsp; The only thing I'd do 
differently is wrap the try {} finally bloc in the RolapResult around more than 
just the evaluateBody() method because the axes get evaluated out of it.&nbsp; 
But the bug doesn't come from there.&nbsp; <BR><BR>Oh and you might get 
conflicting data because in one MDX query we can open and use multiple JDBC 
Connections.&nbsp; Should use a ThreadLocal to keep the open connection and 
re-use it.<BR><BR>Michael<BR><BR>
<DIV 
style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman,new york,times,serif">----- 
Message d'origine ----<BR>De : Pappyn Bart 
&lt;Bart.Pappyn@vandewiele.com&gt;<BR>À : John V. Sichi 
&lt;jsichi@gmail.com&gt;<BR>Cc : Mondrian developer mailing list 
&lt;mondrian@pentaho.org&gt;<BR>Envoyé le : Lundi, 22 Janvier 2007, 11h10mn 
25s<BR>Objet&nbsp;: RE: [Mondrian] Re: 
VirtualCubeTest.testCalculatedMemberAcrossCubesfailing on SMP<BR><BR>
<DIV>Hi John,<BR><BR>I already changed that piece of code, added an extra data 
member to<BR>remember<BR>if thread local or not.&nbsp;&nbsp;Cannot check it in 
for the moment though. <BR><BR>The best thing to catch this one, would be to 
attach a debugger on that<BR>particular test.&nbsp;&nbsp;Best in combination 
with outer tests, not running it<BR>on its own.<BR><BR>If people who are able to 
reproduce this bug, would be able to do that<BR>and<BR>tell me what happens, I 
would be very pleased.<BR><BR>Thanks,<BR>Bart<BR><BR><BR>-----Original 
Message-----<BR>From: mondrian-bounces@pentaho.org 
[mailto:mondrian-bounces@pentaho.org]<BR>On Behalf Of John V. Sichi<BR>Sent: 
maandag 22 januari 2007 11:05<BR>To: Pappyn Bart<BR>Cc: 
mondrian@pentaho.org<BR>Subject: [Mondrian] 
Re:<BR>VirtualCubeTest.testCalculatedMemberAcrossCubesfailing on 
SMP<BR><BR>Pappyn Bart wrote:<BR>&gt; Hi John,<BR>&gt; <BR>&gt; I have been busy 
together with Julian trying to simulate this problem.<BR><BR>OK.&nbsp;&nbsp;I 
looked through the code changes but couldn't spot 
anything<BR>obvious.<BR><BR>While I was reviewing, I did notice one unrelated 
thing.&nbsp;&nbsp;In your<BR>original code, you were using Thread.getId(), and 
-1 as an invalid<BR>thread ID.&nbsp;&nbsp;Then you had to change it to 
System.identityHashCode(thread)<BR>for 1.4-compatibility.&nbsp;&nbsp;However, I 
don't think there's any guarantee<BR>that identityHashCode can't return -1 (even 
though it's unlikely given<BR>that most JVM's implement it as a pointer 
address), so is the following<BR>test in RolapStar.clearCachedAggregations still 
correct?<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; if (aggregationKey.getThreadId() == 
threadId) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
it.remove();<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR><BR>JVS<BR>_______________________________________________<BR>Mondrian 
mailing list<BR>Mondrian@pentaho.org<BR><A 
href="http://lists.pentaho.org/mailman/listinfo/mondrian" 
target=_blank>http://lists.pentaho.org/mailman/listinfo/mondrian</A><BR><BR>______________________________________________________________________<BR>This 
email has been scanned by the Email Security 
System.<BR>______________________________________________________________________<BR><BR>_______________________________________________<BR>Mondrian 
mailing list<BR>Mondrian@pentaho.org<BR><A 
href="http://lists.pentaho.org/mailman/listinfo/mondrian" 
target=_blank>http://lists.pentaho.org/mailman/listinfo/mondrian</A><BR></DIV></DIV><BR></DIV></DIV><BR>
<HR SIZE=1>
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! 
Profitez des connaissances, des opinions et des expériences des internautes sur 
<A href="http://fr.rd.yahoo.com/evt=42054/*http://fr.answers.yahoo.com">Yahoo! 
Questions/Réponses</A>. 
<BR>______________________________________________________________________<BR>This 
email has been scanned by the Email Security 
System.<BR>______________________________________________________________________<BR></BODY></HTML>