- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
public int doEndTag() throws JspException {
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
try {
String fieldValue = fdata;
String boolVal="false";
StringBuffer field_Value = new StringBuffer();
String indexString="";
int spaceIndex;
int slen = fieldValue.length();
int starti=0;
int endi= fsize;
if (fdata==null) {
boolVal="true";
field_Value.append("");
}
if (fsize > slen || truncateDataSize > fdata.length() ) {
boolVal="true";
field_Value.append(fdata);
}
if (truncateDataSize!=0 && fdata.length() > truncateDataSize ) {
fieldValue="";
fieldValue = fdata.substring(starti,truncateDataSize);
slen = fieldValue.length();
}
while(boolVal=="false") {
indexString= fieldValue.substring(starti,endi);
spaceIndex = indexString.lastIndexOf(" ");
if (spaceIndex == -1) {
int initialLength = field_Value.length();
field_Value.append(fieldValue.substring(starti,endi));
// field_Value.append("<br>");
// MT-2238 start
int firstIndex = indexString.indexOf("<");
int lastIndex = indexString.indexOf(">");
if(lastIndex<firstIndex) {
lastIndex = indexString.indexOf(">",(lastIndex+1));
}
if(firstIndex >= 0 && lastIndex <= indexString.length() && lastIndex>firstIndex) {
if(!(indexString.substring(firstIndex+1,lastIndex).equalsIgnoreCase("br"))) {
if(lastIndex<=initialLength && indexString.endsWith(">")) {
field_Value.append("<br>");
}else {
field_Value.insert((initialLength+(lastIndex+1)),"<br>");
}
}
}
//in case no HTML tags
if(!checkInTag(false, field_Value.toString())
&& firstIndex==-1 && lastIndex==-1
) {
// add BR tag
field_Value.append("<br>");
}
// MT-2238 end
} else {
field_Value.append(fieldValue.substring(starti,starti + spaceIndex));
endi = starti + spaceIndex + 1;
if(forceWrap == 1){
field_Value.append("<br>");
} else{
field_Value.append(" ");
}
}
starti = endi;
if((endi + fsize) > slen) {
endi = slen - endi;
field_Value.append(fieldValue.substring(starti,starti + endi));
boolVal="true";
} else {
endi = endi + fsize;
}
}
if (truncateDataSize!=0 && fdata.length() > truncateDataSize && singleLine==false) {
field_Value.append("...");
}
if (singleLine== true ) {
if (fsize<fdata.length())
{
field_Value.delete(0,field_Value.length());
field_Value.append(fieldValue.substring(0,fsize));
field_Value.append("...");
}
}
pageContext.getOut().write(field_Value.toString());
} catch (Exception e) {
log.error(" Exception in image tag ",e);
}
return EVAL_PAGE;
}
Найдено в кастомном теге нашева прилаженийа. Писано паходу интусами %) ы
Вся соль в строке (#29):
while(boolVal=="false")
И что самое интересное.. Оно работает!! :DDD ы
А работает как я выяснил изза 'smart' части java %)) так как boolVal инитиализируется в этом же методе, то boolVal = "false" и "false" это 1 и тот же объект %) паэтаму и проходит сравнение. Т.е. java подменяет "false" во всех местах на адин и тот же объект %) но если бы "false" пришёл снаружи, то всё.. это другой объект %)
ппц, я когда увидел долго бился головой ап стенку %)) в папытках понять, почему оно работает %))
ксати я точно не уверен, но помойму если в настройках компилятора покапаться, то думаю можно сделать так чтобы каждой объявление "false" было новым объектом (или нельзя? О_о хотя ясно, что это бесмыслено), тогда работать не будит %) ы
istem 20.10.2010 17:02 # 0
unfunk 20.10.2010 17:08 # +4
Lure Of Chaos 20.10.2010 17:11 # −2
Lure Of Chaos 22.10.2010 23:48 # 0
sectus 21.10.2010 04:24 # +3
user654321 21.10.2010 07:01 # 0
Мистер Хэнки 21.10.2010 07:10 # −1
Allocates a Boolean object representing the value true if the string argument is not null and is equal, ignoring case, to the string "true". Otherwise, allocate a Boolean object representing the value false.
+ автобоксинг
boolVal = "true"; => boolVal = new Boolean("true"); => boolVal = true;
Но, естественно, менее говнистым сей код от этого не становится.
konsoletyper 21.10.2010 11:38 # +3
Pepper-X 06.06.2011 17:17 # 0
если в разных то ужо будут расныйэ.. ы
scalar4eblo4no 22.10.2010 00:54 # +1
Запостившему - срочно усиленно учить русский язык, отложив пока программирование.
bugmenot 22.10.2010 17:07 # 0
Pepper-X 06.06.2011 17:16 # −1
руски фасмошна йа снайу лучшэ вашефа ;) ыы
а как писат ента личнайэ дела каштафа %) ы
йа лична так релаксируйу %))
з.ы. к таму жэ переключатсо с "рускафа" на "не руски" оч дажа палесна для моцка %)) пачти как с инасранава на радной и абратна %) ы
bugmenot 06.06.2011 21:56 # 0
guest 07.06.2011 00:36 # 0
bugmenot 07.06.2011 00:45 # 0
guest 07.06.2011 01:37 # 0
bugmenot 07.06.2011 17:17 # 0