<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>2348</bug_id>
          
          <creation_ts>2003-03-10 13:08:18 +0300</creation_ts>
          <short_desc>Java source files misdetected as Perl</short_desc>
          <delta_ts>2005-07-13 15:45:20 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>file</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Zabaluev">mhz</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>at</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2135</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Zabaluev">mhz</who>
    <bug_when>2003-03-10 13:08:18 +0300</bug_when>
    <thetext>Huge majority of Java source files contain the keyword \&amp;quot;package\&amp;quot;. This word is treated as an indication of a Perl package.

---

---
I believe, the following line in the magic file is to blame:

0       string          package         Perl5 module source text


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12069</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2004-03-01 19:16:45 +0300</bug_when>
    <thetext>Could you attach an example, please. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12168</commentid>
    <comment_count>2</comment_count>
      <attachid>356</attachid>
    <who name="Mikhail Zabaluev">mhz</who>
    <bug_when>2004-03-07 14:18:58 +0300</bug_when>
    <thetext>Created attachment 356
A file from the Jakarta log4j project

file recognizes it as &quot;Perl5 module source text&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12181</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2004-03-08 13:06:46 +0300</bug_when>
    <thetext>When you comment this &quot;Perl5 module source text&quot; rule out, 
file will misdetect perl package files as &quot;ASCII Java program text&quot;. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12184</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Zabaluev">mhz</who>
    <bug_when>2004-03-08 14:30:42 +0300</bug_when>
    <thetext>There should be a more elaborate heuristic.

Components of a Java package name are delimited with dots. Since
widely-available Java package names should be global by convention (e.g.
org.altlinux.oursoftware.ourpackage), single-component package names are
unlikely. In Perl, package names are delimited with &apos;:&apos; (or &quot;&apos;&quot;, but that&apos;s
obscure), and single-component package names are common.

I haven&apos;t had time to master syntax of magic files, so I&apos;ll put it down in regex
parlour.

Here&apos;s a pattern to Java files:

package[[:space:]]+[A-Za-z][A-Za-z0-9]*\.[A-Za-z]

If that doesn&apos;t match, the following matches Perl modules:

package[[:space:]]+[A-Za-z]
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12190</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2004-03-09 01:13:28 +0300</bug_when>
    <thetext>The matcher in libmagic has string limit (32), so your regex is too long. 
 
This one line seems to be enough: 
0	regex	\^package[\ \	]+[A-Za-z][^.;]*;		Perl5 module source text 
 
Please create empty magic_file, add this line there and test with &quot;file -m magic_file&quot;. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12192</commentid>
    <comment_count>6</comment_count>
    <who name="Mikhail Zabaluev">mhz</who>
    <bug_when>2004-03-09 11:03:50 +0300</bug_when>
    <thetext>Tested with the pattern as suggested.
The regex doesn&apos;t mismatch Java files.
But .pm files that do contain &quot;package&quot; are all detected as &quot;ASCII English text&quot;
or &quot;ASCII C++ program text&quot;. Tested on XML-LibXML-1.56.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12195</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2004-03-09 14:46:59 +0300</bug_when>
    <thetext>Ok, fixed in file-4.07-alt3. </thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>356</attachid>
            <date>2004-03-07 14:18:58 +0300</date>
            <delta_ts>2004-03-07 14:18:58 +0300</delta_ts>
            <desc>A file from the Jakarta log4j project</desc>
            <filename>JDBCAppender.java</filename>
            <type>text/plain</type>
            <size>9023</size>
            <attacher name="Mikhail Zabaluev">mhz</attacher>
            
              <data encoding="base64">cGFja2FnZSBvcmcuYXBhY2hlLmxvZzRqLmpkYmM7DQoNCmltcG9ydCBvcmcuYXBhY2hlLmxvZzRq
