Добрый день всем.
Переписываю проект с C# на JAVA в eclipse 3.4.0
Метод, который проверяет правильность геометрии полигона в C# работал без ошибок, а в JAVA выбрасывает исключение. Привжу кусок кода где происходит ошибка...
переменная pGeometry - полигон созданный в контексте сервера
IPolygon pGeometry = (IPolygon)servercontext.createObject(Polygon.getClsid);
int[] pReason = new int[1];
boolean pBool = false;
if (pGeometry.getGeometryType() ==
esriGeometryType.esriGeometryPolygon)
{
this.pTopoOperator = (ITopologicalOperator3)pGeometry;
pTopoOperator.setIsKnownSimple(false);
String s1 = null; String s2 = null;
try
{
pBool = pTopoOperator.isSimpleEx(pReason);//***IOException
}
catch (IOException ex)
{
s1 = ex.getLocalizedMessage();
s2 = ex.getMessage();
}
if (pReason[0] != esriNonSimpleReasonEnum.esriNonSimpleOK)
{
switch (pReason[0])
{
// сюда уже не попадаю
}
}
}
Строка pBool = pTopoOperator.isSimpleEx(pReason);//***IOException
дает исключение EOFException.
Причины ислючения понять невозможно - после блока
catch (IOException ex) строки s1 = null и s2 = null и pReason[0] = -65536
вместо 0 до исключения
Подскажите пожалуйста что делать?
P.S. этот же код работает правильно если использовать ArcObjects , а не Gisserver т.е
IIPointCollection pcol = (IPointCollection)(new Polygon());
IPolygon pGeometry = (IPolygon)pcol
а не
IPolygon pGeometry = (IPolygon)servercontext.createObject(Polygon.getClsid);