[OLINGO-260] fix for integration test deadlock

Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/fc42d2ad
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/fc42d2ad
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/fc42d2ad

Branch: refs/heads/olingo-266-ref
Commit: fc42d2ad57d9d612d04a8f52d2ac68ae91a51ad7
Parents: f1cbc4a
Author: fmartelli <[email protected]>
Authored: Mon May 12 11:55:18 2014 +0200
Committer: fmartelli <[email protected]>
Committed: Mon May 12 11:55:18 2014 +0200

----------------------------------------------------------------------
 ext/pojogen-maven-plugin/pom.xml                |   7 -
 .../proxy/v3/AuthEntityRetrieveTestITCase.java  |  14 +-
 .../fit/proxy/v3/EntityCreateTestITCase.java    | 253 +++++++++----------
 .../proxy/v4/AuthEntityRetrieveTestITCase.java  |  20 +-
 .../olingo/fit/v3/EntityCreateTestITCase.java   |   2 +-
 .../apache/olingo/client/core/uri/URIUtils.java |  14 +-
 6 files changed, 155 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fc42d2ad/ext/pojogen-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/pom.xml b/ext/pojogen-maven-plugin/pom.xml
index f0fc429..3a77451 100644
--- a/ext/pojogen-maven-plugin/pom.xml
+++ b/ext/pojogen-maven-plugin/pom.xml
@@ -110,13 +110,6 @@
         <directory>src/main/resources</directory>
         <filtering>true</filtering>
       </resource>
-      <resource>
-        <directory>..</directory>
-        <targetPath>META-INF</targetPath>
-        <includes>
-          <include>LICENSE</include>
-        </includes>
-      </resource>
     </resources>
 
     <testResources>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fc42d2ad/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AuthEntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AuthEntityRetrieveTestITCase.java
 
b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AuthEntityRetrieveTestITCase.java
index 40543e9..cca4f1f 100644
--- 
a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AuthEntityRetrieveTestITCase.java
+++ 
b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AuthEntityRetrieveTestITCase.java
@@ -19,11 +19,11 @@
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertNotNull;
+
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
 import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
 import org.apache.olingo.ext.proxy.EntityContainerFactory;
 import 
org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.
         DefaultContainer;
