рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╕реАрдпреВрдмреАрдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдХрдИ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рд╣реИрдВ, рдЬреЛ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдХреЛрдб рдЬреИрд╕реЗ рдХрд┐ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЖрдИрдбреАрдИ рдЗрдВрдЯреЗрд▓реАрдЬ рдЖрдИрдбреАрдИрдП, рдлреНрд░реА рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рд╕реНрдкреЙрдЯрдмрдЧреНрд╕, рдкреАрдПрдордбреА, рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рд╕реАрдпреВрдмреАрдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрди рд╕рднреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдореАрдХреНрд╖рд╛ рдмрддрд╛рдПрдЧреА рдХрд┐ рд╕реНрдЯреЗрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдФрд░ рднреА рдЕрдзрд┐рдХ рд▓рд╛рдн рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж


CUBA рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдореВрд░реНрдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХреЛрдб рддрдХ рдЕрдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдкреВрд░реНрдг рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВред рд╕реНрд░реЛрдд рдХреЛрдб GitHub рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реА, рд╕реА ++, рд╕реА #, рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдмрдЧ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ 64-рдмрд┐рдЯ рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдорд╛рд╡реЗрди, рдЧреНрд░реИрдбрд▓ рдФрд░ рдЗрдВрдЯреЗрд▓реАрдЬреЗ рдЖрдИрдбреАрдИрдП рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдПред рдореИрдВрдиреЗ рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдБрдЪ рдХреА, рдФрд░ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдбрд╝рдЪрди рдХреЗ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред

рд╢рд░реНрддреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ


рдЪреЗрддрд╛рд╡рдиреА рез

V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ ' StringUtils.isNotEmpty ("handleTabKey") рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред SourceCodeEditorLoader.java (60)

@Override public void loadComponent() { .... String handleTabKey = element.attributeValue("handleTabKey"); if (StringUtils.isNotEmpty("handleTabKey")) { resultComponent.setHandleTabKey(Boolean.parseBoolean(handleTabKey)); } .... } 

рддрддреНрд╡ рд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, isNotEmpty рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡реИрд░рд┐рдПрдмрд▓ рд╣реИрдВрдбрд▓рдЯреИрдХреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдорд┐рд▓рддрд╛ рд╣реИ ред

рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ AbstractTableLoader.java рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд┐рд▓реА:

  • V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'StringUtils.isNotEmpty ("рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп") рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред AbstractTableLoader.java (596)

рдЪреЗрддрд╛рд╡рдиреА реи

V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдкрд┐рдЫрд▓реЗ MenuItemFlatIndex > = 0' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред рдХреНрдпреВрдмрд╛рд╕рд╛рдЗрдбрдореЗрдиреНрдпреВрд╡рд┐рдЬреЗрдЯ.рдЬрд╛рд╡рд╛ (328)

 protected MenuItemWidget findNextMenuItem(MenuItemWidget currentItem) { List<MenuTreeNode> menuTree = buildVisibleTree(this); List<MenuItemWidget> menuItemWidgets = menuTreeToList(menuTree); int menuItemFlatIndex = menuItemWidgets.indexOf(currentItem); int previousMenuItemFlatIndex = menuItemFlatIndex + 1; if (previousMenuItemFlatIndex >= 0) { return menuItemWidgets.get(previousMenuItemFlatIndex); } return null; } 

рд╕реВрдЪреА рдореЗрдВ рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рдиреЗ рдкрд░ рдЗрдВрдбреЗрдХреНрд╕рдСрдл рдлрд╝рдВрдХреНрд╢рди -1 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдорд╛рди 1 рдХреЛ рдлрд┐рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рддрддреНрд╡ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗрдореЗрдиреБрдЗрдЯреЗрдордлреНрд▓реИрдЯрдЗрдВрдбреЗрдХреНрд╕ рдЪрд░ рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ menuItemWidgets рд╕реВрдЪреА рд░рд┐рдХреНрдд рдкрд╛рдИ рдЬрд╛рддреА рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рд╕рд░рдгреА рдУрд╡рд░рд░рди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЪреЗрддрд╛рд╡рдиреА рей

