This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 101753

Summary: AssertionError in APTIncludeHandlerImpl.pushIncludeImpl()
Product: cnd Reporter: Alexander Simon <alexvsimon>
Component: -- Other --Assignee: Vladimir Voskresensky <vv159170>
Status: CLOSED FIXED    
Severity: blocker    
Priority: P1    
Version: 5.x   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:
Attachments: proposed patch: copy shared objects to prevent corrupting
updated patch after review needed changes

Description Alexander Simon 2007-04-19 12:39:34 UTC
java.lang.AssertionError: [(1:
/export/home/as204739/Projects/sfbay/clucene-0.9.10/test/test.h), (3:
/export/home/as204739/Projects/sfbay/clucene-0.9.10/src/CLucene.h), (9:
/export/home/as204739/Projects/sfbay/clucene-0.9.10/src/CLucene/index/IndexWriter.h),
(11:
/export/home/as204739/Projects/sfbay/clucene-0.9.10/src/CLucene/search/Similarity.h)]
started on
/export/home/as204739/Projects/sfbay/clucene-0.9.10/test/queryParser/TestQueryParser.cpp
        at
org.netbeans.modules.cnd.apt.impl.support.APTIncludeHandlerImpl.pushIncludeImpl(APTIncludeHandlerImpl.java:209)
        at
org.netbeans.modules.cnd.apt.impl.support.APTIncludeHandlerImpl.pushInclude(APTIncludeHandlerImpl.java:64)
        at
org.netbeans.modules.cnd.modelimpl.parser.apt.APTParseFileWalker.include(APTParseFileWalker.java:252)
        at
org.netbeans.modules.cnd.modelimpl.parser.apt.APTParseFileWalker.onInclude(APTParseFileWalker.java:121)
        at org.netbeans.modules.cnd.apt.support.APTWalker.onAPT(APTWalker.java:225)
        at
org.netbeans.modules.cnd.apt.support.APTWalker.toNextNode(APTWalker.java:329)
        at
org.netbeans.modules.cnd.apt.support.APTWalker.nextTokenImpl(APTWalker.java:293)
        at
org.netbeans.modules.cnd.apt.support.APTWalker.access$100(APTWalker.java:38)
        at
org.netbeans.modules.cnd.apt.support.APTWalker$WalkerTokenStream.nextToken(APTWalker.java:91)
        at
org.netbeans.modules.cnd.apt.utils.APTCommentsFilter.nextToken(APTCommentsFilter.java:39)
        at antlr.TokenStreamSelector.nextToken(TokenStreamSelector.java:41)
        at
org.netbeans.modules.cnd.apt.impl.support.APTExpandedStream.nextToken(APTExpandedStream.java:77)
        at
org.netbeans.modules.cnd.apt.impl.support.lang.APTBaseLanguageFilter$FilterStream.nextToken(APTBaseLanguageFilter.java:104)
        at antlr.TokenBuffer.<init>(TokenBuffer.java:51)
        at antlr.LLkParser.<init>(LLkParser.java:32)
        at antlr.LLkParserNoEx.<init>(LLkParserNoEx.java:42)
        at
org.netbeans.modules.cnd.modelimpl.parser.generated.CPPParser.<init>(CPPParser.java:406)
        at
org.netbeans.modules.cnd.modelimpl.parser.generated.CPPParser.<init>(CPPParser.java:413)
        at
org.netbeans.modules.cnd.modelimpl.parser.CPPParserEx.<init>(CPPParserEx.java:121)
        at
org.netbeans.modules.cnd.modelimpl.parser.CPPParserEx.getInstance(CPPParserEx.java:135)
        at
org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.doParse(FileImpl.java:507)
        at
org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl._reparse(FileImpl.java:280)
        at
org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.reparse(FileImpl.java:256)
        at
org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsed(FileImpl.java:208)
        at
org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:66)
        at
org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:60)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:499)
        at
org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:932)
Comment 1 Vladimir Voskresensky 2007-04-19 18:10:48 UTC
fixed:
- support for copying states
- use copy of state to prevent modification of non-sharable include info data 

