From: Wolfgang M. M. <wol...@us...> - 2004-07-12 17:17:54
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xquery/parser In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32480/src/org/exist/xquery/parser Modified Files: XQueryParser.java XQueryTreeParser.java Log Message: Various concurrency-related bug fixes: * there has been a conflicting access to the owner property in class DOMFile: in some cases, a second thread set the property to itself while another thread has been in the process of writing data. As the owner object is used to determine the current page in the document, the writing thread used a wrong data page (for a very short period). Thus, one or two document nodes got lost. * a number of small caching problems in dom.dbx led to inconsistencies in the db. Also, queries using string-equality comparisons did not use the cache, so increasing the cache size had no positive effect on query speed. Index: XQueryTreeParser.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/parser/XQueryTreeParser.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** XQueryTreeParser.java 6 Jul 2004 16:10:41 -0000 1.14 --- XQueryTreeParser.java 12 Jul 2004 17:17:42 -0000 1.15 *************** *** 4932,4938 **** _t = _t.getNextSibling(); ! // jmv: trouble with bIg integer in XQuery source: step= new LiteralValue(context, new IntegerValue(Integer.parseInt(i.getText()))); ! step= new LiteralValue(context, new IntegerValue( i.getText() )); ! step.setASTNode(i); --- 4932,4936 ---- _t = _t.getNextSibling(); ! step= new LiteralValue(context, new IntegerValue(i.getText())); step.setASTNode(i); Index: XQueryParser.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/parser/XQueryParser.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** XQueryParser.java 29 Jun 2004 14:23:25 -0000 1.14 --- XQueryParser.java 12 Jul 2004 17:17:42 -0000 1.15 *************** *** 1688,1692 **** exprSingle_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; } ! else if ((_tokenSet_5.member(LA(1)))) { orExpr(); astFactory.addASTChild(currentAST, returnAST); --- 1688,1692 ---- exprSingle_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; } ! else if ((_tokenSet_0.member(LA(1)))) { orExpr(); astFactory.addASTChild(currentAST, returnAST); *************** *** 2634,2638 **** } } ! else if ((_tokenSet_6.member(LA(1)))) { { { --- 2634,2638 ---- } } ! else if ((_tokenSet_5.member(LA(1)))) { { { *************** *** 2833,2837 **** _loop138: do { ! if ((_tokenSet_7.member(LA(1)))) { { switch ( LA(1)) { --- 2833,2837 ---- _loop138: do { ! if ((_tokenSet_6.member(LA(1)))) { { switch ( LA(1)) { *************** *** 2953,2956 **** --- 2953,2957 ---- case XQUERY: case VERSION: + case LITERAL_declare: case LITERAL_default: case LITERAL_function: *************** *** 3196,3199 **** --- 3197,3201 ---- case XQUERY: case VERSION: + case LITERAL_declare: case LITERAL_default: case LITERAL_function: *************** *** 3398,3402 **** boolean synPredMatched157 = false; ! if (((_tokenSet_8.member(LA(1))))) { int _m157 = mark(); synPredMatched157 = true; --- 3400,3404 ---- boolean synPredMatched157 = false; ! if (((_tokenSet_7.member(LA(1))))) { int _m157 = mark(); synPredMatched157 = true; *************** *** 3463,3467 **** else { boolean synPredMatched160 = false; ! if (((_tokenSet_9.member(LA(1))))) { int _m160 = mark(); synPredMatched160 = true; --- 3465,3469 ---- else { boolean synPredMatched160 = false; ! if (((_tokenSet_8.member(LA(1))))) { int _m160 = mark(); synPredMatched160 = true; *************** *** 3523,3527 **** else { boolean synPredMatched163 = false; ! if (((_tokenSet_9.member(LA(1))))) { int _m163 = mark(); synPredMatched163 = true; --- 3525,3529 ---- else { boolean synPredMatched163 = false; ! if (((_tokenSet_8.member(LA(1))))) { int _m163 = mark(); synPredMatched163 = true; *************** *** 3574,3578 **** else { boolean synPredMatched166 = false; ! if (((_tokenSet_9.member(LA(1))))) { int _m166 = mark(); synPredMatched166 = true; --- 3576,3580 ---- else { boolean synPredMatched166 = false; ! if (((_tokenSet_8.member(LA(1))))) { int _m166 = mark(); synPredMatched166 = true; *************** *** 3591,3594 **** --- 3593,3597 ---- case XQUERY: case VERSION: + case LITERAL_declare: case LITERAL_default: case LITERAL_function: *************** *** 3699,3703 **** stepExpr_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; } ! else if ((_tokenSet_8.member(LA(1)))) { axisStep(); astFactory.addASTChild(currentAST, returnAST); --- 3702,3706 ---- stepExpr_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; } ! else if ((_tokenSet_7.member(LA(1)))) { axisStep(); astFactory.addASTChild(currentAST, returnAST); *************** *** 3781,3785 **** boolean synPredMatched175 = false; ! if (((_tokenSet_10.member(LA(1))))) { int _m175 = mark(); synPredMatched175 = true; --- 3784,3788 ---- boolean synPredMatched175 = false; ! if (((_tokenSet_9.member(LA(1))))) { int _m175 = mark(); synPredMatched175 = true; *************** *** 3829,3833 **** forwardOrReverseStep_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; } ! else if ((_tokenSet_8.member(LA(1)))) { abbrevStep(); astFactory.addASTChild(currentAST, returnAST); --- 3832,3836 ---- forwardOrReverseStep_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; } ! else if ((_tokenSet_7.member(LA(1)))) { abbrevStep(); astFactory.addASTChild(currentAST, returnAST); *************** *** 4008,4012 **** nodeTest_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; } ! else if ((_tokenSet_11.member(LA(1)))) { nameTest(); astFactory.addASTChild(currentAST, returnAST); --- 4011,4015 ---- nodeTest_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; } ! else if ((_tokenSet_10.member(LA(1)))) { nameTest(); astFactory.addASTChild(currentAST, returnAST); *************** *** 4097,4100 **** --- 4100,4104 ---- case XQUERY: case VERSION: + case LITERAL_declare: case LITERAL_default: case LITERAL_function: *************** *** 4166,4169 **** --- 4170,4174 ---- case XQUERY: case VERSION: + case LITERAL_declare: case LITERAL_default: case LITERAL_function: *************** *** 4257,4261 **** boolean synPredMatched190 = false; ! if (((_tokenSet_11.member(LA(1))))) { int _m190 = mark(); synPredMatched190 = true; --- 4262,4266 ---- boolean synPredMatched190 = false; ! if (((_tokenSet_10.member(LA(1))))) { int _m190 = mark(); synPredMatched190 = true; *************** *** 4422,4425 **** --- 4427,4431 ---- case XQUERY: case VERSION: + case LITERAL_declare: case LITERAL_default: case LITERAL_function: *************** *** 4551,4555 **** default: boolean synPredMatched198 = false; ! if (((_tokenSet_12.member(LA(1))))) { int _m198 = mark(); synPredMatched198 = true; --- 4557,4561 ---- default: boolean synPredMatched198 = false; ! if (((_tokenSet_11.member(LA(1))))) { int _m198 = mark(); synPredMatched198 = true; *************** *** 4611,4615 **** else { boolean synPredMatched201 = false; ! if (((_tokenSet_12.member(LA(1))))) { int _m201 = mark(); synPredMatched201 = true; --- 4617,4621 ---- else { boolean synPredMatched201 = false; ! if (((_tokenSet_11.member(LA(1))))) { int _m201 = mark(); synPredMatched201 = true; *************** *** 4806,4809 **** --- 4812,4816 ---- case XQUERY: case VERSION: + case LITERAL_declare: case LITERAL_default: case LITERAL_function: *************** *** 4936,4939 **** --- 4943,4947 ---- case XQUERY: case VERSION: + case LITERAL_declare: case LITERAL_default: case LITERAL_function: *************** *** 5239,5243 **** qName(); { ! match(_tokenSet_13); } } --- 5247,5251 ---- qName(); { ! match(_tokenSet_12); } } *************** *** 5837,5841 **** _loop259: do { ! if ((_tokenSet_14.member(LA(1)))) { elementContent(); astFactory.addASTChild(currentAST, returnAST); --- 5845,5849 ---- _loop259: do { ! if ((_tokenSet_13.member(LA(1)))) { elementContent(); astFactory.addASTChild(currentAST, returnAST); *************** *** 6739,6742 **** --- 6747,6762 ---- break; } + case LITERAL_declare: + { + org.exist.xquery.parser.XQueryAST tmp421_AST = null; + tmp421_AST = (org.exist.xquery.parser.XQueryAST)astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp421_AST); + match(LITERAL_declare); + if ( inputState.guessing==0 ) { + name = "declare"; + } + reservedKeywords_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; + break; + } default: { *************** *** 6940,6949 **** public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1()); private static final long[] mk_tokenSet_2() { ! long[] data = { -4057250683051573248L, 8013775106948149189L, 100728768L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2()); private static final long[] mk_tokenSet_3() { ! long[] data = { -4057250683051573248L, 9166696611554996165L, 100728768L, 0L, 0L, 0L}; return data; } --- 6960,6969 ---- public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1()); private static final long[] mk_tokenSet_2() { ! long[] data = { -4039236284542091264L, 8013775106948149189L, 100728768L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2()); private static final long[] mk_tokenSet_3() { ! long[] data = { -4039236284542091264L, 9166696611554996165L, 100728768L, 0L, 0L, 0L}; return data; } *************** *** 6955,6998 **** public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4()); private static final long[] mk_tokenSet_5() { ! long[] data = { -3479646438655262720L, -2561859953414155L, 101187571L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_5 = new BitSet(mk_tokenSet_5()); private static final long[] mk_tokenSet_6() { ! long[] data = { 562949953421312L, 1927366574080L, 0L, 0L}; return data; } public static final BitSet _tokenSet_6 = new BitSet(mk_tokenSet_6()); private static final long[] mk_tokenSet_7() { ! long[] data = { 0L, 985162418487312L, 0L, 0L}; return data; } public static final BitSet _tokenSet_7 = new BitSet(mk_tokenSet_7()); private static final long[] mk_tokenSet_8() { ! long[] data = { -4057250683051573248L, 9166696611554996181L, 100728816L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_8 = new BitSet(mk_tokenSet_8()); private static final long[] mk_tokenSet_9() { ! long[] data = { -3479646438655262720L, -56675424226037819L, 101187523L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_9 = new BitSet(mk_tokenSet_9()); private static final long[] mk_tokenSet_10() { ! long[] data = { 0L, 288230376151711744L, 4032L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_10 = new BitSet(mk_tokenSet_10()); private static final long[] mk_tokenSet_11() { ! long[] data = { -4057250683051573248L, 8013775106948149205L, 100728768L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_11 = new BitSet(mk_tokenSet_11()); private static final long[] mk_tokenSet_12() { - long[] data = { 288511851128422400L, 6701356245527298048L, 0L, 0L}; - return data; - } - public static final BitSet _tokenSet_12 = new BitSet(mk_tokenSet_12()); - private static final long[] mk_tokenSet_13() { long[] data = new long[8]; data[0]=-16L; --- 6975,7013 ---- public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4()); private static final long[] mk_tokenSet_5() { ! long[] data = { 562949953421312L, 1927366574080L, 0L, 0L}; return data; } public static final BitSet _tokenSet_5 = new BitSet(mk_tokenSet_5()); private static final long[] mk_tokenSet_6() { ! long[] data = { 0L, 985162418487312L, 0L, 0L}; return data; } public static final BitSet _tokenSet_6 = new BitSet(mk_tokenSet_6()); private static final long[] mk_tokenSet_7() { ! long[] data = { -4039236284542091264L, 9166696611554996181L, 100728816L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_7 = new BitSet(mk_tokenSet_7()); private static final long[] mk_tokenSet_8() { ! long[] data = { -3461632040145780736L, -56675424226037819L, 101187523L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_8 = new BitSet(mk_tokenSet_8()); private static final long[] mk_tokenSet_9() { ! long[] data = { 0L, 288230376151711744L, 4032L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_9 = new BitSet(mk_tokenSet_9()); private static final long[] mk_tokenSet_10() { ! long[] data = { -4039236284542091264L, 8013775106948149205L, 100728768L, 0L, 0L, 0L}; return data; } public static final BitSet _tokenSet_10 = new BitSet(mk_tokenSet_10()); private static final long[] mk_tokenSet_11() { ! long[] data = { 288511851128422400L, 6701356245527298048L, 0L, 0L}; return data; } public static final BitSet _tokenSet_11 = new BitSet(mk_tokenSet_11()); private static final long[] mk_tokenSet_12() { long[] data = new long[8]; data[0]=-16L; *************** *** 7001,7010 **** return data; } ! public static final BitSet _tokenSet_13 = new BitSet(mk_tokenSet_13()); ! private static final long[] mk_tokenSet_14() { long[] data = { 1152921504606846976L, 1073741824L, 4194307L, 0L, 0L, 0L}; return data; } ! public static final BitSet _tokenSet_14 = new BitSet(mk_tokenSet_14()); } --- 7016,7025 ---- return data; } ! public static final BitSet _tokenSet_12 = new BitSet(mk_tokenSet_12()); ! private static final long[] mk_tokenSet_13() { long[] data = { 1152921504606846976L, 1073741824L, 4194307L, 0L, 0L, 0L}; return data; } ! public static final BitSet _tokenSet_13 = new BitSet(mk_tokenSet_13()); } |