Revision 3483 org.gvsig.raster.wcs/trunk/org.gvsig.raster.wcs/org.gvsig.raster.wcs.remoteclient/src/main/java/org/gvsig/remoteclient/wcs/wcs_1_0_0/WCSCoverage1_0_0.java

View differences:

WCSCoverage1_0_0.java
55 55
        parser.require(KXmlParser.START_TAG, null, DescribeCoverageTags.COVERAGE_OFFERING);
56 56
        currentTag = parser.next();
57 57

  
58
        while (!end)
58
        while (!end && (currentTag != 1))
59 59
        {
60 60
             switch(currentTag)
61 61
             {
......
72 72
                        bBox.setSrs(DescribeCoverageTags.WGS84);
73 73
                        addBBox(bBox);
74 74
                        setLonLatBox(bBox);
75
                        //setNativeSRS(DescribeCoverageTags.WGS84);
75 76
                    } else if (parser.getName().compareTo(DescribeCoverageTags.DOMAINSET) == 0) {
76 77
                    	parseDomainSet(parser);
77 78
                    } else if (parser.getName().compareTo(DescribeCoverageTags.RANGESET) == 0) {
......
193 194
                    	// Reading all axe description
194 195
                    	int axisTag = parser.nextTag();
195 196
                    	boolean endAxe = false;
196
                    	while (!endAxe) {
197
                    	boolean endRangeSet = false;
198
                    	while (!endAxe) { //When axisTag == 1 it's all over. It prevents an infinite loop
197 199
                            switch(axisTag)
198 200
                            {
199 201
                               case KXmlParser.START_TAG:
......
201 203
                            		   AxisDescription as = parseAxisDescription(parser);
202 204
                            		   axisPool.put(as.getName(), as);
203 205
                            		   axisDescriptionName = as.getName();
206
                            		   endRangeSet = true;
204 207
                            	   }
205 208
                            	   break;
206 209
                               case KXmlParser.END_TAG:
......
213 216
                            	   break;
214 217
                            }
215 218
                            axisTag = parser.next();
219
                            if(endRangeSet && parser.getName().compareToIgnoreCase(DescribeCoverageTags.RANGESET) == 0){
220
                            	endAxe = true;
221
                            	end = true;
222
                            }
216 223
                    	}
217 224
                    } else {
218 225
                    	System.out.println("Unrecognized "+parser.getName());
......
227 234
                		System.out.println("[TAG]["+parser.getName()+"]\n[TEXT]["+parser.getText().trim()+"]");
228 235
                	break;
229 236
             }
230
             currentTag = parser.next();
237
             if(!end){
238
            	 currentTag = parser.next();
239
             }
231 240
        }
232 241
	}
233 242

  
......
598 607
					System.out.println("[TAG]["+parser.getName()+"]\n[TEXT]["+parser.getText().trim()+"]");
599 608
				break;
600 609
			}
601
			currentTag = parser.next();
610
			if(!end){
611
				currentTag = parser.next();
612
			}
602 613
		}
603 614
	}
604 615

  
......
663 674
        parser.require(KXmlParser.START_TAG, null, DescribeCoverageTags.GML_ENVELOPE);
664 675
        bBox.setSrs(parser.getAttributeValue("", DescribeCoverageTags.SRSNAME));
665 676
        currentTag = parser.next();
677
        boolean skipThisTag = false;
666 678

  
667 679
        while (!end)
668 680
        {
......
690 702
                    	bBox.setYmin(miny);
691 703
                    	bBox.setXmax(maxx);
692 704
                    	bBox.setYmax(maxy);
705
                    }else{
706
                    	skipThisTag = true;
693 707
                    }
694 708
                    break;
695 709
                case KXmlParser.END_TAG:
696
                    if (parser.getName().compareTo(DescribeCoverageTags.GML_ENVELOPE) == 0)
710
                    if (parser.getName().compareTo(DescribeCoverageTags.GML_ENVELOPE) == 0){
697 711
                        end = true;
712
                    	skipThisTag = true;
713
                    }
698 714
                    break;
699 715
                case KXmlParser.TEXT:
700 716
                	if (parser.getName()!=null)
701 717
                		System.out.println("[TAG]["+parser.getName()+"]\n[TEXT]["+parser.getText().trim()+"]");
702 718
                	break;
703 719
             }
704
             currentTag = parser.next();
720
             if(!skipThisTag)
721
            	 currentTag = parser.next();
705 722
        }
706 723

  
707 724
        return bBox;

Also available in: Unified diff