cvs log:
Checking in apt/src/org/netbeans/modules/cnd/apt/support/APTIncludeHandler.java;
/shared/data/ccvs/repository/cnd/apt/src/org/netbeans/modules/cnd/apt/support/APTIncludeHandler.java,v
 <--  APTIncludeHandler.java
new revision: 1.1.2.4; previous revision: 1.1.2.3
done
Checking in apt/src/org/netbeans/modules/cnd/apt/support/APTPreprocState.java;
/shared/data/ccvs/repository/cnd/apt/src/org/netbeans/modules/cnd/apt/support/APTPreprocState.java,v
 <--  APTPreprocState.java
new revision: 1.1.2.4; previous revision: 1.1.2.3
done
Checking in
modelimpl/src/org/netbeans/modules/cnd/modelimpl/csm/core/ProjectBase.java;
/shared/data/ccvs/repository/cnd/modelimpl/src/org/netbeans/modules/cnd/modelimpl/csm/core/ProjectBase.java,v
 <--  ProjectBase.java
new revision: 1.2.2.27.2.89; previous revision: 1.2.2.27.2.88
done
Checking in
apt/src/org/netbeans/modules/cnd/apt/impl/support/APTIncludeHandlerImpl.java;
/shared/data/ccvs/repository/cnd/apt/src/org/netbeans/modules/cnd/apt/impl/support/APTIncludeHandlerImpl.java,v
 <--  APTIncludeHandlerImpl.java
new revision: 1.1.2.15; previous revision: 1.1.2.14
done
Checking in
modelimpl/src/org/netbeans/modules/cnd/modelimpl/parser/apt/APTPreprocStateImpl.java;
/shared/data/ccvs/repository/cnd/modelimpl/src/org/netbeans/modules/cnd/modelimpl/parser/apt/APTPreprocStateImpl.java,v
 <--  APTPreprocStateImpl.java
new revision: 1.1.2.11; previous revision: 1.1.2.10
done
Comment 2 Vladimir Voskresensky 2007-04-25 16:13:24 UTC
The bug is reproducible on the many CPUs machine during reparse phase.
Comment 3 Vladimir Voskresensky 2007-04-25 16:16:33 UTC
This problem affects the correctness of reparsing and the result of filling
model by new values.

The problem is that there should not be "clean" operations on shared states, the
clean should be done on exclusive object and then it need to be put into storage
of states
Comment 4 Vladimir Voskresensky 2007-04-25 16:38:52 UTC
Created attachment 41644 [details]
proposed patch: copy shared objects to prevent corrupting
Comment 5 Vladimir Voskresensky 2007-04-26 11:42:58 UTC
Created attachment 41716 [details]
updated patch after review needed changes
Comment 6 Vladimir Voskresensky 2007-04-26 11:58:17 UTC
patch reviewed and integrated 
- put copy of shared object in storage
- use lock when put objects in storage

cvs log:
Checking in
modelimpl/src/org/netbeans/modules/cnd/modelimpl/csm/core/ProjectBase.java;
/shared/data/ccvs/repository/cnd/modelimpl/src/org/netbeans/modules/cnd/modelimpl/csm/core/ProjectBase.java,v
 <--  ProjectBase.java
new revision: 1.2.2.27.2.94; previous revision: 1.2.2.27.2.93
done
Checking in
modelimpl/src/org/netbeans/modules/cnd/modelimpl/csm/core/FileContainer.java;
/shared/data/ccvs/repository/cnd/modelimpl/src/org/netbeans/modules/cnd/modelimpl/csm/core/FileContainer.java,v
 <--  FileContainer.java
new revision: 1.1.2.7; previous revision: 1.1.2.6
done
Checking in
apt/src/org/netbeans/modules/cnd/apt/impl/support/APTIncludeHandlerImpl.java;
/shared/data/ccvs/repository/cnd/apt/src/org/netbeans/modules/cnd/apt/impl/support/APTIncludeHandlerImpl.java,v
 <--  APTIncludeHandlerImpl.java
new revision: 1.1.2.17; previous revision: 1.1.2.16
done