[ 
https://issues.apache.org/jira/browse/LUCENE-1798?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael McCandless updated LUCENE-1798:
---------------------------------------

    Attachment: LUCENE-1798.patch

Attached patch.  I added get/setInfoStream to FieldCache, then, in 
FieldCacheImpl.Cache.get, if we hit a cache miss and infoStream is enabled, I 
gather the Insanity[] before  the cache entry is added and after, then print 
out any change involving the entry just added.  It produces this output to the 
infoStream:

{noformat}
    [junit] WARNING: new FieldCache insanity created
    [junit] Details: VALUEMISMATCH: Multiple distinct value objects for 
org.apache.lucene.index.directoryrea...@da3a1e+thedouble
    [junit]     
'org.apache.lucene.index.directoryrea...@da3a1e'=>'theDouble',float,org.apache.lucene.search.FieldCache.DEFAULT_FLOAT_PARSER=>[F#7896426
 (size =~ 3.9 KB)
    [junit]     
'org.apache.lucene.index.directoryrea...@da3a1e'=>'theDouble',double,org.apache.lucene.search.FieldCache.DEFAULT_DOUBLE_PARSER=>[D#5503831
 (size =~ 7.8 KB)
    [junit]     
'org.apache.lucene.index.directoryrea...@da3a1e'=>'theDouble',double,null=>[D#5503831
 (size =~ 7.8 KB)
    [junit] 
    [junit] 
    [junit] Stack:
    [junit] 
    [junit] java.lang.Throwable
    [junit]     at 
org.apache.lucene.search.FieldCacheImpl$Cache.printNewInsanity(FieldCacheImpl.java:263)
    [junit]     at 
org.apache.lucene.search.FieldCacheImpl$Cache.get(FieldCacheImpl.java:228)
    [junit]     at 
org.apache.lucene.search.FieldCacheImpl.getFloats(FieldCacheImpl.java:494)
    [junit]     at 
org.apache.lucene.search.FieldCacheImpl$FloatCache.createValue(FieldCacheImpl.java:509)
    [junit]     at 
org.apache.lucene.search.FieldCacheImpl$Cache.get(FieldCacheImpl.java:223)
    [junit]     at 
org.apache.lucene.search.FieldCacheImpl.getFloats(FieldCacheImpl.java:494)
    [junit]     at 
org.apache.lucene.search.FieldCacheImpl.getFloats(FieldCacheImpl.java:487)
    [junit]     at 
org.apache.lucene.search.TestFieldCache.testInfoStream(TestFieldCache.java:70)
    [junit]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [junit]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [junit]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [junit]     at java.lang.reflect.Method.invoke(Method.java:597)
    [junit]     at junit.framework.TestCase.runTest(TestCase.java:164)
    [junit]     at junit.framework.TestCase.runBare(TestCase.java:130)
    [junit]     at 
org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:206)
    [junit]     at junit.framework.TestResult$1.protect(TestResult.java:106)
    [junit]     at junit.framework.TestResult.runProtected(TestResult.java:124)
    [junit]     at junit.framework.TestResult.run(TestResult.java:109)
    [junit]     at junit.framework.TestCase.run(TestCase.java:120)
    [junit]     at junit.framework.TestSuite.runTest(TestSuite.java:230)
    [junit]     at junit.framework.TestSuite.run(TestSuite.java:225)
    [junit]     at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:420)
    [junit]     at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:911)
    [junit]     at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:768)
{noformat}

> FieldCacheSanityChecker called directly by FieldCache.get*
> ----------------------------------------------------------
>
>                 Key: LUCENE-1798
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1798
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Search
>            Reporter: Hoss Man
>            Assignee: Michael McCandless
>             Fix For: 2.9
>
>         Attachments: LUCENE-1798.patch
>
>
> As suggested by McCandless in LUCENE-1749, we can make FieldCacheImpl a 
> client of the FieldCacheSanityChecker and have it sanity check itself each 
> time it creates a new cache entry, and log a warning if it thinks there is a 
> problem.  (although we'd probably only want to do this if the caller has set 
> some sort of infoStream/warningStream type property on the FieldCache object.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to