From: <cs-...@li...> - 2012-01-30 19:34:23
|
details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgrepo/c/cs/cs-studio/cs-studio/rev/4c0370496b7c changeset: 13765:4c0370496b7c user: Gabriele Carcassi <car...@bn...> date: Mon Jan 30 14:25:49 2012 -0500 description: ..channel.widgets: should adapt only if the instance is Configurable. details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgrepo/c/cs/cs-studio/cs-studio/rev/b5d008041f9a changeset: 13766:b5d008041f9a user: Gabriele Carcassi <car...@bn...> date: Mon Jan 30 14:28:00 2012 -0500 description: Merge diffstat: applications/plugins/org.csstudio.channel.widgets/src/org/csstudio/channel/widgets/CommonAdapterFactory.java | 6 +- core/plugins/org.csstudio.utility.pv.epics/src/org/csstudio/utility/pv/epics/EPICS_V3_PV.java | 32 ++++++--- products/SNS/product/org.csstudio.sns.product/plugin_customization.ini | 2 +- products/SNS/product/org.csstudio.sns.updatesite/patch_product.sh | 3 + 4 files changed, 30 insertions(+), 13 deletions(-) diffs (129 lines): diff -r 7fd67fbd7025 -r b5d008041f9a applications/plugins/org.csstudio.channel.widgets/src/org/csstudio/channel/widgets/CommonAdapterFactory.java --- a/applications/plugins/org.csstudio.channel.widgets/src/org/csstudio/channel/widgets/CommonAdapterFactory.java Mon Jan 30 12:11:52 2012 -0500 +++ b/applications/plugins/org.csstudio.channel.widgets/src/org/csstudio/channel/widgets/CommonAdapterFactory.java Mon Jan 30 14:28:00 2012 -0500 @@ -61,7 +61,11 @@ if (adaptableObject instanceof ConfigurableWidgetAdaptable) { if (adapterType == ConfigurableWidget.class) { ConfigurableWidgetAdaptable configurableWidgetAdaptable = (ConfigurableWidgetAdaptable) adaptableObject; - return configurableWidgetAdaptable.toConfigurableWidget(); + if (configurableWidgetAdaptable != null && configurableWidgetAdaptable.toConfigurableWidget() != null && + configurableWidgetAdaptable.toConfigurableWidget().isConfigurable()) + return configurableWidgetAdaptable.toConfigurableWidget(); + else + return null; } } diff -r 7fd67fbd7025 -r b5d008041f9a core/plugins/org.csstudio.utility.pv.epics/src/org/csstudio/utility/pv/epics/EPICS_V3_PV.java --- a/core/plugins/org.csstudio.utility.pv.epics/src/org/csstudio/utility/pv/epics/EPICS_V3_PV.java Mon Jan 30 12:11:52 2012 -0500 +++ b/core/plugins/org.csstudio.utility.pv.epics/src/org/csstudio/utility/pv/epics/EPICS_V3_PV.java Mon Jan 30 14:28:00 2012 -0500 @@ -34,7 +34,7 @@ * * <p>When started, it connects to the channel, fetches * meta data, and subscribes to value updates. - * + * * <p>It also subscribes to updates of the meta data * via the DBE_PROPERTY event introduced in EPICS R3.14.11. * All IOCs will send initial meta data, and new IOCs may @@ -44,7 +44,7 @@ * is still needed for the gateway. * For IOCs, this means we receive meta data from the initial * fetch as well as via an one initial subscription value... - * + * * @see PV * @author Kay Kasemir */ @@ -173,7 +173,7 @@ } } }; - + /** Listener to a get-callback for data. */ private class GetCallbackListener implements GetListener { @@ -409,6 +409,7 @@ return; final Channel channel = ch_ref.getChannel(); final Logger logger = Activator.getLogger(); + final DBRType type; try { // TODO Instead of another channel.addMonitor(), @@ -417,7 +418,7 @@ // So even with N PVs for the same channel, it's // only one subscription on the network instead of // N subscriptions. - final DBRType type = DBR_Helper.getTimeType(plain, + type = DBR_Helper.getTimeType(plain, channel.getFieldType()); final MonitorMask mask = PVContext.monitor_mask; logger.log(Level.FINER, "{0} subscribed as {1} ({2})", @@ -426,16 +427,25 @@ subscription = channel.addMonitor(type, channel.getElementCount(), mask.getMask(), this); - - if (! (plain || type.isSTRING())) - { - final DBRType meta_type = DBR_Helper.getCtrlType(false, type); - meta_subscription = channel.addMonitor(meta_type, channel.getElementCount(), DBE_PROPERTY, meta_update_listener); - } } catch (final Exception ex) { logger.log(Level.SEVERE, name + " subscribe error", ex); + return; + } + if (plain || type.isSTRING()) + return; + // Subscription for property updates may fail because not + // all CA servers support it at this point + try + { + final DBRType meta_type = DBR_Helper.getCtrlType(false, type); + meta_subscription = channel.addMonitor(meta_type, channel.getElementCount(), DBE_PROPERTY, meta_update_listener); + } + catch (final Exception ex) + { + logger.log(Level.INFO, name + " meta data subscribe error", ex); + return; } } } @@ -686,7 +696,7 @@ log.finer(name + " monitor while not subscribed (" + state.name() + ")"); return; } - + if (ev == null) { log.warning(name + " MonitorEvent is null."); diff -r 7fd67fbd7025 -r b5d008041f9a products/SNS/product/org.csstudio.sns.product/plugin_customization.ini --- a/products/SNS/product/org.csstudio.sns.product/plugin_customization.ini Mon Jan 30 12:11:52 2012 -0500 +++ b/products/SNS/product/org.csstudio.sns.product/plugin_customization.ini Mon Jan 30 14:28:00 2012 -0500 @@ -93,7 +93,7 @@ # SNS Office network: Local and gateway org.csstudio.platform.libs.epics/use_pure_java=true org.csstudio.platform.libs.epics/addr_list=127.0.0.1 160.91.228.17 -org.csstudio.platform.libs.epics/max_array_bytes=160000 +org.csstudio.platform.libs.epics/max_array_bytes=460000 ## Authentication diff -r 7fd67fbd7025 -r b5d008041f9a products/SNS/product/org.csstudio.sns.updatesite/patch_product.sh --- a/products/SNS/product/org.csstudio.sns.updatesite/patch_product.sh Mon Jan 30 12:11:52 2012 -0500 +++ b/products/SNS/product/org.csstudio.sns.updatesite/patch_product.sh Mon Jan 30 14:28:00 2012 -0500 @@ -24,6 +24,9 @@ # Eclipse 3.6 started to create this directory in the product. rm -rf $product/readme +# OS X product sometimes includes an incomplete Eclipse.app directory? +rm -rf $product/Eclipse.app + # Create new ZIP rm -f $final zip -qr $final $product |