[jira] [Issue Comment Deleted] (COLLECTIONS-546) Implement expiring queue like already exist PassiveExpiringMap

2019-11-13 Thread Chen (Jira)


 [ 
https://issues.apache.org/jira/browse/COLLECTIONS-546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chen updated COLLECTIONS-546:
-
Comment: was deleted

(was: Hello, [~Suryakanth], [~tn], 

Has this feature been implemented?)

> Implement expiring queue like already exist PassiveExpiringMap
> --
>
> Key: COLLECTIONS-546
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-546
> Project: Commons Collections
>  Issue Type: New Feature
>  Components: Collection
>Affects Versions: 4.x
>Reporter: Guram Savinov
>Priority: Major
>  Labels: collection, expiration, queue
>
> It's very useful collection wrapper for map with expiration - 
> PassiveExpiringMap.
> Can you implement queue with expiration like already exist PassiveExpiringMap?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Work logged] (COMPRESS-477) Support for splitted zip files

2019-11-13 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/COMPRESS-477?focusedWorklogId=343050&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-343050
 ]

ASF GitHub Bot logged work on COMPRESS-477:
---

Author: ASF GitHub Bot
Created on: 14/Nov/19 01:12
Start Date: 14/Nov/19 01:12
Worklog Time Spent: 10m 
  Work Description: PeterAlfreadLee commented on issue #84: COMPRESS-477 
Add support for extracting splitted zip files
URL: https://github.com/apache/commons-compress/pull/84#issuecomment-553677838
 
 
   Hi, @bodewig 
   How is this PR being reviewed by now? Please feel free to let me know any 
kind of problems I need to modify.
   I have already pushed the new PR about building a split zip. Unfortunely 
there are some minor merge conflicts in the new PR with this PR(like 
`getBaseName`, adding `diskNumberStart` in `ZipArchiveEntry` and some files for 
testing), and some testcases need to be added to valid the building of split 
zip(I can also import a new library to validate it, but I don't want to do 
that). I hope this PR could be merged so that I can resolve these conflists, 
but of course you can merge them and resoulve these problems by yourself. It's 
all up to you.
   Thank you for your effort creating such a great library.
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 343050)
Time Spent: 3.5h  (was: 3h 20m)

> Support for splitted zip files
> --
>
> Key: COMPRESS-477
> URL: https://issues.apache.org/jira/browse/COMPRESS-477
> Project: Commons Compress
>  Issue Type: New Feature
>  Components: Archivers
>Affects Versions: 1.18
>Reporter: Luís Filipe Nassif
>Priority: Major
>  Labels: zip
>  Time Spent: 3.5h
>  Remaining Estimate: 0h
>
> It would be very useful to support splitted zip files. I've read 
> [https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT] and understood 
> that simply concatenating the segments and removing the split signature 
> 0x08074b50 from first segment would be sufficient, but it is not that simple 
> because compress fails with exception below:
> {code}
> Caused by: java.util.zip.ZipException: archive's ZIP64 end of central 
> directory locator is corrupt.
>  at 
> org.apache.commons.compress.archivers.zip.ZipFile.positionAtCentralDirectory64(ZipFile.java:924)
>  ~[commons-compress-1.18.jar:1.18]
>  at 
> org.apache.commons.compress.archivers.zip.ZipFile.positionAtCentralDirectory(ZipFile.java:901)
>  ~[commons-compress-1.18.jar:1.18]
>  at 
> org.apache.commons.compress.archivers.zip.ZipFile.populateFromCentralDirectory(ZipFile.java:621)
>  ~[commons-compress-1.18.jar:1.18]
>  at 
> org.apache.commons.compress.archivers.zip.ZipFile.(ZipFile.java:295) 
> ~[commons-compress-1.18.jar:1.18]
>  at 
> org.apache.commons.compress.archivers.zip.ZipFile.(ZipFile.java:280) 
> ~[commons-compress-1.18.jar:1.18]
>  at 
> org.apache.commons.compress.archivers.zip.ZipFile.(ZipFile.java:236) 
> ~[commons-compress-1.18.jar:1.18]
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[GitHub] [commons-compress] PeterAlfreadLee commented on issue #84: COMPRESS-477 Add support for extracting splitted zip files

2019-11-13 Thread GitBox
PeterAlfreadLee commented on issue #84: COMPRESS-477 Add support for extracting 
splitted zip files
URL: https://github.com/apache/commons-compress/pull/84#issuecomment-553677838
 
 
   Hi, @bodewig 
   How is this PR being reviewed by now? Please feel free to let me know any 
kind of problems I need to modify.
   I have already pushed the new PR about building a split zip. Unfortunely 
there are some minor merge conflicts in the new PR with this PR(like 
`getBaseName`, adding `diskNumberStart` in `ZipArchiveEntry` and some files for 
testing), and some testcases need to be added to valid the building of split 
zip(I can also import a new library to validate it, but I don't want to do 
that). I hope this PR could be merged so that I can resolve these conflists, 
but of course you can merge them and resoulve these problems by yourself. It's 
all up to you.
   Thank you for your effort creating such a great library.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [commons-codec] aherbert commented on a change in pull request #27: Murmur3fix

2019-11-13 Thread GitBox
aherbert commented on a change in pull request #27: Murmur3fix
URL: https://github.com/apache/commons-codec/pull/27#discussion_r346078788
 
 

 ##
 File path: src/test/java/org/apache/commons/codec/digest/MurmurHash3Test.java
 ##
 @@ -224,4 +225,238 @@ public void testSingleLongRandom() {
}
}
 
