Project

Profile

Help

Revision f5eccfc6

Added by Michael Kay over 13 years ago

A new build of Saxon 8.8 with a number of bug clearances is being prepared for a particular client. This will be numbered 8.8.0.7. This commit sets the version number accordingly, and clears the following bugs: 1825549, 1893805, 1755333, 1765567, 1878851, 1754413, 1673048. There's also a transient one-line change to SchemaAwareConfiguration to allow the Java product to be built on its own, without the code specific to .NET.

View differences:

latest8.8/bj/net/sf/saxon/Version.java
6 6

  
7 7
public final class Version {
8 8

  
9
    private static final int[] STRUCTURED_VERSION = {8,8,0,6};
10
    private static final String VERSION = "8.8.0.6";
11
    private static final String BUILD = "012223"; //mmddhh
12
    private static final String RELEASE_DATE = "2006-12-01";
9
    private static final int[] STRUCTURED_VERSION = {8,8,0,7};
10
    private static final String VERSION = "8.8.0.7";
11
    private static final String BUILD = "042412"; //mmddhh
12
    private static final String RELEASE_DATE = "2008-04-24";
13 13

  
14 14
    private Version() {
15 15
        // class is never instantiated
latest8.8/bj/net/sf/saxon/expr/ComputedExpression.java
509 509
     * Should only be called if the caller has established that there is a dependency on local variables.
510 510
     */
511 511

  
512
    public synchronized int[] getSlotsUsed() {
512
    public synchronized int[] getSlotsUsed() {  // fix bug 1878851
513 513
        if (slotsUsed != null) {
514 514
            return slotsUsed;
515 515
        }
latest8.8/bj/net/sf/saxon/expr/GeneralComparison10.java
116 116
            maybeBoolean1 = false;
117 117
        }
118 118

  
119
        if (!maybeBoolean0 && !maybeBoolean1) {
119
        if (!maybeBoolean0 && !maybeBoolean1 && (operator == Token.EQUALS || operator == Token.NE)) {
120 120
            int n0 = th.relationship(type0, Type.NUMBER_TYPE);
121 121
            int n1 = th.relationship(type1, Type.NUMBER_TYPE);
122 122
            boolean maybeNumeric0 = (n0 != TypeHierarchy.DISJOINT);
latest8.8/bj/net/sf/saxon/functions/KeyFn.java
199 199
            final XPathContext keyContext = context;
200 200
            final DocumentInfo document = doc;
201 201
            final KeyManager keyManager = controller.getKeyManager();
202
            final int keyFp = fprint;  // bug fix 1755333
202 203
            MappingFunction map = new MappingFunction() {
203 204
                // Map a value to the sequence of nodes having that value as a key value
204 205
                public Object map(Item item) throws XPathException {
205 206
                    return keyManager.selectByKey(
206
                            keyFingerprint, document, (AtomicValue)item, keyContext);
207
                            keyFp, document, (AtomicValue)item, keyContext);
207 208
                }
208 209
            };
209 210

  
latest8.8/bj/net/sf/saxon/instruct/Attribute.java
299 299

  
300 300
        String prefix = null;
301 301
        String localName = null;
302
        String uri = null;
302 303

  
303 304
        if (nameValue instanceof StringValue) {
304 305
            // this will always be the case in XSLT
......
339 340
        } else if (nameValue instanceof QNameValue) {
340 341
            // this is allowed in XQuery
341 342
            localName = ((QNameValue)nameValue).getLocalName();
342
            String namespaceURI = ((QNameValue)nameValue).getNamespaceURI();
343
            if (namespaceURI == null) {
344
                namespaceURI = "";
343
            uri = ((QNameValue)nameValue).getNamespaceURI();
344
            if (uri == null) {
345
                uri = "";
345 346
            }
346
            namespace = new StringValue(namespaceURI);
347
            if (namespaceURI.equals("")) {
347
            //namespace = new StringValue(namespaceURI);
348
            if (uri.equals("")) {
348 349
                prefix = "";
349 350
            } else {
350 351
                prefix = ((QNameValue)nameValue).getPrefix();
......
359 360
            throw dynamicError(this, err, context);
360 361
        }
361 362

  
362
        String uri;
363

  
364
        if (namespace==null) {
363
        if (namespace==null && uri == null) {
365 364
        	if ("".equals(prefix)) {
366 365
        		uri = "";
367 366
        	} else {
latest8.8/bj/net/sf/saxon/number/Numberer_en.java
610 610
    };
611 611

  
612 612
    private static int[] minUniqueDayLength = {
613
        2, 1, 2, 1, 2, 2, 1
613
        1, 2, 1, 2, 1, 2, 2
614 614
    };
615 615

  
616 616
    /**
latest8.8/bj/net/sf/saxon/number/Numberer_fr.java
25 25

  
26 26
	private static String[] frenchOrdinalTens = { "", "Dixi?me", "Vingti?me", "Trenti?me", "Quaranti?me", "Cinquanti?me", "Soixanti?me", "Soixante", "Quatre-vingti?me", "Quatre-vingt" };
27 27

  
28
	private static String[] frenchDays = { "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" };
28
	private static String[] frenchDays = { "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche" };
29 29

  
30 30
	private static String[] frenchMonths = { "Janvier", "F?vrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Ao?t", "Septembre", "Octobre", "Novembre", "D?cembre" };
31 31

  
latest8.8/bj/net/sf/saxon/query/QueryReader.java
295 295
    static void checkSchemaNamespaceImported(StaticQueryContext env, int fingerprint, Declaration declaration)
296 296
            throws StaticError {
297 297
        String uri = env.getNamePool().getURI(fingerprint);
298
        if (uri.equals(NamespaceConstant.SCHEMA || uri.equals(NamespaceConstant.ANONYMOUS)) {
298
        if (uri.equals(NamespaceConstant.SCHEMA) || uri.equals(NamespaceConstant.ANONYMOUS)) {
299 299
            return;
300 300
        } else if (NamespaceConstant.isXDTNamespace(uri)) {
301 301
            return;
latest8.8/bj/net/sf/saxon/tinytree/PrecedingSiblingEnumeration.java
28 28
    }
29 29

  
30 30
    public Item next() {
31
//        if (nextNodeNr < 0) {
32
//            return null;
33
//        }
31
        if (nextNodeNr < 0) { // fix bug 1825549
32
            return null;
33
        }
34 34
        while (true) {
35 35
            nextNodeNr = document.prior[nextNodeNr];
36 36
            if (nextNodeNr < 0) {
latest8.8/bj/net/sf/saxon/trans/KeyManager.java
438 438

  
439 439
        List definitions = getKeyDefinitions(fingerprint);
440 440
        if (definitions == null) {
441
            DynamicError de = new DynamicError("Key " +
442
            		context.getNamePool().getDisplayName(fingerprint) +
441
            String keyName; // bug 1755333
442
            try {
443
                keyName = context.getNamePool().getDisplayName(keyNameFingerprint);
444
            } catch (Exception err) {
445
                keyName = "" + keyNameFingerprint;
446
            }            
447
            DynamicError de = new DynamicError("Key " + keyName +
443 448
            							" has not been defined");
444 449
            de.setXPathContext(context);
445 450
            de.setErrorCode("XTDE1260");
latest8.8/bj/net/sf/saxon/xpath/XPathEvaluator.java
223 223
     */
224 224

  
225 225
    public void setBackwardsCompatible(boolean compatible) {
226
        staticContext.setBackwardsCompatibilityMode(true);
226
        staticContext.setBackwardsCompatibilityMode(compatible);  // fix bug 1754413
227 227
    }
228 228

  
229 229
    /**

Also available in: Unified diff