V6009 'рдбрд┐рд▓реАрдЯ' рдлрд╝рдВрдХреНрд╢рди '-1' рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдирд┐рд░реАрдХреНрд╖рдг рддрд░реНрдХ: 1. AbstractCollectionDatasource.java (556)

 protected DataLoadContextQuery createDataQuery(....) { .... StringBuilder orderBy = new StringBuilder(); .... if (orderBy.length() > 0) { orderBy.delete(orderBy.length() - 2, orderBy.length()); orderBy.insert(0, " order by "); } .... } 

рдСрд░реНрдбрд░рдмреА рдмрдлрд╝рд░ рдХреЗ рдЕрдВрддрд┐рдо рджреЛ рд╡рд░реНрдг рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рддрддреНрд╡реЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд░реНрдг рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрд╣рд╛рдБ рд╕реЗ рд╡рд┐рд▓реЛрдкрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯ рдкреЛрдЬреАрд╢рди рдХреЛ рдСрдлрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдСрд░реНрдбрд░рдмреА рдореЗрдВ рдПрдХ рд╡рд░реНрдг рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ StringIndexOutOfBoundsException рдЙрдард╛рдПрдЧрд╛ ред

рдЪреЗрддрд╛рд╡рдиреА рек

V6013 рдСрдмреНрдЬреЗрдХреНрдЯ 'рдорд╛рд╕реНрдЯрд░рдХреЙрд▓рдХреНрд╢рди' рдФрд░ 'рдПрдВрдЯрд┐рдЯреАрдЬрд╝' рдХреА рддреБрд▓рдирд╛ рд╕рдВрджрд░реНрдн рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рд╕рдВрднрд╡рддрдГ рдПрдХ рд╕рдорд╛рдирддрд╛ рддреБрд▓рдирд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рдерд╛ред рдХрд▓реЗрдХреНрд╢рдирдкреНрд░реЙрдкрд░реНрдЯреА рдХреЙрдиреНрдЯреЗрдирд░рдЗрдореНрдкреНрд▓.рдЬрд╛рд╡рд╛ (81)

 @Override public void setItems(@Nullable Collection<E> entities) { super.setItems(entities); Entity masterItem = master.getItemOrNull(); if (masterItem != null) { MetaProperty masterProperty = getMasterProperty(); Collection masterCollection = masterItem.getValue(masterProperty.getName()); if (masterCollection != entities) { updateMasterCollection(masterProperty, masterCollection, entities); } } } 

UpdateMasterCollection рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдПрдВрдЯрд╛рдЗрдЯреЗрд▓рдореЗрдВрдЯ рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ MasterCollection рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдПрдХ рдкрдВрдХреНрддрд┐ рдкрд╣рд▓реЗ, рд╕рдВрдЧреНрд░рд╣ рдХреА рддреБрд▓рдирд╛ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдореВрд▓реНрдп рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдХрд┐рдпрд╛ рд╣реИред

рдЪреЗрддрд╛рд╡рдиреА рел

V6013 рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА 'рд╡реИрд▓реНрдпреВ' рдФрд░ 'рдУрд▓реНрдбрд╡реИрд▓реНрдпреВ' рдХреА рддреБрд▓рдирд╛ рд╕рдВрджрд░реНрдн рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рд╕рдВрднрд╡рддрдГ рдПрдХ рд╕рдорд╛рдирддрд╛ рддреБрд▓рдирд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рдерд╛ред WebOptionsList.java (278)

 protected boolean isCollectionValuesChanged(Collection<I> value, Collection<I> oldValue) { return value != oldValue; } 

рдпрд╣ рдорд╛рдорд▓рд╛ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред рд╕рдВрдЧреНрд░рд╣ рдХреА рддреБрд▓рдирд╛ isCollectionValuesChanged рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╕рдВрджрд░реНрдн рдХреА рддреБрд▓рдирд╛ рд╢рд╛рдпрдж рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЙрджреНрджреЗрд╢реНрдп рдерд╛ред

рдирд┐рд░рд░реНрдердХ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ


рдЪреЗрддрд╛рд╡рдиреА рез