+   @Test
+public void test32_x86_String() {
+// Arrange
+final String origin = TEST;
+
+// Act
+final int result = MurmurHash3.hash32_x86(origin);
+
+// Assert
+assertEquals(-436507231, result);
+}
+
+@Test
+public void test128_x64_Short() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(MurmurHash3.SHORT_BYTES);
+BUFFER.putShort(0, (short) 2);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(8673501042631707204L, result[0]);
+assertEquals(491907755572407714L, result[1]);
+}
+
+@Test
+public void test128_x64_Int() {
+// Arrange
+final ByteBuffer BUFFER = 
ByteBuffer.allocate(MurmurHash3.INTEGER_BYTES);
+BUFFER.putInt(0, 3);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(2448828847287705405L, result[0]);
+assertEquals(-4568642211270719983L, result[1]);
+}
+
+@Test
+public void test128_x64_Long() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+BUFFER.putLong(0, 8675309L);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(2339756411022791995L, result[0]);
+assertEquals(8242951144762217305L, result[1]);
+}
+
+@Test
+public void test128_x64_Double() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(Double.SIZE / Byte.SIZE);
+BUFFER.putDouble(0, 456.987);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(6877430437712399133L, result[0]);
+assertEquals(-8576421050167250536L, result[1]);
+}
+
+@Test
+public void test128_x64_String() {
+// Arrange
+final String origin = TEST;
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(origin);
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(6409160382500807310L, result[0]);
+assertEquals(-7835827609130513921L, result[1]);
+}
+
+
+
+@Test
+public void testTwoLongOrdered_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES * 
2);
+for (long i = 0; i < 1000; i++) {
+for (long j = 0; j < 1000; j++) {
+buffer.putLong(0, i);
+buffer.putLong(MurmurHash3.LONG_BYTES, j);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(i, j));
+}
+}
+}
+
+@Test
+public void testTwoLongRandom_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES * 
2);
+final Random random = new Random();
+for (long i = 0; i < 1000; i++) {
+for (long j = 0; j < 1000; j++) {
+final long x = random.nextLong();
+final long y = random.nextLong();
+buffer.putLong(0, x);
+buffer.putLong(MurmurHash3.LONG_BYTES, y);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(x, y));
+}
+}
+}
+
+@Test
+public void testSingleLongOrdered_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+for (long i = 0; i < 1000; i++) {
+buffer.putLong(0, i);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(i));
+}
+}
+
+@Test
+public void testSingleLongRandom_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+final Random random = new Random();
+for (long i = 0; i < 1000; i++) {
+final long x = random.nextLong();
+buffer.putLong(0, x);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(x));
+}
+}
+
+@Test
 
 Review comment:
   All code from this point down has different whitespace indentation.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For qu

[GitHub] [commons-codec] aherbert commented on a change in pull request #27: Murmur3fix

2019-11-13 Thread GitBox
aherbert commented on a change in pull request #27: Murmur3fix
URL: https://github.com/apache/commons-codec/pull/27#discussion_r346078161
 
 

 ##
 File path: src/test/java/org/apache/commons/codec/digest/MurmurHash3Test.java
 ##
 @@ -224,4 +225,238 @@ public void testSingleLongRandom() {
}
}
 