@@ -31,19 +31,17 @@ import 
org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.service
 public class AuthEntityRetrieveTestITCase extends EntityRetrieveTestITCase {
 
   @BeforeClass
-  public static void enableBasicAuth() {
+  public static void setupContaner() {
+    containerFactory = EntityContainerFactory.getV3(testAuthServiceRootURL);
     containerFactory.getConfiguration().
             setHttpClientFactory(new 
BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
+    container = containerFactory.getEntityContainer(DefaultContainer.class);
+    assertNotNull(container);
   }
 
   @AfterClass
   public static void disableBasicAuth() {
-    containerFactory.getConfiguration().setHttpClientFactory(new 
DefaultHttpClientFactory());
-  }
-
-  @BeforeClass
-  public static void setupContaner() {
-    containerFactory = EntityContainerFactory.getV3(testAuthServiceRootURL);
+    containerFactory = EntityContainerFactory.getV3(testStaticServiceRootURL);
     container = containerFactory.getEntityContainer(DefaultContainer.class);
     assertNotNull(container);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fc42d2ad/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
index 3ef2691..4118706 100644
--- 
a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
+++ 
b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
@@ -18,6 +18,7 @@
  */
 package org.apache.olingo.fit.proxy.v3;
 
+import static org.apache.olingo.fit.proxy.v3.AbstractTest.container;
 import 
org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.
         types.Customer;
 import 
org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.
@@ -43,168 +44,166 @@ import org.junit.Test;
  */
 public class EntityCreateTestITCase extends AbstractTest {
 
-    @Test
-    @Ignore
-    public void create() {
-        final String sampleName = "sample customer from proxy";
-        final Integer id = 100;
+  @Test
+  public void create() {
+    container.getCustomer().get(-10);
+    final String sampleName = "sample customer from proxy";
+    final Integer id = 100;
 
-        getSampleCustomerProfile(id, sampleName, container);
-        container.flush();
+    getSampleCustomerProfile(id, sampleName, container);
+    container.flush();
 
-        Customer actual = readCustomer(container, id);
-        checkSampleCustomerProfile(actual, id, sampleName);
+    Customer actual = readCustomer(container, id);
+    checkSampleCustomerProfile(actual, id, sampleName);
 
-        container.getCustomer().delete(actual.getCustomerId());
-        actual = container.getCustomer().get(id);
-        assertNull(actual);
+    container.getCustomer().delete(actual.getCustomerId());
+    actual = container.getCustomer().get(id);
+    assertNull(actual);
 
-        entityContext.detachAll();
-        actual = container.getCustomer().get(id);
-        assertNotNull(actual);
+    entityContext.detachAll();
+    actual = container.getCustomer().get(id);
+    assertNotNull(actual);
 
-        container.getCustomer().delete(actual.getCustomerId());
-        container.flush();
+    container.getCustomer().delete(actual.getCustomerId());
+    container.flush();
 
-        actual = container.getCustomer().get(id);
-        assertNull(actual);
+    actual = container.getCustomer().get(id);
+    assertNull(actual);
 
-        entityContext.detachAll();
-        actual = container.getCustomer().get(id);
-        assertNull(actual);
-    }
+    entityContext.detachAll();
+    actual = container.getCustomer().get(id);
+    assertNull(actual);
+  }
 
-    @Test
-    @Ignore
-    public void createEmployee() {
-        final Integer id = 101;
+  @Test
+  @Ignore
+  public void createEmployee() {
+    final Integer id = 101;
 
-        final Employee employee = container.getPerson().newEmployee();
-        employee.setPersonId(id);
-        employee.setName("sample employee from proxy");
-        employee.setManagersPersonId(-9918);
-        employee.setSalary(2147483647);
-        employee.setTitle("CEO");
+    final Employee employee = container.getPerson().newEmployee();
+    employee.setPersonId(id);
+    employee.setName("sample employee from proxy");
+    employee.setManagersPersonId(-9918);
+    employee.setSalary(2147483647);
+    employee.setTitle("CEO");
 
-        container.flush();
+    container.flush();
 
-        Employee actual = container.getPerson().get(id, Employee.class);
-        assertNotNull(actual);
-        assertEquals(id, actual.getPersonId());
+    Employee actual = container.getPerson().get(id, Employee.class);
+    assertNotNull(actual);
+    assertEquals(id, actual.getPersonId());
 
-        entityContext.detachAll();
-        actual = container.getPerson().get(id, Employee.class);
-        assertNotNull(actual);
+    entityContext.detachAll();
+    actual = container.getPerson().get(id, Employee.class);
+    assertNotNull(actual);
 
-        container.getPerson().delete(actual.getPersonId());
-        container.flush();
+    container.getPerson().delete(actual.getPersonId());
+    container.flush();
 
-        actual = container.getPerson().get(id, Employee.class);
-        assertNull(actual);
+    actual = container.getPerson().get(id, Employee.class);
+    assertNull(actual);
 
-        entityContext.detachAll();
-        actual = container.getPerson().get(id, Employee.class);
-        assertNull(actual);
-    }
+    entityContext.detachAll();
+    actual = container.getPerson().get(id, Employee.class);
+    assertNull(actual);
+  }
 
-    @Test
-    @Ignore
-    public void createWithNavigation() {
-        final String sampleName = "sample customer from proxy with navigation";
-        final Integer id = 101;
+  @Test
+  public void createWithNavigation() {
+    final String sampleName = "sample customer from proxy with navigation";
+    final Integer id = 101;
 
-        final Customer original = getSampleCustomerProfile(id, sampleName, 
container);
-        original.setInfo(container.getCustomerInfo().get(16));
-        container.flush();
+    final Customer original = getSampleCustomerProfile(id, sampleName, 
container);
+    original.setInfo(container.getCustomerInfo().get(16));
+    container.flush();
 
-        Customer actual = readCustomer(container, id);
-        checkSampleCustomerProfile(actual, id, sampleName);
-        assertEquals(Integer.valueOf(16), 
actual.getInfo().getCustomerInfoId());
+    Customer actual = readCustomer(container, id);
+    checkSampleCustomerProfile(actual, id, sampleName);
+    assertEquals(Integer.valueOf(16), actual.getInfo().getCustomerInfoId());
 
-        container.getCustomer().delete(actual.getCustomerId());
-        container.flush();
+    container.getCustomer().delete(actual.getCustomerId());
+    container.flush();
 
-        actual = container.getCustomer().get(id);
-        assertNull(actual);
-    }
+    actual = container.getCustomer().get(id);
+    assertNull(actual);
+  }
 
-    @Test
-    @Ignore
-    public void createWithBackNavigation() {
-        final String sampleName = "sample customer from proxy with back 
navigation";
-        final Integer id = 102;
+  @Test
+  @Ignore
+  public void createWithBackNavigation() {
+    final String sampleName = "sample customer from proxy with back 
navigation";
+    final Integer id = 102;
 
-        Order order = container.getOrder().newOrder();
-        order.setCustomerId(id);
-        order.setOrderId(id); // same id ...
+    Order order = container.getOrder().newOrder();
+    order.setCustomerId(id);
+    order.setOrderId(id); // same id ...
 
-        final Customer customer = getSampleCustomerProfile(id, sampleName, 
container);
+    final Customer customer = getSampleCustomerProfile(id, sampleName, 
container);
 
-        final OrderCollection orders = 
container.getOrder().newOrderCollection();
-        orders.add(order);
+    final OrderCollection orders = container.getOrder().newOrderCollection();
+    orders.add(order);
 
-        customer.setOrders(orders);
-        order.setCustomer(customer);
-        container.flush();
+    customer.setOrders(orders);
+    order.setCustomer(customer);
+    container.flush();
 
-        assertEquals(id, order.getOrderId());
-        assertEquals(id, order.getCustomerId());
+    assertEquals(id, order.getOrderId());
+    assertEquals(id, order.getCustomerId());
 
-        Customer actual = readCustomer(container, id);
-        checkSampleCustomerProfile(actual, id, sampleName);
+    Customer actual = readCustomer(container, id);
+    checkSampleCustomerProfile(actual, id, sampleName);
 
-        assertEquals(1, actual.getOrders().size());
-        assertEquals(id, actual.getOrders().iterator().next().getOrderId());
-        assertEquals(id, actual.getOrders().iterator().next().getCustomerId());
+    assertEquals(1, actual.getOrders().size());
+    assertEquals(id, actual.getOrders().iterator().next().getOrderId());
+    assertEquals(id, actual.getOrders().iterator().next().getCustomerId());
 
-        order = container.getOrder().get(id);
-        assertNotNull(order);
-        assertEquals(id, order.getCustomer().getCustomerId());
+    order = container.getOrder().get(id);
+    assertNotNull(order);
+    assertEquals(id, order.getCustomer().getCustomerId());
 
-        container.getOrder().delete(actual.getOrders());
-        container.flush();
-
-        order = container.getOrder().get(id);
-        assertNull(order);
-
-        actual = readCustomer(container, id);
-        assertTrue(actual.getOrders().isEmpty());
-
-        container.getCustomer().delete(actual.getCustomerId());
-        container.flush();
+    container.getOrder().delete(actual.getOrders());
+    container.flush();
 
-        actual = container.getCustomer().get(id);
-        assertNull(actual);
-    }
+    order = container.getOrder().get(id);
+    assertNull(order);
 
-    @Test
-    @Ignore
-    public void multiKey() {
-        Message message = container.getMessage().newMessage();
-        message.setMessageId(100);
-        message.setFromUsername("fromusername");
-        message.setToUsername("myusername");
-        message.setIsRead(false);
-        message.setSubject("test message");
-        message.setBody("test");
+    actual = readCustomer(container, id);
+    assertTrue(actual.getOrders().isEmpty());
 
-        container.flush();
+    container.getCustomer().delete(actual.getCustomerId());
+    container.flush();
 
-        MessageKey key = new MessageKey();
-        key.setFromUsername("fromusername");
-        key.setMessageId(100);
+    actual = container.getCustomer().get(id);
+    assertNull(actual);
+  }
 
-        message = container.getMessage().get(key);
-        assertNotNull(message);
-        assertEquals(Integer.valueOf(100), message.getMessageId());
-        assertEquals("fromusername", message.getFromUsername());
-        assertEquals("myusername", message.getToUsername());
-        assertEquals("test message", message.getSubject());
-        assertEquals("test", message.getBody());
+  @Test
+  public void multiKey() {
+    Message message = container.getMessage().newMessage();
+    message.setMessageId(100);
+    message.setFromUsername("fromusername");
+    message.setToUsername("myusername");
+    message.setIsRead(false);
+    message.setSubject("test message");
+    message.setBody("test");
 
-        container.getMessage().delete(key);
-        container.flush();
+    container.flush();
 
-        assertNull(container.getMessage().get(key));
-    }
+    MessageKey key = new MessageKey();
+    key.setFromUsername("fromusername");
+    key.setMessageId(100);
+
+    message = container.getMessage().get(key);
+    assertNotNull(message);
+    assertEquals(Integer.valueOf(100), message.getMessageId());
+    assertEquals("fromusername", message.getFromUsername());
+    assertEquals("myusername", message.getToUsername());
+    assertEquals("test message", message.getSubject());
+    assertEquals("test", message.getBody());
+
+    container.getMessage().delete(key);
+    container.flush();
+
+    assertNull(container.getMessage().get(key));
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fc42d2ad/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
 
b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
index 973449e..bafddad 100644
--- 
a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
+++ 
b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
@@ -18,31 +18,29 @@
  */
 package org.apache.olingo.fit.proxy.v4;
 
-import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
-import org.apache.olingo.ext.proxy.EntityContainerFactory;
-import 
org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
 import static org.junit.Assert.assertNotNull;
 
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
+import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
+import org.apache.olingo.ext.proxy.EntityContainerFactory;
+import 
org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+
 public class AuthEntityRetrieveTestITCase extends EntityRetrieveTestITCase {
 
   @BeforeClass
-  public static void enableBasicAuth() {
+  public static void setupContaner() {
+    containerFactory = EntityContainerFactory.getV3(testAuthServiceRootURL);
     containerFactory.getConfiguration().
             setHttpClientFactory(new 
BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
+    container = containerFactory.getEntityContainer(InMemoryEntities.class);
+    assertNotNull(container);
   }
 
   @AfterClass
   public static void disableBasicAuth() {
-    containerFactory.getConfiguration().setHttpClientFactory(new 
DefaultHttpClientFactory());
-  }
-
-  @BeforeClass
-  public static void setupContaner() {
-    containerFactory = EntityContainerFactory.getV3(testAuthServiceRootURL);
+    containerFactory = EntityContainerFactory.getV3(testStaticServiceRootURL);
     container = containerFactory.getEntityContainer(InMemoryEntities.class);
     assertNotNull(container);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fc42d2ad/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java
index cc97521..db26eee 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v3/EntityCreateTestITCase.java
@@ -261,7 +261,7 @@ public class EntityCreateTestITCase extends 
AbstractTestITCase {
     createReq.setPrefer(client.newPreferences().returnContent());
 
     try {
-      final ODataEntityCreateResponse createRes = createReq.execute();
+      final ODataEntityCreateResponse<ODataEntity> createRes = 
createReq.execute();
       assertEquals(201, createRes.getStatusCode());
     } catch (Exception e) {
       fail(e.getMessage());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fc42d2ad/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
index 0e1d029..017041b 100644
--- 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
+++ 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
@@ -407,8 +407,20 @@ public final class URIUtils {
 
   public static HttpEntity buildInputStreamEntity(final CommonODataClient<?> 
client, final InputStream input) {
     HttpEntity entity;
+    
+    // --------------------------
+    // Check just required by batch requests since their ansynchronous entity 
specification mechanism
+    // --------------------------
+    boolean contentAvailable;
+    try {
+      contentAvailable = input.available()>0;
+    } catch (IOException ex) {
+      contentAvailable = false;
+    }
+    // --------------------------
+    
     boolean repeatableRequired = shouldUseRepeatableHttpBodyEntry(client);
-    if (!repeatableRequired) {
+    if (!contentAvailable || !repeatableRequired) {
       entity = new InputStreamEntity(input, -1);
     } else {
       byte[] bytes = new byte[0];

Reply via email to