Lio7DQppbXBvcnQgb3JnLmFwYWNoZS5sb2c0ai5zcGkuKjsNCmltcG9ydCBvcmcuYXBhY2hlLmxv
ZzRqLlBhdHRlcm5MYXlvdXQ7DQoNCmltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0Ow0KaW1wb3J0
IGphdmEudXRpbC5JdGVyYXRvcjsNCg0KaW1wb3J0IGphdmEuc3FsLkRyaXZlck1hbmFnZXI7DQpp
bXBvcnQgamF2YS5zcWwuQ29ubmVjdGlvbjsNCmltcG9ydCBqYXZhLnNxbC5TdGF0ZW1lbnQ7DQpp
bXBvcnQgamF2YS5zcWwuU1FMRXhjZXB0aW9uOw0KDQoNCi8qKg0KICAgPHA+PGI+PGZvbnQgY29s
b3I9IiNGRjIyMjIiPldBUk5JTkc6IFRoaXMgdmVyc2lvbiBvZiBKREJDQXBwZW5kZXINCiAgIGlz
IHZlcnkgbGlrZWx5IHRvIGJlIGNvbXBsZXRlbHkgcmVwbGFjZWQgaW4gdGhlIGZ1dHVyZS4gTW9y
ZW9ldmVyLA0KICAgaXQgZG9lcyBub3QgbG9nIGV4Y2VwdGlvbnMuPC9mb250PjwvYj4gPC9wPg0K
DQogIFRoZSBKREJDQXBwZW5kZXIgcHJvdmlkZXMgZm9yIHNlbmRpbmcgbG9nIGV2ZW50cyB0byBh
IGRhdGFiYXNlLg0KICANCiAgDQogIDxwPkVhY2ggYXBwZW5kIGNhbGwgYWRkcyB0byBhbiA8Y29k
ZT5BcnJheUxpc3Q8L2NvZGU+IGJ1ZmZlci4gIFdoZW4NCiAgdGhlIGJ1ZmZlciBpcyBmaWxsZWQg
ZWFjaCBsb2cgZXZlbnQgaXMgcGxhY2VkIGluIGEgc3FsIHN0YXRlbWVudA0KICAoY29uZmlndXJh
YmxlKSBhbmQgZXhlY3V0ZWQuDQoNCiAgPGI+QnVmZmVyU2l6ZTwvYj4sIDxiPmRiIFVSTDwvYj4s
IDxiPlVzZXI8L2I+LCAmIDxiPlBhc3N3b3JkPC9iPiBhcmUNCiAgY29uZmlndXJhYmxlIG9wdGlv
bnMgaW4gdGhlIHN0YW5kYXJkIGxvZzRqIHdheXMuDQoNCiAgPHA+VGhlIDxjb2RlPnNldFNxbChT
dHJpbmcgc3FsKTwvY29kZT4gc2V0cyB0aGUgU1FMIHN0YXRlbWVudCB0byBiZQ0KICB1c2VkIGZv
ciBsb2dnaW5nIC0tIHRoaXMgc3RhdGVtZW50IGlzIHNlbnQgdG8gYQ0KICA8Y29kZT5QYXR0ZXJu
TGF5b3V0PC9jb2RlPiAoZWl0aGVyIGNyZWF0ZWQgYXV0b21hdGljbHkgYnkgdGhlDQogIGFwcGVu
ZGVyIG9yIGFkZGVkIGJ5IHRoZSB1c2VyKS4gIFRoZXJlZm9yZSBieSBkZWZhdWx0IGFsbCB0aGUN
CiAgY29udmVyc2lvbiBwYXR0ZXJucyBpbiA8Y29kZT5QYXR0ZXJuTGF5b3V0PC9jb2RlPiBjYW4g
YmUgdXNlZA0KICBpbnNpZGUgb2YgdGhlIHN0YXRlbWVudC4gIChzZWUgdGhlIHRlc3QgY2FzZXMg
Zm9yIGV4YW1wbGVzKQ0KDQogIDxwPk92ZXJyaWRpbmcgdGhlIHtAbGluayAjZ2V0TG9nU3RhdGVt
ZW50fSBtZXRob2QgYWxsb3dzIG1vcmUNCiAgZXhwbGljaXQgY29udHJvbCBvZiB0aGUgc3RhdGVt
ZW50IHVzZWQgZm9yIGxvZ2dpbmcuDQoNCiAgPHA+Rm9yIHVzZSBhcyBhIGJhc2UgY2xhc3M6DQoN
CiAgICA8dWw+DQoNCiAgICA8bGk+T3ZlcnJpZGUgPGNvZGU+Z2V0Q29ubmVjdGlvbigpPC9jb2Rl
PiB0byBwYXNzIGFueSBjb25uZWN0aW9uDQogICAgeW91IHdhbnQuICBUeXBpY2FsbHkgdGhpcyBp
cyB1c2VkIHRvIGVuYWJsZSBhcHBsaWNhdGlvbiB3aWRlDQogICAgY29ubmVjdGlvbiBwb29saW5n
Lg0KDQogICAgIDxsaT5PdmVycmlkZSA8Y29kZT5jbG9zZUNvbm5lY3Rpb24oQ29ubmVjdGlvbiBj
b24pPC9jb2RlPiAtLSBpZg0KICAgICB5b3Ugb3ZlcnJpZGUgZ2V0Q29ubmVjdGlvbiBtYWtlIHN1
cmUgdG8gaW1wbGVtZW50DQogICAgIDxjb2RlPmNsb3NlQ29ubmVjdGlvbjwvY29kZT4gdG8gaGFu
ZGxlIHRoZSBjb25uZWN0aW9uIHlvdQ0KICAgICBnZW5lcmF0ZWQuICBUeXBpY2FsbHkgdGhpcyB3
b3VsZCByZXR1cm4gdGhlIGNvbm5lY3Rpb24gdG8gdGhlDQogICAgIHBvb2wgaXQgY2FtZSBmcm9t
Lg0KDQogICAgIDxsaT5PdmVycmlkZSA8Y29kZT5nZXRMb2dTdGF0ZW1lbnQoTG9nZ2luZ0V2ZW50
IGV2ZW50KTwvY29kZT4gdG8NCiAgICAgcHJvZHVjZSBzcGVjaWFsaXplZCBvciBkeW5hbWljIHN0
YXRlbWVudHMuIFRoZSBkZWZhdWx0IHVzZXMgdGhlDQogICAgIHNxbCBvcHRpb24gdmFsdWUuDQoN
CiAgICA8L3VsPg0KDQogICAgQGF1dGhvcjogS2V2aW4gU3RlcHBlICg8QSBIUkVGPSJtYWlsdG86
a3N0ZXBwZUBwYWNiZWxsLm5ldCI+a3N0ZXBwZUBwYWNiZWxsLm5ldDwvQT4pDQoNCiovDQpwdWJs
aWMgY2xhc3MgSkRCQ0FwcGVuZGVyIGV4dGVuZHMgb3JnLmFwYWNoZS5sb2c0ai5BcHBlbmRlclNr
ZWxldG9uDQogICAgaW1wbGVtZW50cyBvcmcuYXBhY2hlLmxvZzRqLkFwcGVuZGVyIHsNCg0KICAv
KioNCiAgICogVVJMIG9mIHRoZSBEQiBmb3IgZGVmYXVsdCBjb25uZWN0aW9uIGhhbmRsaW5nDQog
ICAqLw0KICBwcm90ZWN0ZWQgU3RyaW5nIGRhdGFiYXNlVVJMID0gImpkYmM6b2RiYzpteURCIjsN
Cg0KICAvKioNCiAgICogVXNlciB0byBjb25uZWN0IGFzIGZvciBkZWZhdWx0IGNvbm5lY3Rpb24g
aGFuZGxpbmcNCiAgICovDQogIHByb3RlY3RlZCBTdHJpbmcgZGF0YWJhc2VVc2VyID0gIm1lIjsN
Cg0KICAvKioNCiAgICogVXNlciB0byB1c2UgZm9yIGRlZmF1bHQgY29ubmVjdGlvbiBoYW5kbGlu
Zw0KICAgKi8NCiAgcHJvdGVjdGVkIFN0cmluZyBkYXRhYmFzZVBhc3N3b3JkID0gIm15cGFzc3dv
cmQiOw0KDQogIC8qKg0KICAgKiBDb25uZWN0aW9uIHVzZWQgYnkgZGVmYXVsdC4gIFRoZSBjb25u
ZWN0aW9uIGlzIG9wZW5lZCB0aGUgZmlyc3QgdGltZSBpdA0KICAgKiBpcyBuZWVkZWQgYW5kIHRo
ZW4gaGVsZCBvcGVuIHVudGlsIHRoZSBhcHBlbmRlciBpcyBjbG9zZWQgKHVzdWFsbHkgYXQNCiAg
ICogZ2FyYmFnZSBjb2xsZWN0aW9uKS4gIFRoaXMgYmVoYXZpb3IgaXMgYmVzdCBtb2RpZmllZCBi
eSBjcmVhdGluZyBhDQogICAqIHN1Yi1jbGFzcyBhbmQgb3ZlcnJpZGluZyB0aGUgPGNvZGU+Z2V0
Q29ubmVjdGlvbjwvY29kZT4gYW5kDQogICAqIDxjb2RlPmNsb3NlQ29ubmVjdGlvbjwvY29kZT4g
bWV0aG9kcy4NCiAgICovDQogIHByb3RlY3RlZCBDb25uZWN0aW9uIGNvbm5lY3Rpb24gPSBudWxs
Ow0KDQogIC8qKg0KICAgKiBTdG9yZXMgdGhlIHN0cmluZyBnaXZlbiB0byB0aGUgcGF0dGVybiBs
YXlvdXQgZm9yIGNvbnZlcnNpb24gaW50byBhIFNRTA0KICAgKiBzdGF0ZW1lbnQsIGVnOiBpbnNl
cnQgaW50byBMb2dUYWJsZSAoVGhyZWFkLCBDbGFzcywgTWVzc2FnZSkgdmFsdWVzDQogICAqICgi
JXQiLCAiJWMiLCAiJW0iKQ0KICAgKg0KICAgKiBCZSBjYXJlZnVsIG9mIHF1b3RlcyBpbiB5b3Vy
IG1lc3NhZ2VzIQ0KICAgKg0KICAgKiBBbHNvIHNlZSBQYXR0ZXJuTGF5b3V0Lg0KICAgKi8NCiAg
cHJvdGVjdGVkIFN0cmluZyBzcWxTdGF0ZW1lbnQgPSAiIjsNCg0KICAvKioNCiAgICogc2l6ZSBv
ZiBMb2dnaW5nRXZlbnQgYnVmZmVyIGJlZm9yZSB3cml0dGluZyB0byB0aGUgZGF0YWJhc2UuDQog
ICAqIERlZmF1bHQgaXMgMS4NCiAgICovDQogIHByb3RlY3RlZCBpbnQgYnVmZmVyU2l6ZSA9IDE7
DQoNCiAgLyoqDQogICAqIEFycmF5TGlzdCBob2xkaW5nIHRoZSBidWZmZXIgb2YgTG9nZ2luZyBF
dmVudHMuDQogICAqLw0KICBwcm90ZWN0ZWQgQXJyYXlMaXN0IGJ1ZmZlcjsNCg0KICAvKioNCiAg
ICogSGVscGVyIG9iamVjdCBmb3IgY2xlYXJpbmcgb3V0IHRoZSBidWZmZXINCiAgICovDQogIHBy
b3RlY3RlZCBBcnJheUxpc3QgcmVtb3ZlczsNCg0KICBwdWJsaWMgSkRCQ0FwcGVuZGVyKCkgew0K
ICAgIHN1cGVyKCk7DQogICAgYnVmZmVyID0gbmV3IEFycmF5TGlzdChidWZmZXJTaXplKTsNCiAg
ICByZW1vdmVzID0gbmV3IEFycmF5TGlzdChidWZmZXJTaXplKTsNCiAgfQ0KDQogIC8qKg0KICAg
KiBBZGRzIHRoZSBldmVudCB0byB0aGUgYnVmZmVyLiAgV2hlbiBmdWxsIHRoZSBidWZmZXIgaXMg
Zmx1c2hlZC4NCiAgICovDQogIHB1YmxpYyB2b2lkIGFwcGVuZChMb2dnaW5nRXZlbnQgZXZlbnQp
IHsNCiAgICBidWZmZXIuYWRkKGV2ZW50KTsNCg0KICAgIGlmIChidWZmZXIuc2l6ZSgpID49IGJ1
ZmZlclNpemUpDQogICAgICBmbHVzaEJ1ZmZlcigpOw0KICB9DQoNCiAgLyoqDQogICAqIEJ5IGRl
ZmF1bHQgZ2V0TG9nU3RhdGVtZW50IHNlbmRzIHRoZSBldmVudCB0byB0aGUgcmVxdWlyZWQgTGF5
b3V0IG9iamVjdC4NCiAgICogVGhlIGxheW91dCB3aWxsIGZvcm1hdCB0aGUgZ2l2ZW4gcGF0dGVy
biBpbnRvIGEgd29ya2FibGUgU1FMIHN0cmluZy4NCiAgICoNCiAgICogT3ZlcnJpZGluZyB0aGlz
IHByb3ZpZGVzIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIExvZ2dpbmdFdmVudA0KICAgKiB3aGVuIGNv
bnN0cnVjdGluZyB0aGUgbG9nZ2luZyBzdGF0ZW1lbnQuDQogICAqDQogICAqLw0KICBwcm90ZWN0
ZWQgU3RyaW5nIGdldExvZ1N0YXRlbWVudChMb2dnaW5nRXZlbnQgZXZlbnQpIHsNCiAgICByZXR1
cm4gZ2V0TGF5b3V0KCkuZm9ybWF0KGV2ZW50KTsNCiAgfQ0KDQogIC8qKg0KICAgKg0KICAgKiBP
dmVycmlkZSB0aGlzIHRvIHByb3ZpZGUgYW4gYWxlcnRuYXRlIG1ldGhvZCBvZiBnZXR0aW5nDQog
ICAqIGNvbm5lY3Rpb25zIChzdWNoIGFzIGNhY2hpbmcpLiAgT25lIG1ldGhvZCB0byBmaXggdGhp
cyBpcyB0byBvcGVuDQogICAqIGNvbm5lY3Rpb25zIGF0IHRoZSBzdGFydCBvZiBmbHVzaEJ1ZmZl
cigpIGFuZCBjbG9zZSB0aGVtIGF0IHRoZQ0KICAgKiBlbmQuICBJIHVzZSBhIGNvbm5lY3Rpb24g
cG9vbCBvdXRzaWRlIG9mIEpEQkNBcHBlbmRlciB3aGljaCBpcw0KICAgKiBhY2Nlc3NlZCBpbiBh
biBvdmVycmlkZSBvZiB0aGlzIG1ldGhvZC4NCiAgICogKi8NCiAgcHJvdGVjdGVkIHZvaWQgZXhl
Y3V0ZShTdHJpbmcgc3FsKSB0aHJvd3MgU1FMRXhjZXB0aW9uIHsNCg0KICAgIENvbm5lY3Rpb24g
Y29uID0gbnVsbDsNCiAgICBTdGF0ZW1lbnQgc3RtdCA9IG51bGw7DQoNCiAgICB0cnkgew0KICAg
ICAgICBjb24gPSBnZXRDb25uZWN0aW9uKCk7DQoNCiAgICAgICAgc3RtdCA9IGNvbi5jcmVhdGVT
dGF0ZW1lbnQoKTsNCiAgICAgICAgc3RtdC5leGVjdXRlVXBkYXRlKHNxbCk7DQogICAgfSBjYXRj
aCAoU1FMRXhjZXB0aW9uIGUpIHsNCiAgICAgICBpZiAoc3RtdCAhPSBudWxsKQ0KCSAgICAgc3Rt
dC5jbG9zZSgpOw0KICAgICAgIHRocm93IGU7DQogICAgfQ0KICAgIHN0bXQuY2xvc2UoKTsNCiAg
ICBjbG9zZUNvbm5lY3Rpb24oY29uKTsNCg0KICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJFeGVj
dXRlOiAiICsgc3FsKTsNCiAgfQ0KDQoNCiAgLyoqDQogICAqIE92ZXJyaWRlIHRoaXMgdG8gcmV0
dXJuIHRoZSBjb25uZWN0aW9uIHRvIGEgcG9vbCwgb3IgdG8gY2xlYW4gdXAgdGhlDQogICAqIHJl
c291cmNlLg0KICAgKg0KICAgKiBUaGUgZGVmYXVsdCBiZWhhdmlvciBob2xkcyBhIHNpbmdsZSBj
b25uZWN0aW9uIG9wZW4gdW50aWwgdGhlIGFwcGVuZGVyDQogICAqIGlzIGNsb3NlZCAodHlwaWNh
bGx5IHdoZW4gZ2FyYmFnZSBjb2xsZWN0ZWQpLg0KICAgKi8NCiAgcHJvdGVjdGVkIHZvaWQgY2xv
c2VDb25uZWN0aW9uKENvbm5lY3Rpb24gY29uKSB7DQogIH0NCg0KICAvKioNCiAgICogT3ZlcnJp
ZGUgdGhpcyB0byBsaW5rIHdpdGggeW91ciBjb25uZWN0aW9uIHBvb2xpbmcgc3lzdGVtLg0KICAg
Kg0KICAgKiBCeSBkZWZhdWx0IHRoaXMgY3JlYXRlcyBhIHNpbmdsZSBjb25uZWN0aW9uIHdoaWNo
IGlzIGhlbGQgb3Blbg0KICAgKiB1bnRpbCB0aGUgb2JqZWN0IGlzIGdhcmJhZ2UgY29sbGVjdGVk
Lg0KICAgKi8NCiAgcHJvdGVjdGVkIENvbm5lY3Rpb24gZ2V0Q29ubmVjdGlvbigpIHRocm93cyBT
UUxFeGNlcHRpb24gew0KICAgICAgaWYgKCFEcml2ZXJNYW5hZ2VyLmdldERyaXZlcnMoKS5oYXNN
b3JlRWxlbWVudHMoKSkNCgkgICAgIHNldERyaXZlcigic3VuLmpkYmMub2RiYy5KZGJjT2RiY0Ry
aXZlciIpOw0KDQogICAgICBpZiAoY29ubmVjdGlvbiA9PSBudWxsKSB7DQogICAgICAgIGNvbm5l
Y3Rpb24gPSBEcml2ZXJNYW5hZ2VyLmdldENvbm5lY3Rpb24oZGF0YWJhc2VVUkwsIGRhdGFiYXNl
VXNlciwNCgkJCQkJZGF0YWJhc2VQYXNzd29yZCk7DQogICAgICB9DQoNCiAgICAgIHJldHVybiBj
b25uZWN0aW9uOw0KICB9DQoNCiAgLyoqDQogICAqIENsb3NlcyB0aGUgYXBwZW5kZXIsIGZsdXNo
aW5nIHRoZSBidWZmZXIgZmlyc3QgdGhlbiBjbG9zaW5nIHRoZSBkZWZhdWx0DQogICAqIGNvbm5l
Y3Rpb24gaWYgaXQgaXMgb3Blbi4NCiAgICovDQogIHB1YmxpYyB2b2lkIGNsb3NlKCkNCiAgew0K
ICAgIGZsdXNoQnVmZmVyKCk7DQoNCiAgICB0cnkgew0KICAgICAgaWYgKGNvbm5lY3Rpb24gIT0g
bnVsbCAmJiAhY29ubmVjdGlvbi5pc0Nsb3NlZCgpKQ0KICAgICAgICAgIGNvbm5lY3Rpb24uY2xv
c2UoKTsNCiAgICB9IGNhdGNoIChTUUxFeGNlcHRpb24gZSkgew0KICAgICAgICBlcnJvckhhbmRs
ZXIuZXJyb3IoIkVycm9yIGNsb3NpbmcgY29ubmVjdGlvbiIsIGUsIEVycm9yQ29kZS5HRU5FUklD
X0ZBSUxVUkUpOw0KICAgIH0NCiAgICB0aGlzLmNsb3NlZCA9IHRydWU7DQogIH0NCg0KICAvKioN
CiAgICogbG9vcHMgdGhyb3VnaCB0aGUgYnVmZmVyIG9mIExvZ2dpbmdFdmVudHMsIGdldHMgYQ0K
ICAgKiBzcWwgc3RyaW5nIGZyb20gZ2V0TG9nU3RhdGVtZW50KCkgYW5kIHNlbmRzIGl0IHRvIGV4
ZWN1dGUoKS4NCiAgICogRXJyb3JzIGFyZSBzZW50IHRvIHRoZSBlcnJvckhhbmRsZXIuDQogICAq
DQogICAqIElmIGEgc3RhdGVtZW50IGZhaWxzIHRoZSBMb2dnaW5nRXZlbnQgc3RheXMgaW4gdGhl
IGJ1ZmZlciENCiAgICovDQogIHB1YmxpYyB2b2lkIGZsdXNoQnVmZmVyKCkgew0KICAgIC8vRG8g
dGhlIGFjdHVhbCBsb2dnaW5nDQogICAgcmVtb3Zlcy5lbnN1cmVDYXBhY2l0eShidWZmZXIuc2l6
ZSgpKTsNCiAgICBmb3IgKEl0ZXJhdG9yIGkgPSBidWZmZXIuaXRlcmF0b3IoKTsgaS5oYXNOZXh0
KCk7KSB7DQogICAgICB0cnkgew0KICAgICAgICBMb2dnaW5nRXZlbnQgbG9nRXZlbnQgPSAoTG9n
Z2luZ0V2ZW50KWkubmV4dCgpOw0KCSAgICBTdHJpbmcgc3FsID0gZ2V0TG9nU3RhdGVtZW50KGxv
Z0V2ZW50KTsNCgkgICAgZXhlY3V0ZShzcWwpOw0KICAgICAgICByZW1vdmVzLmFkZChsb2dFdmVu
dCk7DQogICAgICB9DQogICAgICBjYXRjaCAoU1FMRXhjZXB0aW9uIGUpIHsNCgkgICAgZXJyb3JI
YW5kbGVyLmVycm9yKCJGYWlsZWQgdG8gZXhjdXRlIHNxbCIsIGUsDQoJCQkgICBFcnJvckNvZGUu
RkxVU0hfRkFJTFVSRSk7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIC8vIHJlbW92ZSBmcm9t
IHRoZSBidWZmZXIgYW55IGV2ZW50cyB0aGF0IHdlcmUgcmVwb3J0ZWQNCiAgICBidWZmZXIucmVt
b3ZlQWxsKHJlbW92ZXMpOw0KICAgIA0KICAgIC8vIGNsZWFyIHRoZSBidWZmZXIgb2YgcmVwb3J0
ZWQgZXZlbnRzDQogICAgcmVtb3Zlcy5jbGVhcigpOw0KICB9DQoNCg0KICAvKiogY2xvc2VzIHRo
ZSBhcHBlbmRlciBiZWZvcmUgZGlzcG9zYWwgKi8NCiAgcHVibGljIHZvaWQgZmluYWxpemUoKSB7
DQogICAgY2xvc2UoKTsNCiAgfQ0KDQoNCiAgLyoqDQogICAqIEpEQkNBcHBlbmRlciByZXF1aXJl
cyBhIGxheW91dC4NCiAgICogKi8NCiAgcHVibGljIGJvb2xlYW4gcmVxdWlyZXNMYXlvdXQoKSB7
DQogICAgcmV0dXJuIHRydWU7DQogIH0NCg0KDQogIC8qKg0KICAgKg0KICAgKi8NCiAgcHVibGlj
IHZvaWQgc2V0U3FsKFN0cmluZyBzKSB7DQogICAgc3FsU3RhdGVtZW50ID0gczsNCiAgICBpZiAo
Z2V0TGF5b3V0KCkgPT0gbnVsbCkgew0KICAgICAgICB0aGlzLnNldExheW91dChuZXcgUGF0dGVy
bkxheW91dChzKSk7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICAoKFBhdHRlcm5MYXlvdXQp
Z2V0TGF5b3V0KCkpLnNldENvbnZlcnNpb25QYXR0ZXJuKHMpOw0KICAgIH0NCiAgfQ0KDQoNCiAg
LyoqDQogICAqIFJldHVybnMgcHJlLWZvcm1hdGVkIHN0YXRlbWVudCBlZzogaW5zZXJ0IGludG8g
TG9nVGFibGUgKG1zZykgdmFsdWVzICgiJW0iKQ0KICAgKi8NCiAgcHVibGljIFN0cmluZyBnZXRT
cWwoKSB7DQogICAgcmV0dXJuIHNxbFN0YXRlbWVudDsNCiAgfQ0KDQoNCiAgcHVibGljIHZvaWQg
c2V0VXNlcihTdHJpbmcgdXNlcikgew0KICAgIGRhdGFiYXNlVXNlciA9IHVzZXI7DQogIH0NCg0K
DQogIHB1YmxpYyB2b2lkIHNldFVSTChTdHJpbmcgdXJsKSB7DQogICAgZGF0YWJhc2VVUkwgPSB1
cmw7DQogIH0NCg0KDQogIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkKFN0cmluZyBwYXNzd29yZCkg
ew0KICAgIGRhdGFiYXNlUGFzc3dvcmQgPSBwYXNzd29yZDsNCiAgfQ0KDQoNCiAgcHVibGljIHZv
aWQgc2V0QnVmZmVyU2l6ZShpbnQgbmV3QnVmZmVyU2l6ZSkgew0KICAgIGJ1ZmZlclNpemUgPSBu
ZXdCdWZmZXJTaXplOw0KICAgIGJ1ZmZlci5lbnN1cmVDYXBhY2l0eShidWZmZXJTaXplKTsNCiAg
ICByZW1vdmVzLmVuc3VyZUNhcGFjaXR5KGJ1ZmZlclNpemUpOw0KICB9DQoNCg0KICBwdWJsaWMg
U3RyaW5nIGdldFVzZXIoKSB7DQogICAgcmV0dXJuIGRhdGFiYXNlVXNlcjsNCiAgfQ0KDQoNCiAg
cHVibGljIFN0cmluZyBnZXRVUkwoKSB7DQogICAgcmV0dXJuIGRhdGFiYXNlVVJMOw0KICB9DQoN
Cg0KICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgew0KICAgIHJldHVybiBkYXRhYmFzZVBh
c3N3b3JkOw0KICB9DQoNCg0KICBwdWJsaWMgaW50IGdldEJ1ZmZlclNpemUoKSB7DQogICAgcmV0
dXJuIGJ1ZmZlclNpemU7DQogIH0NCg0KDQogIC8qKg0KICAgKiBFbnN1cmVzIHRoYXQgdGhlIGdp
dmVuIGRyaXZlciBjbGFzcyBoYXMgYmVlbiBsb2FkZWQgZm9yIHNxbCBjb25uZWN0aW9uDQogICAq
IGNyZWF0aW9uLg0KICAgKi8NCiAgcHVibGljIHZvaWQgc2V0RHJpdmVyKFN0cmluZyBkcml2ZXJD
bGFzcykgew0KICAgIHRyeSB7DQogICAgICBDbGFzcy5mb3JOYW1lKGRyaXZlckNsYXNzKTsNCiAg
ICB9IGNhdGNoIChFeGNlcHRpb24gZSkgew0KICAgICAgZXJyb3JIYW5kbGVyLmVycm9yKCJGYWls
ZWQgdG8gbG9hZCBkcml2ZXIiLCBlLA0KCQkJIEVycm9yQ29kZS5HRU5FUklDX0ZBSUxVUkUpOw0K
ICAgIH0NCiAgfQ0KfQ0KDQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>