+   @Test
+public void test32_x86_String() {
+// Arrange
+final String origin = TEST;
+
+// Act
+final int result = MurmurHash3.hash32_x86(origin);
+
+// Assert
+assertEquals(-436507231, result);
+}
+
+@Test
+public void test128_x64_Short() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(MurmurHash3.SHORT_BYTES);
+BUFFER.putShort(0, (short) 2);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(8673501042631707204L, result[0]);
+assertEquals(491907755572407714L, result[1]);
+}
+
+@Test
+public void test128_x64_Int() {
+// Arrange
+final ByteBuffer BUFFER = 
ByteBuffer.allocate(MurmurHash3.INTEGER_BYTES);
+BUFFER.putInt(0, 3);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(2448828847287705405L, result[0]);
+assertEquals(-4568642211270719983L, result[1]);
+}
+
+@Test
+public void test128_x64_Long() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+BUFFER.putLong(0, 8675309L);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(2339756411022791995L, result[0]);
+assertEquals(8242951144762217305L, result[1]);
+}
+
+@Test
+public void test128_x64_Double() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(Double.SIZE / Byte.SIZE);
+BUFFER.putDouble(0, 456.987);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(6877430437712399133L, result[0]);
+assertEquals(-8576421050167250536L, result[1]);
+}
+
+@Test
+public void test128_x64_String() {
+// Arrange
+final String origin = TEST;
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(origin);
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(6409160382500807310L, result[0]);
+assertEquals(-7835827609130513921L, result[1]);
+}
+
+
+
+@Test
+public void testTwoLongOrdered_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES * 
2);
+for (long i = 0; i < 1000; i++) {
+for (long j = 0; j < 1000; j++) {
+buffer.putLong(0, i);
+buffer.putLong(MurmurHash3.LONG_BYTES, j);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(i, j));
+}
+}
+}
+
+@Test
+public void testTwoLongRandom_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES * 
2);
+final Random random = new Random();
+for (long i = 0; i < 1000; i++) {
+for (long j = 0; j < 1000; j++) {
+final long x = random.nextLong();
+final long y = random.nextLong();
+buffer.putLong(0, x);
+buffer.putLong(MurmurHash3.LONG_BYTES, y);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(x, y));
+}
+}
+}
+
+@Test
+public void testSingleLongOrdered_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+for (long i = 0; i < 1000; i++) {
+buffer.putLong(0, i);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(i));
+}
+}
+
+@Test
+public void testSingleLongRandom_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+final Random random = new Random();
+for (long i = 0; i < 1000; i++) {
+final long x = random.nextLong();
+buffer.putLong(0, x);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(x));
+}
+}
+
+@Test
+public void testCorrectValues() throws Exception {
+byte[] bytes = "Now is the time for all good men to come to the aid of 
their country".getBytes("UTF-8");
+int hash=0;
+for (int i=0; i

[GitHub] [commons-codec] aherbert commented on a change in pull request #27: Murmur3fix

2019-11-13 Thread GitBox
aherbert commented on a change in pull request #27: Murmur3fix
URL: https://github.com/apache/commons-codec/pull/27#discussion_r346078610
 
 

 ##
 File path: src/test/java/org/apache/commons/codec/digest/MurmurHash3Test.java
 ##
 @@ -224,4 +225,238 @@ public void testSingleLongRandom() {
}
}
 
+   @Test
+public void test32_x86_String() {
+// Arrange
+final String origin = TEST;
+
+// Act
+final int result = MurmurHash3.hash32_x86(origin);
+
+// Assert
+assertEquals(-436507231, result);
+}
+
+@Test
+public void test128_x64_Short() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(MurmurHash3.SHORT_BYTES);
+BUFFER.putShort(0, (short) 2);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(8673501042631707204L, result[0]);
+assertEquals(491907755572407714L, result[1]);
+}
+
+@Test
+public void test128_x64_Int() {
+// Arrange
+final ByteBuffer BUFFER = 
ByteBuffer.allocate(MurmurHash3.INTEGER_BYTES);
+BUFFER.putInt(0, 3);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(2448828847287705405L, result[0]);
+assertEquals(-4568642211270719983L, result[1]);
+}
+
+@Test
+public void test128_x64_Long() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+BUFFER.putLong(0, 8675309L);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(2339756411022791995L, result[0]);
+assertEquals(8242951144762217305L, result[1]);
+}
+
+@Test
+public void test128_x64_Double() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(Double.SIZE / Byte.SIZE);
+BUFFER.putDouble(0, 456.987);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(6877430437712399133L, result[0]);
+assertEquals(-8576421050167250536L, result[1]);
+}
+
+@Test
+public void test128_x64_String() {
+// Arrange
+final String origin = TEST;
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(origin);
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(6409160382500807310L, result[0]);
+assertEquals(-7835827609130513921L, result[1]);
+}
+
+
+
+@Test
+public void testTwoLongOrdered_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES * 
2);
+for (long i = 0; i < 1000; i++) {
+for (long j = 0; j < 1000; j++) {
+buffer.putLong(0, i);
+buffer.putLong(MurmurHash3.LONG_BYTES, j);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(i, j));
+}
+}
+}
+
+@Test
+public void testTwoLongRandom_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES * 
2);
+final Random random = new Random();
+for (long i = 0; i < 1000; i++) {
+for (long j = 0; j < 1000; j++) {
+final long x = random.nextLong();
+final long y = random.nextLong();
+buffer.putLong(0, x);
+buffer.putLong(MurmurHash3.LONG_BYTES, y);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(x, y));
+}
+}
+}
+
+@Test
+public void testSingleLongOrdered_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+for (long i = 0; i < 1000; i++) {
+buffer.putLong(0, i);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(i));
+}
+}
+
+@Test
+public void testSingleLongRandom_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+final Random random = new Random();
+for (long i = 0; i < 1000; i++) {
+final long x = random.nextLong();
+buffer.putLong(0, x);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(x));
+}
+}
+
+@Test
+public void testCorrectValues() throws Exception {
+byte[] bytes = "Now is the time for all good men to come to the aid of 
their country".getBytes("UTF-8");
+int hash=0;
+for (int i=0; i

[GitHub] [commons-codec] aherbert commented on a change in pull request #27: Murmur3fix

2019-11-13 Thread GitBox
aherbert commented on a change in pull request #27: Murmur3fix
URL: https://github.com/apache/commons-codec/pull/27#discussion_r346076407
 
 

 ##
 File path: src/test/java/org/apache/commons/codec/digest/MurmurHash3Test.java
 ##
 @@ -224,4 +225,238 @@ public void testSingleLongRandom() {
}
}
 
+   @Test
+public void test32_x86_String() {
+// Arrange
+final String origin = TEST;
+
+// Act
+final int result = MurmurHash3.hash32_x86(origin);
+
+// Assert
+assertEquals(-436507231, result);
+}
+
+@Test
+public void test128_x64_Short() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(MurmurHash3.SHORT_BYTES);
+BUFFER.putShort(0, (short) 2);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(8673501042631707204L, result[0]);
+assertEquals(491907755572407714L, result[1]);
+}
+
+@Test
+public void test128_x64_Int() {
+// Arrange
+final ByteBuffer BUFFER = 
ByteBuffer.allocate(MurmurHash3.INTEGER_BYTES);
+BUFFER.putInt(0, 3);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(2448828847287705405L, result[0]);
+assertEquals(-4568642211270719983L, result[1]);
+}
+
+@Test
+public void test128_x64_Long() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+BUFFER.putLong(0, 8675309L);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(2339756411022791995L, result[0]);
+assertEquals(8242951144762217305L, result[1]);
+}
+
+@Test
+public void test128_x64_Double() {
+// Arrange
+final ByteBuffer BUFFER = ByteBuffer.allocate(Double.SIZE / Byte.SIZE);
+BUFFER.putDouble(0, 456.987);
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(BUFFER.array());
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(6877430437712399133L, result[0]);
+assertEquals(-8576421050167250536L, result[1]);
+}
+
+@Test
+public void test128_x64_String() {
+// Arrange
+final String origin = TEST;
+
+// Act
+final long[] result = MurmurHash3.hash128_x64(origin);
+
+// Assert
+assertEquals(result.length, 2);
+assertEquals(6409160382500807310L, result[0]);
+assertEquals(-7835827609130513921L, result[1]);
+}
+
+
+
+@Test
+public void testTwoLongOrdered_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES * 
2);
+for (long i = 0; i < 1000; i++) {
+for (long j = 0; j < 1000; j++) {
+buffer.putLong(0, i);
+buffer.putLong(MurmurHash3.LONG_BYTES, j);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(i, j));
+}
+}
+}
+
+@Test
+public void testTwoLongRandom_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES * 
2);
+final Random random = new Random();
+for (long i = 0; i < 1000; i++) {
+for (long j = 0; j < 1000; j++) {
+final long x = random.nextLong();
+final long y = random.nextLong();
+buffer.putLong(0, x);
+buffer.putLong(MurmurHash3.LONG_BYTES, y);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(x, y));
+}
+}
+}
+
+@Test
+public void testSingleLongOrdered_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+for (long i = 0; i < 1000; i++) {
+buffer.putLong(0, i);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(i));
+}
+}
+
+@Test
+public void testSingleLongRandom_32x86() {
+final ByteBuffer buffer = ByteBuffer.allocate(MurmurHash3.LONG_BYTES);
+final Random random = new Random();
+for (long i = 0; i < 1000; i++) {
+final long x = random.nextLong();
+buffer.putLong(0, x);
+assertEquals(MurmurHash3.hash32_x86(buffer.array()), 
MurmurHash3.hash32_x86(x));
+}
+}
+
+@Test
+public void testCorrectValues() throws Exception {
+byte[] bytes = "Now is the time for all good men to come to the aid of 
their country".getBytes("UTF-8");
+int hash=0;
+for (int i=0; i

[GitHub] [commons-codec] Claudenw commented on issue #27: Murmur3fix

2019-11-13 Thread GitBox
Claudenw commented on issue #27: Murmur3fix
URL: https://github.com/apache/commons-codec/pull/27#issuecomment-553627225
 
 
   Would someone please merge this?  The two errors  are in a file I did not 
touch and are in the base build.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [commons-codec] coveralls edited a comment on issue #27: Murmur3fix

2019-11-13 Thread GitBox
coveralls edited a comment on issue #27: Murmur3fix
URL: https://github.com/apache/commons-codec/pull/27#issuecomment-549122650
 
 
   
   [![Coverage 
Status](https://coveralls.io/builds/26972764/badge)](https://coveralls.io/builds/26972764)
   
   Coverage decreased (-0.06%) to 92.724% when pulling 
**ffa0c7faf3eecabadcfee79a74d7e94ba6b7d7d4 on Claudenw:murmur3fix** into 
**f0e122da19684394123c85577405d6dc7cddbb98 on apache:master**.
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [commons-dbcp] louislatreille opened a new pull request #35: DBCP-558 Fix DelegatingConnection readOnly and autoCommit caching mechanism

2019-11-13 Thread GitBox
louislatreille opened a new pull request #35: DBCP-558 Fix DelegatingConnection 
readOnly and autoCommit caching mechanism
URL: https://github.com/apache/commons-dbcp/pull/35
 
 
   https://issues.apache.org/jira/browse/DBCP-558
   
   Previously, we would cache the input of setReadOnly and setAutoCommit 
directly without checking if the underlying connection succeeded in setting the 
configuration parameter. This would result in wrong results from isReadOnly and 
getAutoCommit if the underlying connection didn't support 
read-only/non-read-only or auto-commit/non-auto-commit connections, as with 
SqlServerConnection.
   
   This fixes the issue by caching what is return by isReadOnly and 
getAutoCommit from the underlying connection.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Work logged] (DBCP-558) DelegatingConnection setReadOnly and setAutoCommit sometimes caches the wrong value

2019-11-13 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/DBCP-558?focusedWorklogId=342722&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-342722
 ]

ASF GitHub Bot logged work on DBCP-558:
---

Author: ASF GitHub Bot
Created on: 13/Nov/19 17:03
Start Date: 13/Nov/19 17:03
Worklog Time Spent: 10m 
  Work Description: louislatreille commented on pull request #35: DBCP-558 
Fix DelegatingConnection readOnly and autoCommit caching mechanism
URL: https://github.com/apache/commons-dbcp/pull/35
 
 
   https://issues.apache.org/jira/browse/DBCP-558
   
   Previously, we would cache the input of setReadOnly and setAutoCommit 
directly without checking if the underlying connection succeeded in setting the 
configuration parameter. This would result in wrong results from isReadOnly and 
getAutoCommit if the underlying connection didn't support 
read-only/non-read-only or auto-commit/non-auto-commit connections, as with 
SqlServerConnection.
   
   This fixes the issue by caching what is return by isReadOnly and 
getAutoCommit from the underlying connection.
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 342722)
Remaining Estimate: 0h
Time Spent: 10m

> DelegatingConnection setReadOnly and setAutoCommit sometimes caches the wrong 
> value
> ---
>
> Key: DBCP-558
> URL: https://issues.apache.org/jira/browse/DBCP-558
> Project: Commons DBCP
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Louis Latreille
>Priority: Minor
> Fix For: 2.7.1
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> DelegatingConnection caches the input of setReadOnly and setAutoCommit 
> directly without checking if the underlying connection succeeded in setting 
> the configuration parameter. This results in wrong return value from 
> isReadOnly and getAutoCommit if the underlying connection doesn't support 
> read-only/non-read-only or auto-commit/non-auto-commit connections, as with 
> SqlServerConnection.
>  
> To reproduce the issue:
>  # Create a DelegatingConnection with an underlying SqlServerConnection
>  # Set the connection read-only `con.setReadOnly(true)`
>  # Query the read-only state on the DelegatingConnection, you will get true
>  # Query the read-only state of the underlying SqlServerConnection, you will 
> get false (SqlServer JDBC driver doesn't support read-only connections)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (DBCP-558) DelegatingConnection setReadOnly and setAutoCommit sometimes caches the wrong value

2019-11-13 Thread Louis Latreille (Jira)
Louis Latreille created DBCP-558:


 Summary: DelegatingConnection setReadOnly and setAutoCommit 
sometimes caches the wrong value
 Key: DBCP-558
 URL: https://issues.apache.org/jira/browse/DBCP-558
 Project: Commons DBCP
  Issue Type: Bug
Affects Versions: 2.2.0
Reporter: Louis Latreille
 Fix For: 2.7.1


DelegatingConnection caches the input of setReadOnly and setAutoCommit directly 
without checking if the underlying connection succeeded in setting the 
configuration parameter. This results in wrong return value from isReadOnly and 
getAutoCommit if the underlying connection doesn't support 
read-only/non-read-only or auto-commit/non-auto-commit connections, as with 
SqlServerConnection.

 

To reproduce the issue:
 # Create a DelegatingConnection with an underlying SqlServerConnection
 # Set the connection read-only `con.setReadOnly(true)`
 # Query the read-only state on the DelegatingConnection, you will get true
 # Query the read-only state of the underlying SqlServerConnection, you will 
get false (SqlServer JDBC driver doesn't support read-only connections)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (CONFIGURATION-769) commons configuration addProperty method replaces <

2019-11-13 Thread Deepraj jha (Jira)
Deepraj jha created CONFIGURATION-769:
-

 Summary: commons configuration addProperty method replaces < > 
with < >
 Key: CONFIGURATION-769
 URL: https://issues.apache.org/jira/browse/CONFIGURATION-769
 Project: Commons Configuration
  Issue Type: Bug
  Components: Format
Affects Versions: 2.6
Reporter: Deepraj jha


I am using latest Apache commons configuration 2 version 2.6 and when trying to 
invoke addProperty it replaces < > with < >.

example :
cfg.addProperty("data.array(0).var(0)",  "" );
cfg.write(new FileWriter(this.XmlFile));

Here cfg is XMLConfiguration Object

The resulting xml is :
 {{}}
Expected is :
 {{""}}
 
 
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (DAEMON-412) Tomcat started as windows service does not support Java Native Memory Tracking feature probably because of improper JVM initialization by Procrun

2019-11-13 Thread Artur Linhart (Jira)


 [ 
https://issues.apache.org/jira/browse/DAEMON-412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Artur Linhart updated DAEMON-412:
-
Description: 
In the case the user specifies some from the the NativeMemoryTracking 
parameters (see 
[https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47
 
|https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47]
) like 

-XX:NativeMemoryTracking=summary

in Windows service registry, restarts the service, so the option can be seen in 
the log file by the startup options (for example in Tomcat logs like 
catalina.log), then the Native memory tracking is still disabled and does not 
work. If you try with

jcmd  VM.native_memory summary

to get the information about the native JVM memory in the tomcats JVM, the jcmd 
call fails with the message

:
Native memory tracking is not enabled

and in the Tomcat's log file can be found following error message:

Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not setup 
properly, using wrong launcher? 

The problem seems to be in the JVM launcher Procrun, which dies not initialize 
the JVM properly - as far as I have understood from this blog: 
[https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher 
|https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher]
The Procrun.exe has to define some environment variable before the start of 
JVM, etc. to get the native memory tracking to work.

Known workaround is the start of Tomcat from the command line, but this is no 
option in the productive environment, where you have to let the service run for 
longer time to collect the proper result and maybe also as some different user 
because of security concerns, then such option is simply out of possible 
scenarios. So the Tomcat service JVM cannot be in such circumstances tracked by 
NMT at all, what is the problem in the mission-critical applications.

The Procrun should be modified in the way it enables the NMT in the windows 
service by the startup, by setting the environment variable 
NMT_LEVEL_ to the value "detail" or "summary" (or "off" if unspecified) in 
the dependency on the specified or unspecified option of 
-XX:NativeMemoryTracking
like done normally by java.exe
Remark: Also change of the startup mode from "jvm" to "exe" or "java" does not 
help,. then the windows service does not start at all.

See also the Tomcat bug 
[https://bz.apache.org/bugzilla/show_bug.cgi?id=63922|https://bz.apache.org/bugzilla/show_bug.cgi?id=63922]
which has been qualified as invalid because the problem seems to be in is in 
PROCRUN.

See also the bug [TOMEE-2738]

This will probably affect every java app handled by the Procrun Daemon, if 
installed and started as Windows service, not only Tomcat.


  was:
In the case the user specifies some from the the NativeMemoryTracking 
parameters (see 
[https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47
 
|https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47]
) like 

-XX:NativeMemoryTracking=summary

in Windows service registry, restarts the service, so the option can be seen in 
the log file by the startup options, then the Native memory tracking is still 
disabled and does not work. If you try with

jcmd  VM.native_memory summary

to get the information about the native JVM memory in the tomcats JVM, the jcmd 
call fails with the message

:
Native memory tracking is not enabled

and in the Tomcat's log file can be found following error message:

Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not setup 
properly, using wrong launcher? 

The problem seems to be in the JVM launcher Procrun, which dies not initialize 
the JVM properly - as far as I have understood from this blog: 
[https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher 
|https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher]
The Procrun.exe has to define some environment variable before the start of 
JVM, etc. to get the native memory tracking to work.

Known workaround is the start of Tomcat from the command line, but this is no 
option in the productive environment, where you have to let the service run for 
longer time to collect the proper result and maybe also as some different user 
because of security concerns, then such option is simply out of possible 
scenarios. So the Tomcat service JVM cannot be in such circumstances tracked by 
NMT at all, what is the problem in the mission-critical applications.

The Procrun should be modified in the way it enables the NMT in the windows 
service by the startup, by setting the environment variable 
NMT_LEVEL_ to the value "detail" or "summary" (or "off" if unspecified) in 
the dependency on the specifie

[jira] [Updated] (DAEMON-412) Tomcat started as windows service does not support Java Native Memory Tracking feature probably because of improper JVM initialization by Procrun

2019-11-13 Thread Artur Linhart (Jira)


 [ 
https://issues.apache.org/jira/browse/DAEMON-412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Artur Linhart updated DAEMON-412:
-
Environment: Windows generally (tested on Windows Server 2012 R2 but the 
problem occurs probably, like the user in the internet write, on every Windows 
version)  (was: Windows)

> Tomcat started as windows service does not support Java Native Memory 
> Tracking feature probably because of improper JVM initialization by Procrun
> -
>
> Key: DAEMON-412
> URL: https://issues.apache.org/jira/browse/DAEMON-412
> Project: Commons Daemon
>  Issue Type: Bug
>  Components: Procrun
> Environment: Windows generally (tested on Windows Server 2012 R2 but 
> the problem occurs probably, like the user in the internet write, on every 
> Windows version)
>Reporter: Artur Linhart
>Priority: Major
>
> In the case the user specifies some from the the NativeMemoryTracking 
> parameters (see 
> [https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47
>  
> |https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47]
> ) like 
> -XX:NativeMemoryTracking=summary
> in Windows service registry, restarts the service, so the option can be seen 
> in the log file by the startup options, then the Native memory tracking is 
> still disabled and does not work. If you try with
> jcmd  VM.native_memory summary
> to get the information about the native JVM memory in the tomcats JVM, the 
> jcmd call fails with the message
> :
> Native memory tracking is not enabled
> and in the Tomcat's log file can be found following error message:
> Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not 
> setup properly, using wrong launcher? 
> The problem seems to be in the JVM launcher Procrun, which dies not 
> initialize the JVM properly - as far as I have understood from this blog: 
> [https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher 
> |https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher]
> The Procrun.exe has to define some environment variable before the start of 
> JVM, etc. to get the native memory tracking to work.
> Known workaround is the start of Tomcat from the command line, but this is no 
> option in the productive environment, where you have to let the service run 
> for longer time to collect the proper result and maybe also as some different 
> user because of security concerns, then such option is simply out of possible 
> scenarios. So the Tomcat service JVM cannot be in such circumstances tracked 
> by NMT at all, what is the problem in the mission-critical applications.
> The Procrun should be modified in the way it enables the NMT in the windows 
> service by the startup, by setting the environment variable 
> NMT_LEVEL_ to the value "detail" or "summary" (or "off" if unspecified) 
> in the dependency on the specified or unspecified option of 
> -XX:NativeMemoryTracking
> like done normally by java.exe
> Remark: Also change of the startup mode from "jvm" to "exe" or "java" does 
> not help,. then the windows service does not start at all.
> See also the Tomcat bug 
> [https://bz.apache.org/bugzilla/show_bug.cgi?id=63922|https://bz.apache.org/bugzilla/show_bug.cgi?id=63922]
> which has been qualified as invalid because the problem seems to be in is in 
> PROCRUN.
> See also the bug [TOMEE-2738]
> This will probably affect every java app handled by the Procrun Daemon, if 
> installed and started as Windows service, not only Tomcat.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (COLLECTIONS-735) Concurrent CircularFifoQueue

2019-11-13 Thread David Mollitor (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16973450#comment-16973450
 ] 

David Mollitor commented on COLLECTIONS-735:


[~Guoping1] 

> Concurrent CircularFifoQueue
> 
>
> Key: COLLECTIONS-735
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-735
> Project: Commons Collections
>  Issue Type: Improvement
>  Components: Collection
>Reporter: David Mollitor
>Priority: Major
>
> Create a {{CircularFifoQueue}} that is also a {{BlockingQueue}}.
> That is to say, if the queue is full, overwrite the oldest element.  If the 
> queue is empty, the reader blocks until a value becomes available.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (DAEMON-412) Tomcat started as windows service does not support Java Native Memory Tracking feature probably because of improper JVM initialization by Procrun

2019-11-13 Thread Artur Linhart (Jira)


 [ 
https://issues.apache.org/jira/browse/DAEMON-412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Artur Linhart updated DAEMON-412:
-
Summary: Tomcat started as windows service does not support Java Native 
Memory Tracking feature probably because of improper JVM initialization by 
Procrun  (was: Tomcat started as windows service does not support Java Native 
Memory Tracking feature because of improper JVM initialization by Procrun)

> Tomcat started as windows service does not support Java Native Memory 
> Tracking feature probably because of improper JVM initialization by Procrun
> -
>
> Key: DAEMON-412
> URL: https://issues.apache.org/jira/browse/DAEMON-412
> Project: Commons Daemon
>  Issue Type: Bug
>  Components: Procrun
> Environment: Windows
>Reporter: Artur Linhart
>Priority: Major
>
> In the case the user specifies some from the the NativeMemoryTracking 
> parameters (see 
> [https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47
>  
> |https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47]
> ) like 
> -XX:NativeMemoryTracking=summary
> in Windows service registry, restarts the service, so the option can be seen 
> in the log file by the startup options, then the Native memory tracking is 
> still disabled and does not work. If you try with
> jcmd  VM.native_memory summary
> to get the information about the native JVM memory in the tomcats JVM, the 
> jcmd call fails with the message
> :
> Native memory tracking is not enabled
> and in the Tomcat's log file can be found following error message:
> Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not 
> setup properly, using wrong launcher? 
> The problem seems to be in the JVM launcher Procrun, which dies not 
> initialize the JVM properly - as far as I have understood from this blog: 
> [https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher 
> |https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher]
> The Procrun.exe has to define some environment variable before the start of 
> JVM, etc. to get the native memory tracking to work.
> Known workaround is the start of Tomcat from the command line, but this is no 
> option in the productive environment, where you have to let the service run 
> for longer time to collect the proper result and maybe also as some different 
> user because of security concerns, then such option is simply out of possible 
> scenarios. So the Tomcat service JVM cannot be in such circumstances tracked 
> by NMT at all, what is the problem in the mission-critical applications.
> The Procrun should be modified in the way it enables the NMT in the windows 
> service by the startup, by setting the environment variable 
> NMT_LEVEL_ to the value "detail" or "summary" (or "off" if unspecified) 
> in the dependency on the specified or unspecified option of 
> -XX:NativeMemoryTracking
> like done normally by java.exe
> Remark: Also change of the startup mode from "jvm" to "exe" or "java" does 
> not help,. then the windows service does not start at all.
> See also the Tomcat bug 
> [https://bz.apache.org/bugzilla/show_bug.cgi?id=63922|https://bz.apache.org/bugzilla/show_bug.cgi?id=63922]
> which has been qualified as invalid because the problem seems to be in is in 
> PROCRUN.
> See also the bug [TOMEE-2738]
> This will probably affect every java app handled by the Procrun Daemon, if 
> installed and started as Windows service, not only Tomcat.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (COLLECTIONS-735) Concurrent CircularFifoQueue

2019-11-13 Thread David Mollitor (Jira)
David Mollitor created COLLECTIONS-735:
--

 Summary: Concurrent CircularFifoQueue
 Key: COLLECTIONS-735
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-735
 Project: Commons Collections
  Issue Type: Improvement
  Components: Collection
Reporter: David Mollitor


Create a {{CircularFifoQueue}} that is also a {{BlockingQueue}}.

That is to say, if the queue is full, overwrite the oldest element.  If the 
queue is empty, the reader blocks until a value becomes available.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (DAEMON-412) Tomcat started as windows service does not support Java Native Memory Tracking feature because of improper JVM initialization by Procrun

2019-11-13 Thread Artur Linhart (Jira)


 [ 
https://issues.apache.org/jira/browse/DAEMON-412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Artur Linhart updated DAEMON-412:
-
Description: 
In the case the user specifies some from the the NativeMemoryTracking 
parameters (see 
[https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47
 
|https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47]
) like 

-XX:NativeMemoryTracking=summary

in Windows service registry, restarts the service, so the option can be seen in 
the log file by the startup options, then the Native memory tracking is still 
disabled and does not work. If you try with

jcmd  VM.native_memory summary

to get the information about the native JVM memory in the tomcats JVM, the jcmd 
call fails with the message

:
Native memory tracking is not enabled

and in the Tomcat's log file can be found following error message:

Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not setup 
properly, using wrong launcher? 

The problem seems to be in the JVM launcher Procrun, which dies not initialize 
the JVM properly - as far as I have understood from this blog: 
[https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher 
|https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher]
The Procrun.exe has to define some environment variable before the start of 
JVM, etc. to get the native memory tracking to work.

Known workaround is the start of Tomcat from the command line, but this is no 
option in the productive environment, where you have to let the service run for 
longer time to collect the proper result and maybe also as some different user 
because of security concerns, then such option is simply out of possible 
scenarios. So the Tomcat service JVM cannot be in such circumstances tracked by 
NMT at all, what is the problem in the mission-critical applications.

The Procrun should be modified in the way it enables the NMT in the windows 
service by the startup, by setting the environment variable 
NMT_LEVEL_ to the value "detail" or "summary" (or "off" if unspecified) in 
the dependency on the specified or unspecified option of 
-XX:NativeMemoryTracking
like done normally by java.exe
Remark: Also change of the startup mode from "jvm" to "exe" or "java" does not 
help,. then the windows service does not start at all.

See also the Tomcat bug 
[https://bz.apache.org/bugzilla/show_bug.cgi?id=63922|https://bz.apache.org/bugzilla/show_bug.cgi?id=63922]
which has been qualified as invalid because the problem seems to be in is in 
PROCRUN.

See also the bug [TOMEE-2738]

This will probably affect every java app handled by the Procrun Daemon, if 
installed and started as Windows service, not only Tomcat.


  was:
In the case the user specifies some from the the NativeMemoryTracking 
parameters (see 
[https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47
 
|https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47]
) like 

-XX:NativeMemoryTracking=summary

in Windows service registry, restarts the service, so the option can be seen in 
the log file by the startup options, then the Native memory tracking is still 
disabled and does not work. If you try with

jcmd  VM.native_memory summary

to get the information about the native JVM memory in the tomcats JVM, the jcmd 
call fails with the message

:
Native memory tracking is not enabled

and in the Tomcat's log file can be found following error message:

Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not setup 
properly, using wrong launcher? 

The problem seems to be in the JVM launcher Procrun, which dies not initialize 
the JVM properly - as far as I have understood from this blog: 
[https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher 
|https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher]
The Procrun.exe has to define some environment variable before the start of 
JVM, etc. to get the native memory tracking to work.

Known workaround is the start of Tomcat from the command line, but this is no 
option in the productive environment, where you have to let the service run for 
longer time to collect the proper result and maybe also as some different user 
because of security concerns, then such option is simply out of possible 
scenarios. So the Tomcat service JVM cannot be in such circumstances tracked by 
NMT at all, what is the problem in the mission-critical applications.

The Procrun should be modified in the way it enables the NMT in the windows 
service by the startup, by setting the environment variable 
NMT_LEVEL_ to the value "detail" or "summary" (or "off" if unspecified) in 
the dependency on the specified or unspecified option of 
-XX:NativeMemoryTrac

[jira] [Comment Edited] (COLLECTIONS-733) Thread-Safe Array Blocking Deque

2019-11-13 Thread David Mollitor (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16973445#comment-16973445
 ] 

David Mollitor edited comment on COLLECTIONS-733 at 11/13/19 3:34 PM:
--

[~Guoping1] I'm not sure that's the best approach.  This would require 
double-blocking.  Once at the wrapper level, to check capacity, and one at the 
{{ArrayBlockingQueue}} level to access the underlying data structure.

I think it would be best to wrap an {{ArrayDeque}} with the appropriate locking 
facilities.


was (Author: belugabehr):
[~Guoping1] I'm not sure that's the best approach.  This would require 
double-blocking.  Once at the wrapper level, to check capacity, and one at the 
{{ArrayBlockingQueue}} level to access the underlying data structure.

> Thread-Safe Array Blocking Deque
> 
>
> Key: COLLECTIONS-733
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-733
> Project: Commons Collections
>  Issue Type: New Feature
>Reporter: David Mollitor
>Priority: Major
>
> The JDK offers an 
> [ArrayDeque|https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html]
>  which is a resizable-array implementation of the 
> [Deque|https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html] 
> interface.
> The JDK also offers an 
> [ArrayBlockingQueue|https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ArrayBlockingQueue.html]
>  which is a bounded blocking queue backed by an array.
> What I have had the need for several times now is a resizable-array 
> implementation of a bounded blocking queue.  It should implement all the same 
> methods as the {{ArrayBlockingQueue}} but it can grow as needed, like an 
> {{ArrayDeque}}.  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (COLLECTIONS-733) Thread-Safe Array Blocking Deque

2019-11-13 Thread David Mollitor (Jira)


[ 
https://issues.apache.org/jira/browse/COLLECTIONS-733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16973445#comment-16973445
 ] 

David Mollitor commented on COLLECTIONS-733:


[~Guoping1] I'm not sure that's the best approach.  This would require 
double-blocking.  Once at the wrapper level, to check capacity, and one at the 
{{ArrayBlockingQueue}} level to access the underlying data structure.

> Thread-Safe Array Blocking Deque
> 
>
> Key: COLLECTIONS-733
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-733
> Project: Commons Collections
>  Issue Type: New Feature
>Reporter: David Mollitor
>Priority: Major
>
> The JDK offers an 
> [ArrayDeque|https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html]
>  which is a resizable-array implementation of the 
> [Deque|https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html] 
> interface.
> The JDK also offers an 
> [ArrayBlockingQueue|https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ArrayBlockingQueue.html]
>  which is a bounded blocking queue backed by an array.
> What I have had the need for several times now is a resizable-array 
> implementation of a bounded blocking queue.  It should implement all the same 
> methods as the {{ArrayBlockingQueue}} but it can grow as needed, like an 
> {{ArrayDeque}}.  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (DAEMON-412) Tomcat started as windows service does not support Java Native Memory Tracking feature because of improper JVM initialization by Procrun

2019-11-13 Thread Artur Linhart (Jira)
Artur Linhart created DAEMON-412:


 Summary: Tomcat started as windows service does not support Java 
Native Memory Tracking feature because of improper JVM initialization by Procrun
 Key: DAEMON-412
 URL: https://issues.apache.org/jira/browse/DAEMON-412
 Project: Commons Daemon
  Issue Type: Bug
  Components: Procrun
 Environment: Windows
Reporter: Artur Linhart


In the case the user specifies some from the the NativeMemoryTracking 
parameters (see 
[https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47
 
|https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-0DB3B8D1-8D7D-447F-B6FF-15620103EE47]
) like 

-XX:NativeMemoryTracking=summary

in Windows service registry, restarts the service, so the option can be seen in 
the log file by the startup options, then the Native memory tracking is still 
disabled and does not work. If you try with

jcmd  VM.native_memory summary

to get the information about the native JVM memory in the tomcats JVM, the jcmd 
call fails with the message

:
Native memory tracking is not enabled

and in the Tomcat's log file can be found following error message:

Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not setup 
properly, using wrong launcher? 

The problem seems to be in the JVM launcher Procrun, which dies not initialize 
the JVM properly - as far as I have understood from this blog: 
[https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher 
|https://blogs.oracle.com/poonam/using-nmt-with-custom-jvm-launcher]
The Procrun.exe has to define some environment variable before the start of 
JVM, etc. to get the native memory tracking to work.

Known workaround is the start of Tomcat from the command line, but this is no 
option in the productive environment, where you have to let the service run for 
longer time to collect the proper result and maybe also as some different user 
because of security concerns, then such option is simply out of possible 
scenarios. So the Tomcat service JVM cannot be in such circumstances tracked by 
NMT at all, what is the problem in the mission-critical applications.

The Procrun should be modified in the way it enables the NMT in the windows 
service by the startup, by setting the environment variable 
NMT_LEVEL_ to the value "detail" or "summary" (or "off" if unspecified) in 
the dependency on the specified or unspecified option of 
-XX:NativeMemoryTracking
like done normally by java.exe
Remark: Also change of the startup mode from "jvm" to "exe" or "java" does not 
help,. then the windows service does not start at all.

See also the Tomcat bug 
[https://bz.apache.org/bugzilla/show_bug.cgi?id=63922|https://bz.apache.org/bugzilla/show_bug.cgi?id=63922]
which has been qualified as invalid because the problem seems to be in is in 
PROCRUN.

See also the bug [TOMEE-2738]




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (JEXL-307) Variable redeclaration option

2019-11-13 Thread Dmitri Blinov (Jira)


[ 
https://issues.apache.org/jira/browse/JEXL-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16973127#comment-16973127
 ] 

Dmitri Blinov commented on JEXL-307:


Regarding new commit and new {{Lexical}} class which extends {{Stript}}. We 
have {{Closure}} class which also extends from {{Script}}. I haven't tested it, 
but does it mean the {{Closure}} will not support lexical feature?

> Variable redeclaration option
> -
>
> Key: JEXL-307
> URL: https://issues.apache.org/jira/browse/JEXL-307
> Project: Commons JEXL
>  Issue Type: New Feature
>Affects Versions: 3.1
>Reporter: Dmitri Blinov
>Assignee: Henri Biestro
>Priority: Minor
> Fix For: 3.2
>
>
> As of now, JEXL allows a script writer to redeclare a local variable during 
> script evaluation.
> {code:java}
> var a = 1; var a = 2;{code}
> This may lead to potential errors with misspelled names and clashed 
> variables. Checking for already defined variable is a common feature of many 
> languages. This feature can be implemented in JEXL as an additional option of 
> JexlFeatures class, enabled by default, thus allowing compatibility with 
> existing code.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)