V6007 рдПрдХреНрд╕рдкреНрд░реЗрд╢рди 'mask.charAt (i + рдСрдлрд╕реЗрдЯ)! = рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред DatePickerDocument.java (238)

 private String calculateFormattedString(int offset, String text) .... { .... if ((mask.charAt(i + offset) == placeHolder)) { // <= .... } else if ((mask.charAt(i + offset) != placeHolder) && // <= (Character.isDigit(text.charAt(i)))) { .... } .... } 

рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИ рдЬреЛ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдмрд╛рдж рдореЗрдВ рдХреЛрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдХрдиреЗрдХреНрдЯрд░ == рдирд▓' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред HTML5Support.java (169)

 private boolean validate(NativeEvent event) { .... while (connector == null) { widget = widget.getParent(); connector = Util.findConnectorFor(widget); } if (this.connector == connector) { return true; } else if (connector == null) { // <= return false; } else if (connector.getWidget() instanceof VDDHasDropHandler) { return false; } return true; } 

рдЬрдмрдХрд┐ рд▓реВрдк рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдиреЗрдХреНрдЯрд░ рдЪрд░ рдХрд╛ рдореВрд▓реНрдп рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреЗрдХ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рдФрд░ рд╕рдВрджрд┐рдЧреНрдз рдЪреЗрддрд╛рд╡рдиреА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'StringUtils.isBlank (strValue)' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред рдкрд░рдо.рдЬрд╛рд╡рд╛ (818)

рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб


V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TransactionTest.java (283)

 private void throwException() { throw new RuntimeException(TEST_EXCEPTION_MSG); } @Test public void testSuspendRollback() { Transaction tx = cont.persistence().createTransaction(); try { .... Transaction tx1 = cont.persistence().createTransaction(); try { EntityManager em1 = cont.persistence().getEntityManager(); assertTrue(em != em1); Server server1 = em1.find(Server.class, server.getId()); assertNull(server1); throwException(); // <= tx1.commit(); // <= } catch (Exception e) { // } finally { tx1.end(); } tx.commit(); } finally { tx.end(); } } 

рдереНрд░реЛ рдПрдХреНрд╕рд╕реЗрдкреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ рдЬреЛ tx1.commit рдХреЗ рдХреЙрд▓ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдХреЛрдб рдХреЛ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕реНрд╡реИрдк рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рднреА рдХреБрдЫ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ:

  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TransactionTest.java (218)
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TransTestest.java (163)
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TransactionTest.java (203)
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред TransactionTest.java (137)
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред UpdateDetachedTest.java (153)
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред EclipseLinkDetachedTest.java (132)
  • V6019 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред рджреГрдврд╝рддрд╛ Tj.java (223)

рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж рддрд░реНрдХ


рдЪреЗрддрд╛рд╡рдиреА рез

V6023 рдкреИрд░рд╛рдореАрдЯрд░ 'рдирдордХ' рд╣рдореЗрд╢рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдзрд┐ рд╢рд░реАрд░ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред BCryptEnc рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдиModule.java (47)

 @Override public String getHash(String content, String salt) { salt = BCrypt.gensalt(); return BCrypt.hashpw(content, salt); } 

рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдореЗрдВ, рдирдордХ рдПрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢рдмреНрджрдХреЛрд╢ рд╣рдорд▓реЛрдВ рдФрд░ рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛ рд╣рдорд▓реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рдорд╛рди рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдФрд░ рдЕрдзрд┐рдХ: рдирдордХ (рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА) ред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рджрд░реНрдЬ рдХреА рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣реА рд▓рд┐рдЦреА рдЧрдИ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдП рдЧрдП рдорд╛рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рднреЗрджреНрдпрддрд╛ рд╣реИред

рдЪреЗрддрд╛рд╡рдиреА реи

рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдиреЗ рдПрдХ рд╕рд╛рде рджреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛:

  • V6023 рдкреИрд░рд╛рдореАрдЯрд░ 'рдСрдлрд╕реЗрдЯрд╡рд┐рджрде' рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдп рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпреВрдмрд╛рд╕реБрдЧреНрдореЗрдВрдЯреЗрд╢рдирдлрд┐рд▓реНрдбрд╡реЗрдЯ.рдЬрд╛рд╡рд╛ (433)
  • V6023 рдкреИрд░рд╛рдореАрдЯрд░ 'рдСрдлрд╕реЗрдЯрд╣рд╛рдЗрдЯ' рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдп рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпреВрдмрд╛рд╕реБрдЧреНрдореЗрдВрдЯреЗрд╢рдирдлрд┐рд▓реНрдбрд╡реЗрдЯ.рдЬрд╛рд╡рд╛ (433)

 @Override public void setPosition(int offsetWidth, int offsetHeight) { offsetHeight = getOffsetHeight(); .... if (offsetHeight + getPopupTop() > ....)) { .... } .... offsetWidth = containerFirstChild.getOffsetWidth(); if (offsetWidth + getPopupLeft() > ....)) { .... } else { left = getPopupLeft(); } setPopupPosition(left, top); } 

рдпрд╣ рдХрд╛рдлреА рдЙрддреНрд╕реБрдХ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЗрд╡рд▓ рджреЛ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдСрдлрд╝рд╕реЗрдЯрд╡рд┐рдВрдб рдФрд░ рдСрдлрд╝рд╕реЗрдЯ , рдФрд░ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд╣рд▓реЗ рджреЛрдиреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪреЗрддрд╛рд╡рдиреА рей

V6022 рдкреИрд░рд╛рдореАрдЯрд░ 'рд╢реЙрд░реНрдЯрдХрдЯ' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмреЙрдбреА рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред DeclarativeTrackingAction.java (47)

 public DeclarativeTrackingAction(String id, String caption, String description, String icon, String enable, String visible, String methodName, @Nullable String shortcut, ActionsHolder holder) { super(id); this.caption = caption; this.description = description; this.icon = icon; setEnabled(enable == null || Boolean.parseBoolean(enable)); setVisible(visible == null || Boolean.parseBoolean(visible)); this.methodName = methodName; checkActionsHolder(holder); } 

рдлрд╝рдВрдХреНрд╢рди рд╢реЙрд░реНрдЯрдХрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдХреЗрд╡рд▓ рдПрдХ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреБрдЫ рдФрд░ рджреЛрд╖:

  • V6022 рдкреИрд░рд╛рдореАрдЯрд░ 'рдЯрд╛рдЗрдк' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмреЙрдбреА рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред QueryNode.java (36)
  • V6022 рдкреИрд░рд╛рдореАрдЯрд░ 'text2' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмреЙрдбреА рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред MarkerAddition.java (22)
  • V6022 рдкреИрд░рд╛рдореАрдЯрд░ 'рдЪрдпрди' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмреЙрдбреА рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред AceEditor.java (114)
  • V6022 рдкреИрд░рд╛рдореАрдЯрд░ 'рд╡рд┐рдХрд▓реНрдк' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмреЙрдбреА рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред EntitySerialization.java (379)

рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ, рдПрдХ рд╣реА рдХреЛрдб


рдЪреЗрддрд╛рд╡рдиреА рез

V6032 рдпрд╣ рд╡рд┐рдЪрд┐рддреНрд░ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ 'firstItemId' рдХрд╛ рд╢рд░реАрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ 'lastItemId' рдХреЗ рд╢рд░реАрд░ рдХреЗ рд╕рдорддреБрд▓реНрдп рд╣реИред рдХрдВрдЯреЗрдирд░рдЯреЗрдмрд▓ рдЗрдЯреНрд╕.рдЬрд╛рд╡рд╛ (213), рдХрдВрдЯреЗрдирд░рдЯреЗрдмрд▓ рдЗрдЯреНрд╕.рдЬрд╛рд╡рд╛ (219)
 @Override public Object firstItemId() { List<E> items = container.getItems(); return items.isEmpty() ? null : items.get(0).getId(); } @Override public Object lastItemId() { List<E> items = container.getItems(); return items.isEmpty() ? null : items.get(0).getId(); } 

рдлрд╝рд░реНрд╕реНрдЯ рдЗрдЯрдЗрдордЖрдИрдб рдФрд░ рд▓рд╛рд╕реНрдЯ рдЗрдЯрд┐рдорд┐рдб рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНтАНрд╡рдпрди рд╣реЛрддреЗ рд╣реИрдВред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╕рдВрднрд╡рддрдГ рдЗрдВрдбреЗрдХреНрд╕ 0 рдкрд░ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ред

рдЪреЗрддрд╛рд╡рдиреА реи

V6032 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдХрд╛ рд╢рд░реАрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред SearchComboBoxPainter.java (495), SearchComboBoxPainter.java (501)

 private void paintBackgroundDisabledAndEditable(Graphics2D g) { rect = decodeRect1(); g.setPaint(color53); g.fill(rect); } private void paintBackgroundEnabledAndEditable(Graphics2D g) { rect = decodeRect1(); g.setPaint(color53); g.fill(rect); } 

рд╕рдВрджрд┐рдЧреНрдз рд╕рдорд╛рди рдирд┐рдХрд╛рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рдФрд░ рдХрд╛рд░реНрдпред рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ color53 рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рдФрд░ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдерд╛ред

рдЕрд╢рдХреНрддрдкрди


рдЪреЗрддрд╛рд╡рдиреА рез

V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'descriptionPopup' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред SuggestPopup.java (252), SuggestPopup.java (251)

 protected void updateDescriptionPopupPosition() { int x = getAbsoluteLeft() + WIDTH; int y = getAbsoluteTop(); descriptionPopup.setPopupPosition(x, y); if (descriptionPopup!=null) { descriptionPopup.setPopupPosition(x, y); } } 

рд╕рд┐рд░реНрдл рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрджрд┐рдЧреНрдз рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдзрд┐ setPopupPosition рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рд┐рд╡рд░рдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдирд▓ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рд╕реЗрдЯрдкреЙрдкрдкреЛрдЬрд┐рд╢рди рдХреА рдкрд╣рд▓реА рдХреЙрд▓ рд╢рд╛рдпрдж рдмреЗрдорд╛рдиреА рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЦрддрд░рдирд╛рдХ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЦрд░рд╛рдм рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИред

рдЪреЗрддрд╛рд╡рдиреА реи

V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'tableModel' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред DesktopAbstractTable.java (1580), DesktopAbstractTable.java (1564)

 protected Column addRuntimeGeneratedColumn(String columnId) { // store old cell editors / renderers TableCellEditor[] cellEditors = new TableCellEditor[tableModel.getColumnCount() + 1]; // <= TableCellRenderer[] cellRenderers = new TableCellRenderer[tableModel.getColumnCount() + 1]; // <= for (int i = 0; i < tableModel.getColumnCount(); i++) { // <= Column tableModelColumn = tableModel.getColumn(i); if (tableModel.isGeneratedColumn(tableModelColumn)) { // <= TableColumn tableColumn = getColumn(tableModelColumn); cellEditors[i] = tableColumn.getCellEditor(); cellRenderers[i] = tableColumn.getCellRenderer(); } } Column col = new Column(columnId, columnId); col.setEditable(false); columns.put(col.getId(), col); if (tableModel != null) { // <= tableModel.addColumn(col); } .... } 

рдпрд╣ рдорд╛рдорд▓рд╛ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЬрдм рддрдХ рдЯреЗрдмрд▓рдореЙрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рдмрд╛рд░ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг:

  • V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'tableModel' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред DesktopAbstractTable.java (596), DesktopAbstractTable.java (579)

рд╕рдВрднрд╡рдд: рдПрдХ рддрд░реНрдХ рддреНрд░реБрдЯрд┐


V6026 рдпрд╣ рдорд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 'SortAscending' рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрдпреВрдмрд╛рд╕реНрдХреНрд░реЛрд▓рдЯреЗрдмрд▓рд╡реЗрдЧреЗрдЯ.рдЬрд╛рд╡рд╛ (488)

 @Override protected void sortColumn() { .... if (sortAscending) { if (sortClickCounter < 2) { // special case for initial revert sorting instead of reset sort order if (sortClickCounter == 0) { client.updateVariable(paintableId, "sortascending", false, false); } else { reloadDataFromServer = false; sortClickCounter = 0; sortColumn = null; sortAscending = true; // <= client.updateVariable(paintableId, "resetsortorder", "", true); } } else { client.updateVariable(paintableId, "sortascending", false, false); } } else { if (sortClickCounter < 2) { // special case for initial revert sorting instead of reset sort order if (sortClickCounter == 0) { client.updateVariable(paintableId, "sortascending", true, false); } else { reloadDataFromServer = false; sortClickCounter = 0; sortColumn = null; sortAscending = true; client.updateVariable(paintableId, "resetsortorder", "", true); } } else { reloadDataFromServer = false; sortClickCounter = 0; sortColumn = null; sortAscending = true; client.updateVariable(paintableId, "resetsortorder", "", true); } } .... } 

рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЙрд░реНрдЯрдХреИрдбрд┐рдВрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рди рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдмрд╛рдж рдореЗрдВ рдЙрд╕реА рдорд╛рди рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рд▓реЗрдЦрдХ рдХрд╛ рд╢рд╛рдпрдж рдореВрд▓реНрдп рдЧрд▓рдд рдерд╛ ред

рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг:

  • V6026 рдпрд╣ рдорд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 'SortAscending' рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрдпреВрдмрд╛рдЯреНрд░реАрдЯреЗрдмрд▓рд╡реЗрдЯ.рдЬрд╛рд╡рд╛ (444)

рдЕрдЬреАрдм рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп


рдЪреЗрддрд╛рд╡рдиреА рез

V6037 рд▓реВрдк рдХреЗ рднреАрддрд░ рдмрд┐рдирд╛ рд╢рд░реНрдд 'рд╡рд╛рдкрд╕реА'ред QueryCacheManager.java (128)

 public <T> T getSingleResultFromCache(QueryKey queryKey, List<View> views) { .... for (Object id : queryResult.getResult()) { return (T) em.find(metaClass.getJavaClass(), id, views.toArray(....)); } .... } 

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкрд╣рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреЙрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИред рдпрд╛ рддреЛ рд╡рд╣ рд▓рд╛рдЗрди рдЧрд▓рдд рд╣реИ рдпрд╛ рд▓реВрдк рдХреЛ рдПрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЪреЗрддрд╛рд╡рдиреА реи

V6014 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред DefaultExceptionHandler.java (40)

 @Override public boolean handle(ErrorEvent event, App app) { Throwable t = event.getThrowable(); if (t instanceof SocketException || ExceptionUtils.getRootCause(t) instanceof SocketException) { return true; } if (ExceptionUtils.getThrowableList(t).stream() .anyMatch(o -> o.getClass().getName().equals("...."))) { return true; } if (StringUtils.contains(ExceptionUtils.getMessage(t), "....")) { return true; } AppUI ui = AppUI.getCurrent(); if (ui == null) { return true; } if (t != null) { if (app.getConnection().getSession() != null) { showDialog(app, t); } else { showNotification(app, t); } } return true; } 

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд╣реА рд░рд╣рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЭреВрдареА рдХреЙрд▓ рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХ рдЧрд▓рддреА рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдВ рдЕрдиреНрдп рд╕рдорд╛рди рд╕рдВрджрд┐рдЧреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:

  • V6014 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред ErrorNodesFinder.java (31)
  • V6014 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред FileDownloadController.java (69)
  • V6014 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред IdVarSelector.java (73)
  • V6014 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред IdVarSelector.java (48)
  • V6014 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред IdVarSelector.java (67)
  • V6014 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред IdVarSelector.java (46)
  • V6014 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред JoinVariableNode.java (57)

рдЪреЗрддрд╛рд╡рдиреА рей

V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдЬрд░реВрд░рддрд░реИрд▓реЛрдж' рд╣рдореЗрд╢рд╛ рдЭреВрдареА рд╣реЛрддреА рд╣реИред WebAbstractTable.java (2702)

 protected boolean handleSpecificVariables(Map<String, Object> variables) { boolean needReload = false; if (isUsePresentations() && presentations != null) { Presentations p = getPresentations(); if (p.getCurrent() != null && p.isAutoSave(p.getCurrent()) && needUpdatePresentation(variables)) { Element e = p.getSettings(p.getCurrent()); saveSettings(e); p.setSettings(p.getCurrent(), e); } } return needReload; } 

рдлрд╝рдВрдХреНрд╢рди рдХреА рдЬрд░реВрд░рдд рд╣реИ рд░рд┐рдЯрд░реНрди рд╡реЗрд░рд┐рдПрдмрд▓ рдЪрд░ рдЬрд┐рд╕рдХрд╛ рдорд╛рди рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИ ред рдЙрд╕ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЛрдб рд╢рд╛рдпрдж рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЧрд╛рдпрдм рд╣реИред

рдЪреЗрддрд╛рд╡рдиреА рек

V6062 'рдЗрдирдлреЛрдХрд╕' рдкрджреНрдзрддрд┐ рдХреЗ рдЕрдВрджрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдирдВрдд рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ред GwtAceEditor.java (189), GwtAceEditor.java (190)

 public final native void focus() /*-{ this.focus(); }-*/; public final boolean isFocused() { return this.isFocused(); } 

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░реЛрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреАрд╡рд░реНрдб рдореВрд▓ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдФрд░ рдЯрд┐рдкреНрдкрдгреА-рдЖрдЙрдЯ рдХреЛрдб рд╡рд╛рд▓реЗ рдХрдИ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╢рд╛рдпрдж рдЕрдм рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдлрд╝рдВрдХреНрд╢рди рднреА рдХрд░реЗрдВрдЧреЗред

рд╡рд┐рд╡рд┐рдз


рдЪреЗрддрд╛рд╡рдиреА рез

V6002 рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ 'рдСрдкрд░реЗрд╢рди' рдПрдирдо рдХреЗ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: ADDред DesktopAbstractTable.java (665)

 /** * Operation which caused the datasource change. */ enum Operation { REFRESH, CLEAR, ADD, REMOVE, UPDATE } @Override public void setDatasource(final CollectionDatasource datasource) { .... collectionChangeListener = e -> { switch (e.getOperation()) { case CLEAR: case REFRESH: fieldDatasources.clear(); break; case UPDATE: case REMOVE: for (Object entity : e.getItems()) { fieldDatasources.remove(entity); } break; } }; .... } 

рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ ADD рдХреЗ рдорд╛рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рдореВрд▓реНрдп рд╣реИ рдЬрд┐рд╕рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреА рдЪрд╛рд╣рд┐рдПред

рдЪреЗрддрд╛рд╡рдиреА реи

V6021 рдЪрд░ 'рд╕реНрд░реЛрдд' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╛рд▓реНрдЯ рд╣реЙрд░рд┐рдЬрд╝реЙрдиреНрдЯрд▓ рд▓рд╛рдИрдЯрдбреНрд░реЙрдкрд╣реИрдВрдбрд▓рд░.рдЬрд╛рд╡рд╛ (177)

 @Override protected void handleHTML5Drop(DragAndDropEvent event) { LayoutBoundTransferable transferable = (LayoutBoundTransferable) event .getTransferable(); HorizontalLayoutTargetDetails details = (HorizontalLayoutTargetDetails) event .getTargetDetails(); AbstractOrderedLayout layout = (AbstractOrderedLayout) details .getTarget(); Component source = event.getTransferable().getSourceComponent(); // <= int idx = (details).getOverIndex(); HorizontalDropLocation loc = (details).getDropLocation(); if (loc == HorizontalDropLocation.CENTER || loc == HorizontalDropLocation.RIGHT) { idx++; } Component comp = resolveComponentFromHTML5Drop(event); if (idx >= 0) { layout.addComponent(comp, idx); } else { layout.addComponent(comp); } if (dropAlignment != null) { layout.setComponentAlignment(comp, dropAlignment); } } 

рдЪрд░ рд╕реНрд░реЛрдд рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рд▓реЗрдЦрдХ рд╕реНрд░реЛрдд рдХреЛ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдП, рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЕрдиреНрдп рдЪрд░ рдХреЗ рд╕рд╛рде рд╣реБрдЖ, COMP ред

рдЕрдкреНрд░рдпреБрдХреНрдд рдЪрд░ рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдХрд╛рд░реНрдп:

  • V6021 рдЪрд░ 'рд╕реНрд░реЛрдд' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред DefaultHor рдХреНрд╖реИрддрд┐рдЬрд▓реВрдЯрдЖрдЙрдЯрдбреНрд░реЙрдкрд▓рд░ .java (175)
  • V6021 рдорд╛рди рдХреЛ 'r' рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред ExcelExporter.java (262)
  • V6021 рдЪрд░ 'рдУрд╡рд░' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред DefaultCssLoutoutDropHandler.java (49)
  • V6021 рдЪрд░ 'рд╣рд╕реНрддрд╛рдВрддрд░рдгреАрдп' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлреЙрд▓реНрдЯрд╣реЛрд░рд▓реЙрдпрдЖрдЙрдЯрдбреНрд░реЙрдкрд╣реИрдВрдбрд▓рд░.рдЬрд╛рд╡рд╛ (171)
  • V6021 рдЪрд░ 'рд╣рд╕реНрддрд╛рдВрддрд░рдгреАрдп' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред DefaultHor рдХреНрд╖реИрддрд┐рдЬрд▓реВрдЯрдЖрдЙрдЯрдбреНрд░реЙрдкрд▓рд░ .java (169)
  • V6021 рдкрд░рд┐рд╡рд░реНрддрдиреАрдп 'рдмреАрдирд▓реЛрдХреЗрдЯрд░' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ScreenEventMixin.java (28)

рдЪреЗрддрд╛рд╡рдиреА рей

V6054 рд╡рд░реНрдЧреЛрдВ рдХреА рдЙрдирдХреЗ рдирд╛рдо рд╕реЗ рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред MessageTools.java (283)

 public boolean hasPropertyCaption(MetaProperty property) { Class<?> declaringClass = property.getDeclaringClass(); if (declaringClass == null) return false; String caption = getPropertyCaption(property); int i = caption.indexOf('.'); if (i > 0 && declaringClass.getSimpleName().equals(caption.substring(0, i))) return false; else return true; } 

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдирд╛рдо рд╕реЗ рдПрдХ рд╡рд░реНрдЧ рдХреА рддреБрд▓рдирд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИред рдЬреИрд╕реЗ рдирд╛рдо рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЧрд▓рдд рд╣реИ, рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬреЗрд╡реАрдПрдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдирд╛рдо рдХреЗрд╡рд▓ рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣ рдХреА рддреБрд▓рдирд╛ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рджреЗрддреА рд╣реИ рдФрд░ рдЧрд▓рдд рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИред

CUBA рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЯрд┐рдкреНрдкрдгреА


рдХрд┐рд╕реА рднреА рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреАрдбрд╝реЗ рд╣реИрдВред рдпрд╣ рдЬрд╛рдирдХрд░ рдХрд┐, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рдиреЗ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреА, рд╣рдо рд╕рд╣рд░реНрд╖ рд╕рд╣рдордд рд╣реИрдВред CUBA рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ Apache 2 рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдХреБрдЫ рддреГрддреАрдп-рдкрдХреНрд╖ OSS рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХрд╛рдВрдЯреЗ рд╣реИрдВ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЙрд╕ рдХреЛрдб рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдЙрди рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдХрд╛рдлреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдорд┐рд▓реАрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рд╛рдердорд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдкреЙрдЯрдмрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдмрдбрд╝реЗ рдмрдЧреЛрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рджрд╛рди рд▓рд┐рдЦрдиреЗ рдЪрд╛рд╣рд┐рдПред рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╣рдореЗрдВ рдпрд╣ рднреА рдмрддрд╛рдпрд╛ рдХрд┐ рдЪреЗрддрд╛рд╡рдиреА V6013 рдФрд░ V6054 рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдереА; рдпрд╣ рдЙрд╕ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЙрдирдХрд╛ рд╕рдЪреЗрдд рдирд┐рд░реНрдгрдп рдерд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛ред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рд╕рдВрджрд┐рдЧреНрдз рдХреЛрдб рдЕрдВрд╢реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреАрдбрд╝реЗ рдЦреЛрдЬрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рд╢реЗрд╖ рдЬрди рдЪреЗрддрд╛рд╡рдиреА рджрдорди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХрд╛ рдХреЛрдИ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреА рд╣реИ "рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЦреБрдж рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рджрд╛рди рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП" рдФрд░ рдЗрд╕ рддрд╕реНрд╡реАрд░ рдХреЗ рдмрд┐рдирд╛ рдХрд░реЗрдВ :)

рдЪрд┐рддреНрд░ 3

рдирд┐рд╖реНрдХрд░реНрд╖


рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЖрдкрдХреА рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореМрдЬреВрджрд╛ рдЧреБрдгрд╡рддреНрддрд╛-рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд░реНрд╢ рдкреВрд░рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рджрд░реНрдЬрдиреЛрдВ, рд╕реИрдХрдбрд╝реЛрдВ рдпрд╛ рд╣рдЬрд╛рд░реЛрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рд╛рд▓реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рди рдХреЗрд╡рд▓ рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рд╕рдВрдкрд╛рджрди рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рд╛рдзрди рд╣реИрдВред рдПрдХ рдмрдбрд╝реА рдХрдВрдкрдиреА рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рдЕрдкрдиреЗ рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рдЧреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдХреЛ рдЕрдкрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╣рд░ рд╡рд┐рдХрд╛рд╕ рд╕реНрддрд░ рдкрд░ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рддрд░рдлред

Source: https://habr.com/ru/post/hi449020/


All Articles